Exemplo n.º 1
0
def test_iter_lines__unsafe_dependencies(from_line, allow_unsafe):

    writer = OutputWriter(
        src_files=["src_file", "src_file2"], dst_file="dst_file",
        dry_run=True,
        emit_header=True, emit_index=True, emit_trusted_host=True,
        annotate=True,
        generate_hashes=False,
        default_index_url=None, index_urls=[],
        trusted_hosts=[],
        format_control=FormatControl(set(), set()),
        allow_unsafe=allow_unsafe,
    )

    ireq = [from_line('test==1.2')]
    unsafe_req = [from_line('setuptools')]
    reverse_dependencies = {'test': ['xyz']}

    str_lines = list(writer._iter_lines(
        ireq,
        unsafe_req,
        reverse_dependencies,
        ['test'],
        {},
        None,
    ))
    assert comment('# The following packages are considered to be unsafe in a requirements file:') in str_lines
    if allow_unsafe:
        assert 'setuptools' in str_lines
    else:
        assert comment('# setuptools') in str_lines
    assert 'test==1.2' in str_lines
Exemplo n.º 2
0
def test_iter_lines__unsafe_dependencies(from_line, writer):
    ireq = [from_line('test==1.2')]
    unsafe_req = [from_line('setuptools')]
    reverse_dependencies = {'test': ['xyz']}

    lines = writer._iter_lines(ireq, unsafe_req, reverse_dependencies,
                               ['test'], {}, None)
    str_lines = []
    for line in lines:
        str_lines.append(line)
    assert comment(
        '# The following packages are considered to be unsafe in a requirements file:'
    ) in str_lines
    assert comment('# setuptools') in str_lines
    assert 'test==1.2' in str_lines
Exemplo n.º 3
0
def test_format_requirement_annotation_editable(from_editable, writer):
    # Annotations are printed as comments at a fixed column
    ireq = from_editable("git+git://fake.org/x/y.git#egg=y")
    ireq.comes_from = "xyz"

    assert writer._format_requirement(
        ireq) == "-e git+git://fake.org/x/y.git#egg=y  " + comment("# via xyz")
Exemplo n.º 4
0
def test_format_requirement_for_primary_lower_case(from_line, writer):
    "Primary packages should get annotated."
    ireq = from_line("Test==1.2")
    ireq.comes_from = "xyz"

    assert writer._format_requirement(
        ireq) == "test==1.2\n" + comment("    # via xyz")
Exemplo n.º 5
0
def test_format_requirement_annotation_lower_case(from_line, writer):
    ireq = from_line("Test==1.2")
    reverse_dependencies = {"test": ["xyz"]}

    assert writer._format_requirement(
        ireq, reverse_dependencies, primary_packages=[]
    ) == "test==1.2                 " + comment("# via xyz")
Exemplo n.º 6
0
def test_format_requirement_annotation_lower_case(from_line, writer):
    ireq = from_line("Test==1.2")
    reverse_dependencies = {"test": ["xyz"]}

    assert writer._format_requirement(
        ireq, reverse_dependencies, primary_packages=[]
    ) == "test==1.2                 " + comment("# via xyz")
Exemplo n.º 7
0
def test_iter_lines__unsafe_dependencies(writer, from_line, allow_unsafe):
    writer.allow_unsafe = allow_unsafe

    ireq = [from_line("test==1.2")]
    unsafe_req = [from_line("setuptools")]
    reverse_dependencies = {"test": ["xyz"]}

    str_lines = list(
        writer._iter_lines(ireq, unsafe_req, reverse_dependencies, ["test"],
                           {}, None))
    assert (comment("# The following packages are considered "
                    "to be unsafe in a requirements file:") in str_lines)
    if allow_unsafe:
        assert "setuptools" in str_lines
    else:
        assert comment("# setuptools") in str_lines
    assert "test==1.2" in str_lines
Exemplo n.º 8
0
def test_format_requirement_annotation(from_line, writer):
    ireq = from_line('test==1.2')
    reverse_dependencies = {'test': ['xyz']}

    assert (writer._format_requirement(ireq,
                                       reverse_dependencies,
                                       primary_packages=[]) ==
            'test==1.2               ' + comment('  # via xyz'))
Exemplo n.º 9
0
def test_format_requirement_annotation_case_sensitive(from_line, writer):
    ireq = from_line('Test==1.2')
    reverse_dependencies = {'test': ['xyz']}

    assert (writer._format_requirement(ireq,
                                       reverse_dependencies,
                                       primary_packages=[]) ==
            'Test==1.2               ' + comment('  # via xyz'))
Exemplo n.º 10
0
def test_format_requirement_annotation_editable(from_editable, writer):
    # Annotations are printed as comments at a fixed column
    ireq = from_editable("git+git://fake.org/x/y.git#egg=y")
    reverse_dependencies = {"y": ["xyz"]}

    assert writer._format_requirement(
        ireq, reverse_dependencies, primary_packages=[]
    ) == "-e git+git://fake.org/x/y.git#egg=y  " + comment("# via xyz")
Exemplo n.º 11
0
def test_format_requirement_annotation_editable(from_editable, writer):
    # Annotations are printed as comments at a fixed column
    ireq = from_editable("git+git://fake.org/x/y.git#egg=y")
    reverse_dependencies = {"y": ["xyz"]}

    assert writer._format_requirement(
        ireq, reverse_dependencies, primary_packages=[]
    ) == "-e git+git://fake.org/x/y.git#egg=y  " + comment("# via xyz")
Exemplo n.º 12
0
def test_iter_lines__unsafe_dependencies(from_line, writer):
    ireq = [from_line('test==1.2')]
    unsafe_req = [from_line('setuptools')]
    reverse_dependencies = {'test': ['xyz']}

    lines = writer._iter_lines(ireq,
                               unsafe_req,
                               reverse_dependencies,
                               ['test'],
                               {},
                               None)
    str_lines = []
    for line in lines:
        str_lines.append(line)
    assert comment('# The following packages are considered to be unsafe in a requirements file:') in str_lines
    assert comment('# setuptools') in str_lines
    assert 'test==1.2' in str_lines
Exemplo n.º 13
0
def test_format_requirement_annotation_editable(from_editable, writer):
    # Annotations are printed as comments at a fixed column
    ireq = from_editable('git+git://fake.org/x/y.git#egg=y')
    reverse_dependencies = {'y': ['xyz']}

    assert (writer._format_requirement(ireq,
                                       reverse_dependencies,
                                       primary_packages=[]) ==
            '-e git+git://fake.org/x/y.git#egg=y' + comment('  # via xyz'))
Exemplo n.º 14
0
def test_format_requirement_annotation_editable(from_editable, writer):
    # Annotations are printed as comments at a fixed column
    ireq = from_editable('git+git://fake.org/x/y.git#egg=y')
    reverse_dependencies = {'y': ['xyz']}

    assert (writer._format_requirement(ireq,
                                       reverse_dependencies,
                                       primary_packages=[]) ==
            '-e git+git://fake.org/x/y.git#egg=y' + comment('  # via xyz'))
Exemplo n.º 15
0
def test_iter_lines__unsafe_dependencies(writer, from_line, allow_unsafe):
    writer.allow_unsafe = allow_unsafe
    output = "\n".join(
        writer._iter_lines([from_line("test==1.2")],
                           [from_line("setuptools")]))
    assert ("\n".join([
        "test==1.2",
        "",
        MESSAGE_UNSAFE_PACKAGES,
        "setuptools" if allow_unsafe else comment("# setuptools"),
    ]) in output)
Exemplo n.º 16
0
def test_iter_lines__unsafe_dependencies(writer, from_line, allow_unsafe):
    writer.allow_unsafe = allow_unsafe

    ireq = [from_line("test==1.2")]
    unsafe_req = [from_line("setuptools")]
    reverse_dependencies = {"test": ["xyz"]}

    str_lines = list(
        writer._iter_lines(ireq, unsafe_req, reverse_dependencies, ["test"], {}, None)
    )
    assert (
        comment(
            "# The following packages are considered "
            "to be unsafe in a requirements file:"
        )
        in str_lines
    )
    if allow_unsafe:
        assert "setuptools" in str_lines
    else:
        assert comment("# setuptools") in str_lines
    assert "test==1.2" in str_lines
Exemplo n.º 17
0
def test_iter_lines__unsafe_with_hashes(writer, from_line):
    writer.allow_unsafe = False
    ireqs = [from_line("test==1.2")]
    unsafe_ireqs = [from_line("setuptools")]
    hashes = {ireqs[0]: {"FAKEHASH"}, unsafe_ireqs[0]: set()}
    output = "\n".join(writer._iter_lines(ireqs, unsafe_ireqs, hashes=hashes))
    assert ("\n".join([
        "test==1.2 \\",
        "    --hash=FAKEHASH",
        "",
        MESSAGE_UNSAFE_PACKAGES_UNPINNED,
        comment("# setuptools"),
    ]) in output)
Exemplo n.º 18
0
def test_iter_lines__unsafe_dependencies(writer, from_line, allow_unsafe):
    writer.allow_unsafe = allow_unsafe
    writer.emit_header = False

    lines = writer._iter_lines([from_line("test==1.2")],
                               [from_line("setuptools==1.10.0")])

    expected_lines = (
        "test==1.2",
        "",
        MESSAGE_UNSAFE_PACKAGES,
        "setuptools==1.10.0" if allow_unsafe else comment("# setuptools"),
    )
    assert tuple(lines) == expected_lines
Exemplo n.º 19
0
def test_iter_lines__unsafe_dependencies(writer, from_line, allow_unsafe):
    writer.allow_unsafe = allow_unsafe

    ireq = [from_line('test==1.2')]
    unsafe_req = [from_line('setuptools')]
    reverse_dependencies = {'test': ['xyz']}

    str_lines = list(
        writer._iter_lines(
            ireq,
            unsafe_req,
            reverse_dependencies,
            ['test'],
            {},
            None,
        ))
    assert comment(
        '# The following packages are considered to be unsafe in a requirements file:'
    ) in str_lines
    if allow_unsafe:
        assert 'setuptools' in str_lines
    else:
        assert comment('# setuptools') in str_lines
    assert 'test==1.2' in str_lines
Exemplo n.º 20
0
def test_iter_lines__unsafe_with_hashes(writer, from_line):
    writer.allow_unsafe = False
    writer.emit_header = False
    ireqs = [from_line("test==1.2")]
    unsafe_ireqs = [from_line("setuptools==1.10.0")]
    hashes = {ireqs[0]: {"FAKEHASH"}, unsafe_ireqs[0]: set()}

    lines = writer._iter_lines(ireqs, unsafe_ireqs, hashes=hashes)

    expected_lines = (
        "test==1.2 \\\n    --hash=FAKEHASH",
        "",
        MESSAGE_UNSAFE_PACKAGES_UNPINNED,
        comment("# setuptools"),
    )
    assert tuple(lines) == expected_lines
Exemplo n.º 21
0
def test_iter_lines__unsafe_with_hashes(capsys, writer, from_line):
    writer.allow_unsafe = False
    writer.emit_header = False
    ireqs = [from_line("test==1.2")]
    unsafe_ireqs = [from_line("setuptools==1.10.0")]
    hashes = {ireqs[0]: {"FAKEHASH"}, unsafe_ireqs[0]: set()}

    lines = writer._iter_lines(ireqs, unsafe_ireqs, hashes=hashes)

    expected_lines = (
        "test==1.2 \\\n    --hash=FAKEHASH",
        "",
        MESSAGE_UNSAFE_PACKAGES_UNPINNED,
        comment("# setuptools"),
    )
    assert tuple(lines) == expected_lines
    captured = capsys.readouterr()
    assert captured.out == ""
    assert captured.err.strip() == MESSAGE_UNINSTALLABLE
Exemplo n.º 22
0
def test_format_requirement_annotation_lower_case(from_line, writer):
    ireq = from_line("Test==1.2")
    ireq.comes_from = "xyz"

    assert writer._format_requirement(
        ireq) == "test==1.2\n" + comment("    # via xyz")