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)
예제 #3
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)
예제 #4
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)
예제 #7
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)
예제 #8
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)
예제 #11
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
예제 #14
0
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)
예제 #26
0
def list_extensions_cmd():
    return list_extensions()
예제 #27
0
def list_extensions_cmd():
    return list_extensions()