예제 #1
0
def test_to_pep_508_in_extras():
    dependency = Dependency("Django", "^1.23")
    dependency.in_extras.append("foo")

    result = dependency.to_pep_508()
    assert result == 'Django (>=1.23,<2.0); extra == "foo"'

    result = dependency.to_pep_508(with_extras=False)
    assert result == "Django (>=1.23,<2.0)"

    dependency.in_extras.append("bar")

    result = dependency.to_pep_508()
    assert result == 'Django (>=1.23,<2.0); extra == "foo" or extra == "bar"'

    dependency.python_versions = "~2.7 || ^3.6"

    result = dependency.to_pep_508()
    assert result == ("Django (>=1.23,<2.0); "
                      "("
                      'python_version >= "2.7" and python_version < "2.8" '
                      'or python_version >= "3.6" and python_version < "4.0"'
                      ") "
                      'and (extra == "foo" or extra == "bar")')

    result = dependency.to_pep_508(with_extras=False)
    assert result == ("Django (>=1.23,<2.0); "
                      'python_version >= "2.7" and python_version < "2.8" '
                      'or python_version >= "3.6" and python_version < "4.0"')
예제 #2
0
def test_to_pep_508_combination():
    dependency = Dependency("foo", "^1.2,!=1.3.5")

    assert "foo (>=1.2,<2.0,!=1.3.5)" == dependency.to_pep_508()

    dependency = Dependency("foo", "~1.2,!=1.2.5")

    assert "foo (>=1.2,<1.3,!=1.2.5)" == dependency.to_pep_508()
예제 #3
0
def test_to_pep_508():
    dependency = Dependency("Django", "^1.23")

    result = dependency.to_pep_508()
    assert result == "Django (>=1.23,<2.0)"

    dependency = Dependency("Django", "^1.23")
    dependency.python_versions = "~2.7 || ^3.6"

    result = dependency.to_pep_508()
    assert (result == "Django (>=1.23,<2.0); "
            'python_version >= "2.7" and python_version < "2.8" '
            'or python_version >= "3.6" and python_version < "4.0"')
예제 #4
0
def test_to_pep_508_caret():
    dependency = Dependency("foo", "^1.2.3")

    assert "foo (>=1.2.3,<2.0.0)" == dependency.to_pep_508()

    dependency = Dependency("foo", "^1.2")

    assert "foo (>=1.2,<2.0)" == dependency.to_pep_508()

    dependency = Dependency("foo", "^0.2.3")

    assert "foo (>=0.2.3,<0.3.0)" == dependency.to_pep_508()

    dependency = Dependency("foo", "^0.2")

    assert "foo (>=0.2,<0.3)" == dependency.to_pep_508()
예제 #5
0
def test_to_pep_508_tilde():
    dependency = Dependency("foo", "~1.2.3")

    assert "foo (>=1.2.3,<1.3.0)" == dependency.to_pep_508()

    dependency = Dependency("foo", "~1.2")

    assert "foo (>=1.2,<1.3)" == dependency.to_pep_508()

    dependency = Dependency("foo", "~0.2.3")

    assert "foo (>=0.2.3,<0.3.0)" == dependency.to_pep_508()

    dependency = Dependency("foo", "~0.2")

    assert "foo (>=0.2,<0.3)" == dependency.to_pep_508()
예제 #6
0
def test_to_pep_508_with_patch_python_version(python_versions, marker):
    dependency = Dependency("Django", "^1.23")
    dependency.python_versions = python_versions

    expected = "Django (>=1.23,<2.0); {}".format(marker)

    assert expected == dependency.to_pep_508()
    assert marker == str(dependency.marker)
예제 #7
0
def test_to_pep_508_wilcard():
    dependency = Dependency("Django", "*")

    result = dependency.to_pep_508()
    assert result == "Django"
예제 #8
0
def test_to_pep_508_with_single_version_excluded():
    dependency = Dependency("foo", "!=1.2.3")

    assert "foo (!=1.2.3)" == dependency.to_pep_508()