Esempio n. 1
0
def test_install_default(mocker, check_output):
    resolve = mocker.patch('piptools.resolver.Resolver.resolve')
    reverse_dependencies = mocker.patch(
        'piptools.resolver.Resolver.reverse_dependencies')
    resolve.return_value = [InstallRequirement.from_line('pendulum==1.2.0')]
    reverse_dependencies.return_value = {}
    app = Application()
    app.add(InstallCommand())

    command = app.find('install')
    command_tester = CommandTester(command)
    command_tester.execute([('command', command.name),
                            ('--no-progress', True)])

    assert os.path.exists(DUMMY_LOCK)
    os.remove(DUMMY_LOCK)

    check_output.assert_called_once()

    output = command_tester.get_display()
    expected = """
Locking dependencies to poetry.lock

 - Resolving dependencies
 - Writing dependencies

Installing dependencies

 - Installing pendulum (1.2.0)
"""

    assert output == expected
Esempio n. 2
0
def test_install_invalid_feature(app):
    app = Application()
    app.add(InstallCommand())

    command = app.find('install')
    command_tester = CommandTester(command)

    with pytest.raises(ValueError):
        command_tester.execute([('command', command.name),
                                ('--features', ['invalid']),
                                ('--no-progress', True)])
Esempio n. 3
0
def test_output():
    app = Application()

    command = app.find('about')
    command_tester = CommandTester(command)
    command_tester.execute([('command', command.get_name())])

    assert """Poet - Package Management for Python

Poet is a dependency manager tracking local dependencies of your projects and libraries.
See https://github.com/sdispater/poet for more information.

""" == command_tester.get_display()
Esempio n. 4
0
def test_update_with_new_packages(mocker):
    sub = mocker.patch('subprocess.check_output')
    resolve = mocker.patch('piptools.resolver.Resolver.resolve')
    get_hashes = mocker.patch('piptools.resolver.Resolver.resolve_hashes')
    reverse_dependencies = mocker.patch('piptools.resolver.Resolver.reverse_dependencies')
    reverse_dependencies.return_value = {'requests': set()}
    write_lock = mocker.patch('poet.installer.Installer._write_lock')
    pendulum_req = InstallRequirement.from_line('pendulum==1.3.0')
    pytest_req = InstallRequirement.from_line('pytest==3.5.0')
    requests_req = InstallRequirement.from_line('requests==2.13.0')
    resolve.return_value = [
        pendulum_req,
        pytest_req,
        requests_req
    ]
    get_hashes.return_value = {
        pendulum_req: set([
            "sha256:a97e3ed9557ac0c5c3742f21fa4d852d7a050dd9b1b517e993aebef2dd2eea52",
            "sha256:641140a05f959b37a177866e263f6f53a53b711fae6355336ee832ec1a59da8a"
        ]),
        pytest_req: set([
            "sha256:66f332ae62593b874a648b10a8cb106bfdacd2c6288ed7dec3713c3a808a6017",
            "sha256:b70696ebd1a5e6b627e7e3ac1365a4bc60aaf3495e843c1e70448966c5224cab"
        ]),
        requests_req: set([
            "sha256:5722cd09762faa01276230270ff16af7acf7c5c45d623868d9ba116f15791ce8",
            "sha256:1a720e8862a41aa22e339373b526f508ef0c8988baf48b84d3fc891a8e237efb"
        ])
    }
    app = Application()
    app.add(UpdateCommand())

    command = app.find('update')
    command_tester = CommandTester(command)
    command_tester.execute([('command', command.name), ('--no-progress', True)])

    assert sub.call_count == 3
    write_lock.assert_called_once()

    output = command_tester.get_display()
    expected = """
Updating dependencies

 - Resolving dependencies
 - Summary: 2 updates, 1 installations
 - Updating pendulum (1.2.0 -> 1.3.0)
 - Updating pytest (3.0.7 -> 3.5.0)
 - Installing requests (2.13.0)
"""

    assert output == expected
Esempio n. 5
0
def test_search_with_results():
    httpretty.register_uri(httpretty.POST,
                           'https://pypi.python.org/pypi',
                           body=RESULTS_RESPONSE,
                           content_type='text/xml')

    app = Application()

    command = app.find('search')
    command_tester = CommandTester(command)
    command_tester.execute([('command', command.get_name()),
                            ('tokens', ['pendulum'])])

    output = command_tester.get_display()

    assert '\npendulum (0.6.0)\n Python datetimes made easy.\n' == output
Esempio n. 6
0
def test_update_only_update(mocker):
    sub = mocker.patch('subprocess.check_output')
    resolve = mocker.patch('piptools.resolver.Resolver.resolve')
    get_hashes = mocker.patch('piptools.resolver.Resolver.resolve_hashes')
    reverse_dependencies = mocker.patch('piptools.resolver.Resolver.reverse_dependencies')
    reverse_dependencies.return_value = {}
    write_lock = mocker.patch('poet.installer.Installer._write_lock')
    pendulum_req = InstallRequirement.from_line('pendulum==1.3.0')
    pytest_req = InstallRequirement.from_line('pytest==3.5.0')
    resolve.return_value = [
        pendulum_req,
        pytest_req
    ]
    get_hashes.return_value = {
        pendulum_req: set([
            "sha256:a97e3ed9557ac0c5c3742f21fa4d852d7a050dd9b1b517e993aebef2dd2eea52",
            "sha256:641140a05f959b37a177866e263f6f53a53b711fae6355336ee832ec1a59da8a"
        ]),
        pytest_req: set([
            "sha256:66f332ae62593b874a648b10a8cb106bfdacd2c6288ed7dec3713c3a808a6017",
            "sha256:b70696ebd1a5e6b627e7e3ac1365a4bc60aaf3495e843c1e70448966c5224cab"
        ])
    }
    app = Application()
    app.add(UpdateCommand())

    command = app.find('update')
    command_tester = CommandTester(command)
    command_tester.execute([('command', command.name), ('--no-progress', True)])

    assert sub.call_count == 2
    write_lock.assert_called_once()

    output = command_tester.get_display()
    expected = """
Updating dependencies

 - Resolving dependencies
 - Summary: 2 updates
 - Updating pendulum (1.2.0 -> 1.3.0)
 - Updating pytest (3.0.7 -> 3.5.0)
"""

    assert output == expected
Esempio n. 7
0
def app():
    return Application()