Ejemplo n.º 1
0
def test_from_in_files_invalid_filename():
    conf = {
        'no_setup_cfg': True,
        'requirements': {
            'requirements_foo.in': ['foobar']
        },
    }
    with in_temporary_directory():
        create_configuration(**conf)
        with pytest.raises(InvalidPrequConfiguration) as excinfo:
            PrequConfiguration.from_in_files('requirements_foo.in')
        assert '{}'.format(
            excinfo.value) == ('Invalid in-file name: requirements_foo.in')
Ejemplo n.º 2
0
def test_get_prequ_compile_options(enabled):
    conf_data = {'requirements': {'base': ''}, 'options': {}}
    expected_opts = {
        'annotate': False,
        'generate_hashes': False,
        'header': True,
    }
    if enabled == 'index_url':
        conf_data['options'][enabled] = 'http://example.com'
        expected_opts[enabled] = 'http://example.com'
    elif enabled == 'extra_index_urls':
        conf_data['options'][enabled] = ['http://example.com']
        expected_opts['extra_index_url'] = ['http://example.com']
    elif enabled == 'trusted_hosts':
        conf_data['options'][enabled] = ['machine']
        expected_opts['trusted_host'] = ['machine']
    elif enabled == 'find_links':
        conf_data['options']['wheel_dir'] = 'some_dir'
        expected_opts[enabled] = ['some_dir']
    elif enabled:
        conf_data['options'][enabled] = True
        expected_opts[enabled] = True
    conf = PrequConfiguration.from_dict(conf_data)
    opts = conf.get_prequ_compile_options()
    assert opts == expected_opts
Ejemplo n.º 3
0
def test_from_dir():
    with in_temporary_directory():
        create_configuration(requirements={
            'base': ['foobar'],
            'requirements-local.in': ['ipython'],
        })
        conf = PrequConfiguration.from_directory('.')
        assert conf.requirement_sets['base'] == '\nfoobar'
        assert conf.requirement_sets['local'] == 'ipython'
Ejemplo n.º 4
0
def test_from_in_files():
    conf = {
        'no_setup_cfg': True,
        'requirements': {
            'requirements.in': ['foobar']
        },
    }
    with in_temporary_directory():
        create_configuration(**conf)
        conf = PrequConfiguration.from_in_files('requirements.in')
        assert conf.requirement_sets['base'] == 'foobar'
Ejemplo n.º 5
0
def test_requirements_in_generation():
    data = {
        'requirements': {
            'base': 'framework',
            'dev': 'ipython',
            'test': 'pytest',
        }
    }
    conf = PrequConfiguration.from_dict(data)
    assert conf.get_requirements_in_for('base') == 'framework'
    assert conf.get_requirements_in_for('dev') == ('-c requirements.txt\n'
                                                   'ipython')
    assert conf.get_requirements_in_for('test') == ('-c requirements.txt\n'
                                                    'pytest')
Ejemplo n.º 6
0
def test_configuration_parsing_ini():
    stream = io.StringIO(conf_ini_content)
    conf = PrequConfiguration.from_ini(stream)
    assert conf.annotate is True
    assert conf.extra_index_urls == [
        'https://one.example.com/', 'https://two.example.com/'
    ]
    assert conf.wheel_dir == 'wh€€ls'
    assert conf.wheel_sources == {
        'test_gh': 'git+ssh://[email protected]/test/{pkg}@{ver}'
    }
    assert sorted(conf.requirement_sets.keys()) == ['base', 'dev']
    assert conf.requirement_sets['base'] == ('\n'
                                             'foobar\n'
                                             'somewheel==1.0.0\n'
                                             'barfoo')
    assert conf.requirement_sets['dev'] == '\ndevpkg>=2'
    assert conf.wheels_to_build == [('test_gh', 'somewheel', '1.0.0')]
    assert list(conf.get_wheels_to_build()) == [
        ('somewheel', '1.0.0', 'git+ssh://[email protected]/test/[email protected]')
    ]
    pass
Ejemplo n.º 7
0
def test_configuration_parsing_ini_without_base():
    other_ini_content = ('[prequ]\n' 'requirements-test = pytest\n')
    stream = io.StringIO(other_ini_content)
    conf = PrequConfiguration.from_ini(stream)
    assert conf.requirement_sets['test'] == 'pytest'
    assert 'base' not in conf.requirement_sets
Ejemplo n.º 8
0
def test_configuration_parsing_ini_simple():
    other_ini_content = ('[prequ]\n' 'requirements = flask\n')
    stream = io.StringIO(other_ini_content)
    conf = PrequConfiguration.from_ini(stream)
    assert isinstance(conf, PrequConfiguration)
    assert conf.requirement_sets['base'] == 'flask'
Ejemplo n.º 9
0
def test_configuration_parsing_ini_no_section():
    other_ini_content = ('[other_section]\n' 'something = else\n')
    stream = io.StringIO(other_ini_content)
    conf = PrequConfiguration.from_ini(stream)
    assert conf is None
Ejemplo n.º 10
0
def test_from_dir_without_conf():
    with in_temporary_directory():
        with pytest.raises(NoPrequConfigurationFound):
            PrequConfiguration.from_directory('.')
Ejemplo n.º 11
0
def test_label_sorting():
    data = {'requirements': {'a': '', 'base': '', 'b': '', 'c': ''}}
    conf = PrequConfiguration.from_dict(data)
    assert conf.labels == ['base', 'a', 'b', 'c']
Ejemplo n.º 12
0
def test_unknown_wheel_source():
    conf_data = {'requirements': {'base': 'foobar==1.2 (wheel from baz)'}}
    conf = PrequConfiguration.from_dict(conf_data)
    with pytest.raises(UnknownWheelSource) as excinfo:
        list(conf.get_wheels_to_build())
    assert '{}'.format(excinfo.value) == ('No URL template defined for "baz"')
Ejemplo n.º 13
0
def test_from_dict_with_errors():
    conf_data = {'unknown_key': 'value'}
    with pytest.raises(InvalidPrequConfiguration) as excinfo:
        PrequConfiguration.from_dict(conf_data)
    assert '{}'.format(excinfo.value) == (
        'Errors in Prequ configuration: Unknown key name: "unknown_key"')