コード例 #1
0
def test_required_by(tmp_path):
    home_dir = create_pearl_home(tmp_path)

    packages_info = {
        "repo-test": {
            "pkg-test": {
                "repo_name": "repo-test",
                "name": "pkg-test",
                "url": "/blah",
                "depends": ["repo-test/pkg-test2"]
            },
            "pkg-test2": {
                "repo_name": "repo-test",
                "name": "pkg-test2",
                "url": "/blah",
                "depends": []
            }
        }
    }
    builder = PackageBuilder(home_dir)
    packages = builder.build_packages(packages_info)
    pearl_env = PearlEnvironment(home_dir, env_initialized=False)
    pearl_env._packages = packages
    requires = pearl_env.required_by(
        Package(home_dir, "repo-test", "pkg-test2", "/blah"))
    assert requires[0].full_name == 'repo-test/pkg-test'
コード例 #2
0
def test_lookup_package(tmp_path):
    home_dir = create_pearl_home(tmp_path)

    packages_info = {
        "repo-test": {
            "pkg-test": {
                "repo_name": "repo-test",
                "name": "pkg-test",
                "url": "/blah",
                "depends": ["repo-test/pkg-test2"]
            },
            "pkg-test2": {
                "repo_name": "repo-test",
                "name": "pkg-test2",
                "url": "/blah",
                "depends": []
            }
        }
    }
    builder = PackageBuilder(home_dir)
    packages = builder.build_packages(packages_info)
    pearl_env = PearlEnvironment(home_dir, env_initialized=False)
    pearl_env._packages = packages
    actual_package = pearl_env.lookup_package('repo-test/pkg-test')
    assert actual_package.full_name == 'repo-test/pkg-test'

    actual_package = pearl_env.lookup_package('pkg-test')
    assert actual_package.full_name == 'repo-test/pkg-test'
コード例 #3
0
def test_lookup_package_not_in_repo(tmp_path):
    home_dir = create_pearl_home(tmp_path)
    packages_info = {
        "repo-test": {
            "pkg-test": {
                "repo_name": "repo-test",
                "name": "pkg-test",
                "url": "/blah",
            },
        }
    }
    builder = PackageBuilder(home_dir)
    packages = builder.build_packages(packages_info)

    pearl_env = PearlEnvironment(home_dir, env_initialized=False)
    pearl_env._packages = packages
    with pytest.raises(PackageNotInRepoError):
        pearl_env.lookup_package('repo-test/pkg-a-test')

    with pytest.raises(PackageNotInRepoError):
        pearl_env.lookup_package('pkg-a-test')
コード例 #4
0
ファイル: test_package.py プロジェクト: TrulyxForsaken/pearl
def test_update_packages(tmp_path):
    home_dir = create_pearl_home(tmp_path)

    packages_info = {
        "repo-test": {
            "pkg1": {
                "repo_name": "repo-test",
                "name": "pkg1",
                "url": "/blah",
                "depends": ["repo-test/deppkg1"]
            },
            "pkg2": {
                "repo_name": "repo-test",
                "name": "pkg2",
                "url": "/blah",
                "depends": []
            },
            "deppkg1": {
                "repo_name": "repo-test",
                "name": "deppkg1",
                "url": "/blah",
                "depends": []
            }
        }
    }
    builder = PackageBuilder(home_dir)
    packages = builder.build_packages(packages_info)
    pearl_env = PearlEnvironment(
        home_dir, env_initialized=False
    )
    pearl_env._packages = packages

    with mock.patch(_MODULE_UNDER_TEST + '.update_package') as update_mock, \
            mock.patch(_MODULE_UNDER_TEST + '.emerge_package') as emerge_mock:
        args = PackageArgs(packages=[packages['repo-test']['pkg1'], packages['repo-test']['pkg2']])
        update_packages(pearl_env, args)

        emerge_mock.assert_has_calls([mock.call(mock.ANY, packages['repo-test']['deppkg1'], args)])
        update_mock.assert_has_calls([mock.call(mock.ANY, packages['repo-test']['pkg1'], args), mock.call(mock.ANY, packages['repo-test']['pkg2'], args)])
コード例 #5
0
ファイル: test_package.py プロジェクト: TrulyxForsaken/pearl
def test_remove_packages_required_installed_packages_raise(tmp_path, required_package_installed, expected_remove_calls):
    home_dir = create_pearl_home(tmp_path)
    if required_package_installed:
        (home_dir / 'packages/repo-test/pkg1').mkdir(parents=True)

    packages_info = {
        "repo-test": {
            "pkg1": {
                "repo_name": "repo-test",
                "name": "pkg1",
                "url": "/blah",
                "depends": ["repo-test/deppkg1"]
            },
            "deppkg1": {
                "repo_name": "repo-test",
                "name": "deppkg1",
                "url": "/blah",
                "depends": []
            }
        }
    }
    builder = PackageBuilder(home_dir)
    packages = builder.build_packages(packages_info)
    pearl_env = PearlEnvironment(
        home_dir, env_initialized=False
    )
    pearl_env._packages = packages
    with mock.patch(_MODULE_UNDER_TEST + '.remove_package') as remove_mock:
        args = PackageArgs(packages=[packages['repo-test']['deppkg1']])
        if required_package_installed:
            with pytest.raises(PackageRequiredByOtherError):
                remove_packages(pearl_env, args)
        else:
            remove_packages(pearl_env, args)

        assert remove_mock.call_count == expected_remove_calls