def test_add_list_show_remove_extension(self): add_extension(cmd=self.cmd, source=MY_EXT_SOURCE) actual = list_extensions() self.assertEqual(len(actual), 1) ext = show_extension(MY_EXT_NAME) self.assertEqual(ext[OUT_KEY_NAME], MY_EXT_NAME) remove_extension(MY_EXT_NAME) num_exts = len(list_extensions()) self.assertEqual(num_exts, 0)
def test_add_list_show_remove_system_extension(self): add_extension(cmd=self.cmd, source=MY_EXT_SOURCE, system=True) actual = list_extensions() self.assertEqual(len(actual), 1) ext = show_extension(MY_EXT_NAME) self.assertEqual(ext[OUT_KEY_NAME], MY_EXT_NAME) remove_extension(MY_EXT_NAME) num_exts = len(list_extensions()) self.assertEqual(num_exts, 0)
def test_add_list_show_remove_extension(self): add_extension(MY_EXT_SOURCE) actual = list_extensions() self.assertEqual(len(actual), 1) ext = show_extension(MY_EXT_NAME) self.assertEqual(ext[OUT_KEY_NAME], MY_EXT_NAME) remove_extension(MY_EXT_NAME) num_exts = len(list_extensions()) self.assertEqual(num_exts, 0)
def test_add_list_show_remove_extension_with_dashes(self): add_extension(MY_SECOND_EXT_SOURCE_DASHES) actual = list_extensions() self.assertEqual(len(actual), 1) ext = show_extension(MY_SECOND_EXT_NAME_DASHES) self.assertEqual(ext[OUT_KEY_NAME], MY_SECOND_EXT_NAME_DASHES) self.assertIn(OUT_KEY_NAME, ext[OUT_KEY_METADATA], "Unable to get full metadata") self.assertEqual(ext[OUT_KEY_METADATA][OUT_KEY_NAME], MY_SECOND_EXT_NAME_DASHES) remove_extension(MY_SECOND_EXT_NAME_DASHES) num_exts = len(list_extensions()) self.assertEqual(num_exts, 0)
def test_add_list_show_remove_extension_with_dashes(self): add_extension(cmd=self.cmd, source=MY_SECOND_EXT_SOURCE_DASHES) actual = list_extensions() self.assertEqual(len(actual), 1) ext = show_extension(MY_SECOND_EXT_NAME_DASHES) self.assertEqual(ext[OUT_KEY_NAME], MY_SECOND_EXT_NAME_DASHES) self.assertIn(OUT_KEY_NAME, ext[OUT_KEY_METADATA], "Unable to get full metadata") self.assertEqual(ext[OUT_KEY_METADATA][OUT_KEY_NAME], MY_SECOND_EXT_NAME_DASHES) remove_extension(MY_SECOND_EXT_NAME_DASHES) num_exts = len(list_extensions()) self.assertEqual(num_exts, 0)
def test_add_list_show_remove_extension_extra_index_url(self): """ Tests extension addition while specifying --extra-index-url parameter. :return: """ extra_index_urls = ['https://testpypi.python.org/simple', 'https://pypi.python.org/simple'] add_extension(cmd=self.cmd, source=MY_EXT_SOURCE, pip_extra_index_urls=extra_index_urls) actual = list_extensions() self.assertEqual(len(actual), 1) ext = show_extension(MY_EXT_NAME) self.assertEqual(ext[OUT_KEY_NAME], MY_EXT_NAME) remove_extension(MY_EXT_NAME) num_exts = len(list_extensions()) self.assertEqual(num_exts, 0)
def test_add_list_show_remove_extension_extra_index_url(self): """ Tests extension addition while specifying --extra-index-url parameter. :return: """ extra_index_urls = ['https://testpypi.python.org/simple', 'https://pypi.python.org/simple'] add_extension(source=MY_EXT_SOURCE, pip_extra_index_urls=extra_index_urls) actual = list_extensions() self.assertEqual(len(actual), 1) ext = show_extension(MY_EXT_NAME) self.assertEqual(ext[OUT_KEY_NAME], MY_EXT_NAME) remove_extension(MY_EXT_NAME) num_exts = len(list_extensions()) self.assertEqual(num_exts, 0)
def check_extension_version(extension_name): from azure.cli.core.extension.operations import list_available_extensions, list_extensions available_extensions = list_available_extensions() installed_extensions = list_extensions() extension_to_check = [ ext for ext in installed_extensions if ext['name'] == extension_name ] if not extension_to_check: logger.debug( 'The extension with name %s does not exist within installed extensions.', extension_name) return extension_to_check = extension_to_check[0] for ext in available_extensions: if ext['name'] == extension_name and ext[ 'version'] > extension_to_check['version']: logger.warning( 'The %s extension is not up to date, please update with az extension update -n %s', extension_name, extension_name) return logger.debug( 'The extension with name %s does not exist within available extensions.', extension_name)
def test_add_extension_valid_whl_name_filenotfound(self): with self.assertRaises(CLIError): add_extension(cmd=self.cmd, source=_get_test_data_file( 'mywheel-0.0.3+dev-py2.py3-none-any.whl')) actual = list_extensions() self.assertEqual(len(actual), 0)
def test_add_extension_invalid_whl_name(self): with self.assertRaises(CLIError): add_extension(cmd=self.cmd, source=os.path.join('invalid', 'ext', 'path', 'file.whl')) actual = list_extensions() self.assertEqual(len(actual), 0)
def _get_current_vmrepair_version(): from azure.cli.core.extension.operations import list_extensions version = [ ext['version'] for ext in list_extensions() if ext['name'] == 'vm-repair' ] if version: return version[0] return None
def test_add_list_show_remove_user_system_extensions(self): add_extension(cmd=self.cmd, source=MY_EXT_SOURCE) add_extension(cmd=self.cmd, source=MY_SECOND_EXT_SOURCE_DASHES, system=True) actual = list_extensions() self.assertEqual(len(actual), 2) ext = show_extension(MY_EXT_NAME) self.assertEqual(ext[OUT_KEY_NAME], MY_EXT_NAME) self.assertEqual(ext[OUT_KEY_PATH], build_extension_path(MY_EXT_NAME)) second_ext = show_extension(MY_SECOND_EXT_NAME_DASHES) self.assertEqual(second_ext[OUT_KEY_NAME], MY_SECOND_EXT_NAME_DASHES) self.assertEqual( second_ext[OUT_KEY_PATH], build_extension_path(MY_SECOND_EXT_NAME_DASHES, system=True)) remove_extension(MY_EXT_NAME) num_exts = len(list_extensions()) self.assertEqual(num_exts, 1) remove_extension(MY_SECOND_EXT_NAME_DASHES) num_exts = len(list_extensions()) self.assertEqual(num_exts, 0)
def test_add_extension_to_path(self): add_extension(cmd=self.cmd, source=MY_EXT_SOURCE) num_exts = len(list_extensions()) self.assertEqual(num_exts, 1) ext = get_extension('myfirstcliextension') old_path = sys.path[:] try: add_extension_to_path(ext.name) self.assertSequenceEqual(old_path, sys.path[:-1]) self.assertEqual(ext.path, sys.path[-1]) finally: sys.path[:] = old_path
def should_load_source(source): '''Check whether to load `az {source} connection` If {source} is an extension (e.g, spring-cloud), load the command group only when {source} is installed :param source: the source resource type ''' from azure.cli.core.extension.operations import list_extensions from ._resource_config import SOURCE_RESOURCES_IN_EXTENSION # names of CLI installed extensions installed_extensions = [item.get('name') for item in list_extensions()] # if source resource is released as an extension, load our command groups # only when the extension is installed if source not in SOURCE_RESOURCES_IN_EXTENSION or source.value in installed_extensions: return True return False
def test_no_extensions_dir(self): shutil.rmtree(self.ext_dir) actual = list_extensions() self.assertEqual(len(actual), 0)
def test_no_extensions_in_dir(self): actual = list_extensions() self.assertEqual(len(actual), 0)
def test_no_extensions_dir(self): shutil.rmtree(self.ext_dir) actual = list_extensions() self.assertEqual(len(actual), 0)
def test_add_extension_valid_whl_name_filenotfound(self): with self.assertRaises(CLIError): add_extension(cmd=self.cmd, source=_get_test_data_file('mywheel-0.0.3+dev-py2.py3-none-any.whl')) actual = list_extensions() self.assertEqual(len(actual), 0)
def test_add_extension_invalid(self): with self.assertRaises(ValueError): add_extension(cmd=self.cmd, source=MY_BAD_EXT_SOURCE) actual = list_extensions() self.assertEqual(len(actual), 0)
def test_add_same_extension_user_system(self): add_extension(cmd=self.cmd, source=MY_EXT_SOURCE) num_exts = len(list_extensions()) self.assertEqual(num_exts, 1) with self.assertRaises(CLIError): add_extension(cmd=self.cmd, source=MY_EXT_SOURCE, system=True)
def test_no_extensions_in_dir(self): actual = list_extensions() self.assertEqual(len(actual), 0)
def test_add_extension_twice(self): add_extension(cmd=self.cmd, source=MY_EXT_SOURCE) num_exts = len(list_extensions()) self.assertEqual(num_exts, 1) with self.assertRaises(CLIError): add_extension(cmd=self.cmd, source=MY_EXT_SOURCE)
def test_add_extension_invalid(self): with self.assertRaises(ValueError): add_extension(cmd=self.cmd, source=MY_BAD_EXT_SOURCE) actual = list_extensions() self.assertEqual(len(actual), 0)
def test_add_extension_twice(self): add_extension(cmd=self.cmd, source=MY_EXT_SOURCE) num_exts = len(list_extensions()) self.assertEqual(num_exts, 1) with self.assertRaises(CLIError): add_extension(cmd=self.cmd, source=MY_EXT_SOURCE)
def test_add_extension_invalid_whl_name(self): with self.assertRaises(CLIError): add_extension(cmd=self.cmd, source=os.path.join('invalid', 'ext', 'path', 'file.whl')) actual = list_extensions() self.assertEqual(len(actual), 0)
def list_extensions_cmd(): return list_extensions()
def list_extensions_cmd(): return list_extensions()