1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
"""Check the requirements parsing."""
import io
from logassert import Multiple
from fades import parsing, REPO_PYPI, REPO_VCS
from tests import get_reqs
def test_empty():
parsed = parsing._parse_requirement(io.StringIO("""
"""))
assert parsed == {}
def test_simple():
parsed = parsing._parse_requirement(io.StringIO("""
pypi::foo
"""))
assert parsed == {REPO_PYPI: get_reqs('foo')}
def test_simple_default():
parsed = parsing._parse_requirement(io.StringIO("""
foo
"""))
assert parsed == {REPO_PYPI: get_reqs('foo')}
def test_double():
parsed = parsing._parse_requirement(io.StringIO("""
pypi::time
foo
"""))
assert parsed == {
REPO_PYPI: get_reqs('time') + get_reqs('foo')
}
def test_version_same():
parsed = parsing._parse_requirement(io.StringIO("""
pypi::foo == 3.5
"""))
assert parsed == {
REPO_PYPI: get_reqs('foo == 3.5')
}
def test_version_same_default():
parsed = parsing._parse_requirement(io.StringIO("""
foo == 3.5
"""))
assert parsed == {
REPO_PYPI: get_reqs('foo == 3.5')
}
def test_version_different():
parsed = parsing._parse_requirement(io.StringIO("""
foo !=3.5
"""))
assert parsed == {
REPO_PYPI: get_reqs('foo !=3.5')
}
def test_version_same_no_spaces():
parsed = parsing._parse_requirement(io.StringIO("""
foo==3.5
"""))
assert parsed == {
REPO_PYPI: get_reqs('foo ==3.5')
}
def test_version_greater_two_spaces():
parsed = parsing._parse_requirement(io.StringIO("""
foo > 2
"""))
assert parsed == {
REPO_PYPI: get_reqs('foo > 2')
}
def test_version_same_or_greater():
parsed = parsing._parse_requirement(io.StringIO("""
foo >=2
"""))
assert parsed == {
REPO_PYPI: get_reqs('foo >= 2')
}
def test_comments():
parsed = parsing._parse_requirement(io.StringIO("""
pypi::foo # some text
# other text
bar
"""))
assert parsed == {
REPO_PYPI: get_reqs('foo') + get_reqs('bar')
}
def test_strange_repo(logs):
parsed = parsing._parse_requirement(io.StringIO("""
unknown::foo
"""))
assert Multiple("Not understood fades repository", "unknown") in logs.warning
assert parsed == {}
def test_vcs_simple():
parsed = parsing._parse_requirement(io.StringIO("""
vcs::strangeurl
"""))
assert parsed == {REPO_VCS: [parsing.VCSDependency("strangeurl")]}
def test_vcs_simple_default():
parsed = parsing._parse_requirement(io.StringIO("""
bzrhttp://server/bleh
"""))
assert parsed == {REPO_VCS: [parsing.VCSDependency("bzrhttp://server/bleh")]}
def test_mixed():
parsed = parsing._parse_requirement(io.StringIO("""
vcs::strangeurl
pypi::foo
"""))
assert parsed == {
REPO_VCS: [parsing.VCSDependency("strangeurl")],
REPO_PYPI: get_reqs('foo'),
}
|