Esempio n. 1
0
def test_get_outdated_package_table_data(given):
    # preconditions
    printer = given.printer.exists()
    include_only = ['py', 'pip', 'pytest']
    tree = commands.get_package_tree(include_only=include_only)
    required_version = generator.random_int()
    installed_version = generator.random_int()
    latest_version = generator.random_int()
    secondary_packages = commands.get_secondary_packages(tree)
    required_packages = {'pip': required_version}

    outdated_packages = [{
        'name': 'pip',
        'version': installed_version,
        'latest_version': latest_version
    }]

    expected_result = [[
        printer.printable_package('pip'), required_version, installed_version,
        latest_version
    ]]

    # action
    outdated_table_data = commands.get_outdated_package_table_data(
        required_packages, secondary_packages, outdated_packages)

    # verification
    assert outdated_table_data == expected_result
Esempio n. 2
0
def test_get_invalid_requirements():
    # preconditions
    include_only = ['py', 'pip', 'pytest']
    tree = commands.get_package_tree(include_only=include_only)

    required_packages = {
        'py': {},
        'pip': {},
        'pytest': None,
        'some_package': None
    }

    # action
    unpinned_requirements, missing_requirements = (
        commands.get_invalid_requirements(tree, required_packages))

    # verification
    unpinned_keys = [
        package['package_name'] for package in unpinned_requirements
    ]

    missing_keys = [
        package['package_name'] for package in missing_requirements
    ]

    assert 'pytest' in unpinned_keys
    assert 'py' not in unpinned_keys
    assert 'pip' not in unpinned_keys

    assert 'some_package' in missing_keys
Esempio n. 3
0
def test_filter_tree():
    # preconditions
    tree = commands.get_package_tree()

    # action
    filtered_tree = utils.filter_tree(tree=tree, list_all=True)

    # verification
    assert set(filtered_tree) == set(tree)
Esempio n. 4
0
def test_filter_tree_only_top_level():
    # preconditions
    tree = commands.get_package_tree()

    # action
    filtered_tree = utils.filter_tree(tree=tree, list_all=False)

    # verification
    assert not set(filtered_tree) == set(tree)
Esempio n. 5
0
def test_get_all_packages():
    # preconditions
    include_only = ['pip', 'pytest', 'faker']
    tree = commands.get_package_tree(include_only=include_only)

    # action
    packages = commands.get_all_packages(tree=tree)

    # verification
    assert set(packages) == set(tree)
Esempio n. 6
0
def test_get_cyclic_dependencies():
    # preconditions
    include_only = ['pip', 'pytest']
    tree = commands.get_package_tree(include_only=include_only)

    # action
    cyclic_dependencies = commands.get_cyclic_dependencies(tree=tree)

    # verification
    assert cyclic_dependencies is None
Esempio n. 7
0
def test_filter_tree_only_specified():
    # preconditions
    tree = commands.get_package_tree()
    show_only = {'pip'}

    # action
    filtered_tree = utils.filter_tree(tree=tree, show_only=show_only)

    # verification
    assert len(filtered_tree) == 1
    assert 'pip' in [package.key for package in filtered_tree]
Esempio n. 8
0
def test_get_package_tree_with_ignore_list():
    # preconditions
    ignore_list = ['pip', 'faker', 'pytest']

    # action
    tree = commands.get_package_tree(ignore_list=ignore_list)

    # verification
    installed_keys = [package.key for package in tree]
    assert 'pip' not in installed_keys
    assert 'faker' not in installed_keys
    assert 'pytest' not in installed_keys
Esempio n. 9
0
def test_get_package_tree_with_include_only():
    # preconditions
    include_only = ['pip', 'pytest']

    # action
    tree = commands.get_package_tree(include_only=include_only)

    # verification
    installed_keys = [package.key for package in tree]
    assert 'pip' in installed_keys
    assert 'pytest' in installed_keys
    assert 'faker' not in installed_keys
Esempio n. 10
0
def test_get_required_package_version():
    # preconditions
    include_only = ['pytest']
    tree = commands.get_package_tree(include_only=include_only)
    packages = commands.get_all_packages(tree=tree)

    dist_package = list(tree.keys())[0]
    req_packages = packages[dist_package]

    # action and verification
    for package in req_packages:
        version = commands.get_required_package_version(package=package)
        assert version == (package.version_spec or VERSION_ANY)
Esempio n. 11
0
def test_get_missing_requirements():
    # preconditions
    include_only = ['py', 'pip', 'pytest', 'faker']
    tree = commands.get_package_tree(include_only=include_only)
    required_packages = {'py': {}, 'pip': {}, 'pytest': {}}
    main_packages = commands.get_main_packages(tree=tree)

    # action
    missing_requirements = commands.get_missing_requirements(
        required_packages, main_packages)

    # verification
    assert 'faker' in [package.key for package in missing_requirements]
Esempio n. 12
0
def test_get_installed_package_version():
    # preconditions
    include_only = ['pytest']
    tree = commands.get_package_tree(include_only=include_only)
    packages = commands.get_all_packages(tree=tree)
    dist_package = list(packages.keys())[0]
    req_packages = packages[dist_package]

    # action and verification
    version = commands.get_installed_package_version(package=dist_package)
    assert version == dist_package.version
    for package in req_packages:
        version = commands.get_installed_package_version(package=package)
        assert version == package.installed_version
Esempio n. 13
0
def test_get_secondary_packages():
    # preconditions
    include_only = ['py', 'pip', 'pytest', 'faker']
    tree = commands.get_package_tree(include_only=include_only)

    # action
    tree = commands.get_secondary_packages(tree=tree)

    # verification
    installed_keys = [package.key for package in tree]
    assert 'py' in installed_keys
    assert 'pip' not in installed_keys
    assert 'faker' not in installed_keys
    assert 'pytest' not in installed_keys
Esempio n. 14
0
def test_get_unset_constraints():
    # preconditions
    include_only = ['py', 'pip', 'pytest']
    tree = commands.get_package_tree(include_only=include_only)
    secondary_packages = commands.get_secondary_packages(tree)
    required_packages = {}
    constrained_packages = {}

    # action
    unset_constraints = commands.get_unset_constraints(required_packages,
                                                       constrained_packages,
                                                       secondary_packages)

    # verification
    assert 'py' in [package.key for package in unset_constraints]
Esempio n. 15
0
def test_get_package_dependencies():
    # preconditions
    include_only = ['pytest']
    tree = commands.get_package_tree(include_only=include_only)

    key_tree = dict((k.key, v) for k, v in tree.items())
    package = next((item for item in tree if item.key == 'pytest'), None)

    expected_dependencies = {package: {}}

    for dependency in tree[package]:
        expected_dependencies[package].update({dependency: {}})

    # action
    dependencies = commands.get_package_dependencies(key_tree=key_tree,
                                                     package=package)

    # verification
    assert dependencies == expected_dependencies
Esempio n. 16
0
def test_package_list():
    # preconditions
    include_only = ['pip', 'pytest', 'faker']
    tree = commands.get_package_tree(include_only=include_only)
    packages = commands.get_all_packages(tree=tree)

    expected_packages = [{
        'name':
        package.key.lower(),
        'version':
        commands.get_installed_package_version(package=package)
    } for package in list(packages.keys())]

    # action
    package_list = commands.get_package_list(tree=tree)

    # verification
    for expected_package in expected_packages:
        package = next((package for package in package_list
                        if package['name'] == expected_package['name']), None)

        assert package['version'] == expected_package['version']
Esempio n. 17
0
def test_get_dependencies_for_package():
    # preconditions
    include_only = ['pytest']
    tree = commands.get_package_tree(include_only=include_only)

    package = next((package for package in tree if package.key == 'pytest'),
                   None)

    package_dependencies = {package: {}}

    for dependency in tree[package]:
        package_dependencies[package].update({dependency: {}})

    expected_dependencies = [{
        'name': 'pytest',
        'children': package_dependencies
    }]

    # action
    dependencies = commands.get_dependencies(tree=tree, package_name='pytest')

    # verification
    assert dependencies == expected_dependencies
Esempio n. 18
0
def test_get_package_tree():
    # action
    tree = commands.get_package_tree()

    # verification
    assert 'pytest' in [package.key for package in tree]