| 787 | self.env.stop() |
| 788 | |
| 789 | def test_region_ls(self): |
| 790 | config_file = 'dwave.conf' |
| 791 | profile = 'profile' |
| 792 | metadata_api_endpoint = 'https://metadata' |
| 793 | regions = [Region(code='aaa', name='A', endpoint='https://a'), |
| 794 | Region(code='bbb', name='B', endpoint='https://b')] |
| 795 | |
| 796 | with mock.patch('dwave.cloud.cli.get_regions', return_value=regions) as m: |
| 797 | runner = CliRunner() |
| 798 | |
| 799 | with self.subTest("default call"): |
| 800 | with runner.isolated_filesystem(): |
| 801 | touch(config_file) |
| 802 | |
| 803 | result = runner.invoke(cli, ['region', 'ls', |
| 804 | '--config-file', config_file]) |
| 805 | |
| 806 | # verify default metadata api used |
| 807 | m.assert_called_once() |
| 808 | config = m.call_args_list[0].args[0] |
| 809 | self.assertIn('/metadata/v', config.metadata_api_endpoint) |
| 810 | |
| 811 | # verify exit code and stdout printout |
| 812 | self.assertEqual(result.exit_code, 0) |
| 813 | self.assertEqual(result.output.count('Region:'), 2) |
| 814 | self.assertIn('Region: A', result.output) |
| 815 | self.assertIn('Region: B', result.output) |
| 816 | |
| 817 | m.reset_mock() |
| 818 | |
| 819 | with self.subTest("use metadata api from config"): |
| 820 | with runner.isolated_filesystem(): |
| 821 | # create config |
| 822 | with open(config_file, 'w') as fp: |
| 823 | fp.write("\n".join([ |
| 824 | f"[{profile}]", |
| 825 | f"metadata_api_endpoint = {metadata_api_endpoint}"])) |
| 826 | |
| 827 | result = runner.invoke(cli, ['region', 'ls', |
| 828 | '--config-file', config_file, |
| 829 | '--profile', profile]) |
| 830 | |
| 831 | m.assert_called_once() |
| 832 | config = m.call_args_list[0].args[0] |
| 833 | self.assertEqual(config.metadata_api_endpoint, metadata_api_endpoint) |
| 834 | |
| 835 | m.reset_mock() |
| 836 | |
| 837 | with self.subTest("use metadata api from command line"): |
| 838 | with runner.isolated_filesystem(): |
| 839 | touch(config_file) |
| 840 | |
| 841 | result = runner.invoke(cli, ['region', 'ls', |
| 842 | '--config-file', config_file, |
| 843 | '--metadata-api-endpoint', metadata_api_endpoint]) |
| 844 | |
| 845 | m.assert_called_once() |
| 846 | config = m.call_args_list[0].args[0] |