Пример #1
0
def test_metadata_resolver_local(mock_registry_resolver, mock_docker_api):
    metadata_resolver = MetadataResolver(mock_docker_api,
                                         mock_registry_resolver)
    # it raises exception because mock manifest is not a valid manifest
    # but this is not a test objective, so just suppress the error.
    with contextlib.suppress(MetadataError):
        metadata_resolver.from_local('image')
    mock_docker_api.labels.assert_called_once()
Пример #2
0
    def get_manager() -> 'PackageManager':
        """ Creates and returns PackageManager instance.

        Returns:
            PackageManager
        """

        docker_api = DockerApi(docker.from_env())
        registry_resolver = RegistryResolver()
        return PackageManager(
            DockerApi(docker.from_env(), ProgressManager()), registry_resolver,
            PackageDatabase.from_file(),
            MetadataResolver(docker_api, registry_resolver),
            ServiceCreator(FeatureRegistry(SonicDB), SonicDB), device_info,
            filelock.FileLock(PACKAGE_MANAGER_LOCK_FILE, timeout=0))
Пример #3
0
def test_metadata_resolver_remote(mock_registry_resolver, mock_docker_api):
    metadata_resolver = MetadataResolver(mock_docker_api,
                                         mock_registry_resolver)
    mock_registry = MagicMock()
    mock_registry.manifest = MagicMock(
        return_value={'config': {
            'digest': 'some-digest'
        }})

    def return_mock_registry(repository):
        return mock_registry

    mock_registry_resolver.get_registry_for = Mock(
        side_effect=return_mock_registry)
    # it raises exception because mock manifest is not a valid manifest
    # but this is not a test objective, so just suppress the error.
    with contextlib.suppress(MetadataError):
        metadata_resolver.from_registry('test-repository', '1.2.0')
    mock_registry_resolver.get_registry_for.assert_called_once_with(
        'test-repository')
    mock_registry.manifest.assert_called_once_with('test-repository', '1.2.0')
    mock_registry.blobs.assert_called_once_with('test-repository',
                                                'some-digest')
    mock_docker_api.labels.assert_not_called()
Пример #4
0
    def get_manager() -> 'PackageManager':
        """ Creates and returns PackageManager instance.

        Returns:
            PackageManager
        """

        docker_api = DockerApi(docker.from_env(), ProgressManager())
        registry_resolver = RegistryResolver()
        metadata_resolver = MetadataResolver(docker_api, registry_resolver)
        cfg_mgmt = config_mgmt.ConfigMgmt(source=INIT_CFG_JSON)
        cli_generator = CliGenerator(log)
        feature_registry = FeatureRegistry(SonicDB)
        service_creator = ServiceCreator(feature_registry, SonicDB,
                                         cli_generator, cfg_mgmt)

        return PackageManager(
            docker_api, registry_resolver, PackageDatabase.from_file(),
            metadata_resolver, service_creator, device_info,
            filelock.FileLock(PACKAGE_MANAGER_LOCK_FILE, timeout=0))