def test_get_raw_requirements_disallows_urls(tmpdir, contents):
    reqs_file = tmpdir.join('requirements.txt')
    reqs_file.write(contents)
    with pytest.raises(AssertionError) as excinfo:
        main.get_raw_requirements(reqs_file.strpath)
    msg, = excinfo.value.args
    assert msg.startswith(
        'Requirements must be <<pkg>> or <<pkg>>==<<version>>\n'
        ' - git / http / etc. urls may be mutable (unpinnable)\n'
        ' - transitive dependencies from urls are not traceable\n'
        " - line of error: {}\n".format(contents), )
def test_get_raw_requirements_allows_editable_dot(tmpdir):
    reqs_file = tmpdir.join('requirements.txt')
    reqs_file.write('-e .\nfoo==1\nbar==2')
    requirements = main.get_raw_requirements(reqs_file.strpath)
    assert requirements == [
        (pkg_resources.Requirement.parse('foo==1'), reqs_file.strpath),
        (pkg_resources.Requirement.parse('bar==2'), reqs_file.strpath),
    ]
def test_get_raw_requirements_trivial(tmpdir):
    reqs_filename = tmpdir.join('requirements.txt').ensure()
    assert main.get_raw_requirements(reqs_filename.strpath) == []