Blame SOURCES/pyproject_buildrequires_testcases.yaml

838e4d
No pyproject.toml, nothing installed:
838e4d
  installed:
838e4d
    # empty
838e4d
  except: FileNotFoundError
838e4d
838e4d
Nothing installed yet:
838e4d
  installed:
838e4d
    # empty
838e4d
  pyproject.toml: |
838e4d
    # empty
838e4d
  expected: |
838e4d
    python3dist(setuptools) >= 40.8
838e4d
    python3dist(wheel)
838e4d
  except: FileNotFoundError
838e4d
838e4d
Insufficient version of setuptools:
838e4d
  installed:
838e4d
    setuptools: 5
838e4d
    wheel: 1
838e4d
    toml: 1
838e4d
  pyproject.toml: |
838e4d
    # empty
838e4d
  setup.py: |
838e4d
  expected: |
838e4d
    python3dist(setuptools) >= 40.8
838e4d
    python3dist(wheel)
838e4d
  result: 0
838e4d
838e4d
No pyproject.toml, empty setup.py:
838e4d
  installed:
838e4d
    setuptools: 50
838e4d
    wheel: 1
838e4d
  setup.py: |
838e4d
  expected: |
838e4d
    python3dist(setuptools) >= 40.8
838e4d
    python3dist(wheel)
838e4d
    python3dist(wheel)
838e4d
  result: 0
838e4d
838e4d
Default build system, empty setup.py:
838e4d
  installed:
838e4d
    setuptools: 50
838e4d
    wheel: 1
838e4d
    toml: 1
838e4d
  pyproject.toml: |
838e4d
    # empty
838e4d
  setup.py: |
838e4d
  expected: |
838e4d
    python3dist(setuptools) >= 40.8
838e4d
    python3dist(wheel)
838e4d
    python3dist(wheel)
838e4d
  result: 0
838e4d
838e4d
pyproject.toml with build-backend and setup.py:
838e4d
  generate_extras: true
838e4d
  installed:
838e4d
    setuptools: 50
838e4d
    wheel: 1
838e4d
    toml: 1
838e4d
  setup.py: |
838e4d
    # empty
838e4d
  pyproject.toml: |
838e4d
    [build-system]
838e4d
    requires = [
838e4d
        "foo",
838e4d
    ]
838e4d
    build-backend = "foo.build"
838e4d
  expected: |
838e4d
    python3dist(foo)
838e4d
  result: 0
838e4d
838e4d
Erroring setup.py:
838e4d
  installed:
838e4d
    setuptools: 50
838e4d
    wheel: 1
838e4d
  setup.py: |
838e4d
    exit(77)
838e4d
  result: 77
838e4d
838e4d
Bad character in version:
838e4d
  installed:
838e4d
    toml: 1
838e4d
  pyproject.toml: |
838e4d
    [build-system]
838e4d
    requires = ["pkg == 0.$.^.*"]
838e4d
  except: ValueError
838e4d
838e4d
Single value version with unsupported compatible operator:
838e4d
  installed:
838e4d
    toml: 1
838e4d
  pyproject.toml: |
838e4d
    [build-system]
838e4d
    requires = ["pkg ~= 42", "foo"]
838e4d
    build-backend = "foo.build"
838e4d
  except: ValueError
838e4d
838e4d
Asterisk in version with unsupported compatible operator:
838e4d
  installed:
838e4d
    toml: 1
838e4d
  pyproject.toml: |
838e4d
    [build-system]
838e4d
    requires = ["pkg ~= 0.1.*", "foo"]
838e4d
    build-backend = "foo.build"
838e4d
  except: ValueError
838e4d
838e4d
Local path as requirement:
838e4d
  installed:
838e4d
    toml: 1
838e4d
  pyproject.toml: |
838e4d
    [build-system]
838e4d
    requires = ["./pkg-1.2.3.tar.gz", "foo"]
838e4d
    build-backend = "foo.build"
838e4d
  except: ValueError
838e4d
838e4d
Pip's egg=pkgName requirement not in requirements file:
838e4d
  installed:
838e4d
    toml: 1
838e4d
  pyproject.toml: |
838e4d
    [build-system]
838e4d
    requires = ["git+https://github.com/monty/spam.git@master#egg=spam", "foo"]
838e4d
    build-backend = "foo.build"
838e4d
  except: ValueError
838e4d
838e4d
URL without egg fragment as requirement:
838e4d
  installed:
838e4d
    toml: 1
838e4d
  pyproject.toml: |
838e4d
    [build-system]
838e4d
    requires = ["git+https://github.com/pkg-dev/pkg.git@96dbe5e3", "foo"]
838e4d
    build-backend = "foo.build"
838e4d
  except: ValueError
838e4d
838e4d
Build system dependencies in pyproject.toml with extras:
838e4d
  generate_extras: true
838e4d
  installed:
838e4d
    setuptools: 50
838e4d
    wheel: 1
838e4d
    toml: 1
838e4d
  pyproject.toml: |
838e4d
    [build-system]
838e4d
    requires = [
838e4d
        "foo",
838e4d
        "bar[bAz] > 5",
838e4d
        "ne!=1",
838e4d
        "ge>=1.2.0",
838e4d
        "le <= 1.2.3",
838e4d
        "lt < 1.2.3.4      ",
838e4d
        "    gt > 1.2.3.4.5",
838e4d
        "compatible ~= 0.4.0",
838e4d
        "equal == 0.5.0",
838e4d
        "arbitrary_equal === 0.6.0",
838e4d
        "asterisk_equal == 0.6.*",
838e4d
        "appdirs@https://github.com/ActiveState/appdirs/archive/8eacfa312d77aba28d483fbfb6f6fc54099622be.zip",
838e4d
        "multi[Extras1,Extras2] == 6.0",
838e4d
        "combo >2, <5, != 3.0.0",
838e4d
        "py2 ; python_version < '2.7'",
838e4d
        "py3 ; python_version > '3.0'",
838e4d
    ]
838e4d
    build-backend = "foo.build"
838e4d
  expected: |
838e4d
    python3dist(foo)
838e4d
    python3dist(bar) > 5
838e4d
    python3dist(bar[baz]) > 5
838e4d
    (python3dist(ne) < 1 or python3dist(ne) > 1)
838e4d
    python3dist(ge) >= 1.2
838e4d
    python3dist(le) <= 1.2.3
838e4d
    python3dist(lt) < 1.2.3.4
838e4d
    python3dist(gt) > 1.2.3.4.5
838e4d
    (python3dist(compatible) >= 0.4 with python3dist(compatible) < 0.5)
838e4d
    python3dist(equal) = 0.5
838e4d
    python3dist(arbitrary-equal) = 0.6
838e4d
    (python3dist(asterisk-equal) >= 0.6 with python3dist(asterisk-equal) < 0.7)
838e4d
    python3dist(appdirs)
838e4d
    python3dist(multi) = 6
838e4d
    python3dist(multi[extras1]) = 6
838e4d
    python3dist(multi[extras2]) = 6
838e4d
    ((python3dist(combo) < 3 or python3dist(combo) > 3) with python3dist(combo) < 5 with python3dist(combo) > 2)
838e4d
    python3dist(py3)
838e4d
  stderr_contains: "WARNING: Simplifying 'appdirs@https://github.com/ActiveState/appdirs/archive/8eacfa312d77aba28d483fbfb6f6fc54099622be.zip' to 'appdirs'."
838e4d
  result: 0
838e4d
838e4d
Build system dependencies in pyproject.toml without extras:
838e4d
  generate_extras: false
838e4d
  installed:
838e4d
    setuptools: 50
838e4d
    wheel: 1
838e4d
    toml: 1
838e4d
  pyproject.toml: |
838e4d
    [build-system]
838e4d
    requires = [
838e4d
        "bar[Baz] > 5",
838e4d
        "multi[extras1,extras2] == 6.0",
838e4d
    ]
838e4d
    build-backend = "foo.build"
838e4d
  expected: |
838e4d
    python3dist(bar) > 5
838e4d
    python3dist(multi) = 6
838e4d
  result: 0
838e4d
838e4d
Default build system, build dependencies in setup.py:
838e4d
  installed:
838e4d
    setuptools: 50
838e4d
    wheel: 1
838e4d
  setup.py: |
838e4d
    from setuptools import setup
838e4d
    setup(
838e4d
        name='test',
838e4d
        version='0.1',
838e4d
        setup_requires=['foo', 'bar!=2', 'baz~=1.1.1'],
838e4d
        install_requires=['inst'],
838e4d
    )
838e4d
  expected: |
838e4d
    python3dist(setuptools) >= 40.8
838e4d
    python3dist(wheel)
838e4d
    python3dist(wheel)
838e4d
    python3dist(foo)
838e4d
    (python3dist(bar) < 2 or python3dist(bar) > 2)
838e4d
    (python3dist(baz) >= 1.1.1 with python3dist(baz) < 1.2)
838e4d
  result: 0
838e4d
838e4d
Default build system, run dependencies in setup.py:
838e4d
  installed:
838e4d
    setuptools: 50
838e4d
    wheel: 1
838e4d
    pyyaml: 1
838e4d
  include_runtime: true
838e4d
  setup.py: |
838e4d
    from setuptools import setup
838e4d
    setup(
838e4d
        name='test',
838e4d
        version='0.1',
838e4d
        setup_requires=['pyyaml'],  # nb. setuptools will try to install this
838e4d
        install_requires=['inst > 1', 'inst2 < 3'],
838e4d
    )
838e4d
  expected: |
838e4d
    python3dist(setuptools) >= 40.8
838e4d
    python3dist(wheel)
838e4d
    python3dist(wheel)
838e4d
    python3dist(pyyaml)
838e4d
    python3dist(inst) > 1
838e4d
    python3dist(inst2) < 3
838e4d
  result: 0
838e4d
838e4d
Run dependencies with extras (not selected):
838e4d
  installed:
838e4d
    setuptools: 50
838e4d
    wheel: 1
838e4d
    pyyaml: 1
838e4d
  include_runtime: true
838e4d
  setup.py: &pytest_setup_py |
838e4d
        # slightly abriged copy of pytest's setup.py
838e4d
        from setuptools import setup
838e4d
838e4d
        INSTALL_REQUIRES = [
838e4d
            "py>=1.5.0",
838e4d
            "six>=1.10.0",
838e4d
            "setuptools",
838e4d
            "attrs>=17.4.0",
838e4d
            'more-itertools>=4.0.0,<6.0.0;python_version<="2.7"',
838e4d
            'more-itertools>=4.0.0;python_version>"2.7"',
838e4d
            "atomicwrites>=1.0",
838e4d
            'funcsigs>=1.0;python_version<"3.0"',
838e4d
            'pathlib2>=2.2.0;python_version<"3.6"',
838e4d
            'colorama;sys_platform=="win32"',
838e4d
            "pluggy>=0.11",
838e4d
        ]
838e4d
838e4d
        def main():
838e4d
            setup(
838e4d
                setup_requires=["setuptools>=40.0"],
838e4d
                # fmt: off
838e4d
                extras_require={
838e4d
                    "testing": [
838e4d
                        "argcomplete",
838e4d
                        "hypothesis>=3.56",
838e4d
                        "nose",
838e4d
                        "requests",
838e4d
                        "mock;python_version=='2.7'",
838e4d
                    ],
838e4d
                },
838e4d
                # fmt: on
838e4d
                install_requires=INSTALL_REQUIRES,
838e4d
            )
838e4d
838e4d
        if __name__ == "__main__":
838e4d
            main()
838e4d
  expected: |
838e4d
    python3dist(setuptools) >= 40.8
838e4d
    python3dist(wheel)
838e4d
    python3dist(wheel)
838e4d
    python3dist(setuptools) >= 40
838e4d
    python3dist(py) >= 1.5
838e4d
    python3dist(six) >= 1.10
838e4d
    python3dist(setuptools)
838e4d
    python3dist(attrs) >= 17.4
838e4d
    python3dist(atomicwrites) >= 1
838e4d
    python3dist(pluggy) >= 0.11
838e4d
    python3dist(more-itertools) >= 4
838e4d
  result: 0
838e4d
838e4d
Run dependencies with extras (selected):
838e4d
  installed:
838e4d
    setuptools: 50
838e4d
    wheel: 1
838e4d
    pyyaml: 1
838e4d
  include_runtime: true
838e4d
  extras:
838e4d
    - testing
838e4d
  setup.py: *pytest_setup_py
838e4d
  expected: |
838e4d
    python3dist(setuptools) >= 40.8
838e4d
    python3dist(wheel)
838e4d
    python3dist(wheel)
838e4d
    python3dist(setuptools) >= 40
838e4d
    python3dist(py) >= 1.5
838e4d
    python3dist(six) >= 1.10
838e4d
    python3dist(setuptools)
838e4d
    python3dist(attrs) >= 17.4
838e4d
    python3dist(atomicwrites) >= 1
838e4d
    python3dist(pluggy) >= 0.11
838e4d
    python3dist(more-itertools) >= 4
838e4d
    python3dist(argcomplete)
838e4d
    python3dist(hypothesis) >= 3.56
838e4d
    python3dist(nose)
838e4d
    python3dist(requests)
838e4d
  result: 0
838e4d
838e4d
Run dependencies with multiple extras:
838e4d
  installed:
838e4d
    setuptools: 50
838e4d
    wheel: 1
838e4d
    pyyaml: 1
838e4d
  include_runtime: true
838e4d
  generate_extras: true
838e4d
  extras:
838e4d
    - testing,more-testing
838e4d
    - even-more-testing , cool-feature
838e4d
  setup.py: |
838e4d
    from setuptools import setup
838e4d
    setup(
838e4d
        extras_require={
838e4d
            'testing': ['dep1'],
838e4d
            'more-testing': ['dep2'],
838e4d
            'even-more-testing': ['dep3'],
838e4d
            'cool-feature': ['dep4[FOO,BAR]'],
838e4d
        },
838e4d
    )
838e4d
  expected: |
838e4d
    python3dist(setuptools) >= 40.8
838e4d
    python3dist(wheel)
838e4d
    python3dist(wheel)
838e4d
    python3dist(dep4)
838e4d
    python3dist(dep4[bar])
838e4d
    python3dist(dep4[foo])
838e4d
    python3dist(dep3)
838e4d
    python3dist(dep2)
838e4d
    python3dist(dep1)
838e4d
  result: 0
838e4d
838e4d
Tox dependencies:
838e4d
  installed:
838e4d
    setuptools: 50
838e4d
    wheel: 1
838e4d
    tox: 3.5.3
838e4d
    tox-current-env: 0.0.6
838e4d
  toxenv:
838e4d
    - py3
838e4d
  setup.py: |
838e4d
    from setuptools import setup
838e4d
    setup(
838e4d
        name='test',
838e4d
        version='0.1',
838e4d
        install_requires=['inst'],
838e4d
    )
838e4d
  tox.ini: |
838e4d
    [tox]
838e4d
    envlist = py36,py37,py38
838e4d
    [testenv]
838e4d
    deps =
838e4d
        toxdep1
838e4d
        toxdep2
838e4d
    commands =
838e4d
        true
838e4d
  expected: |
838e4d
    python3dist(setuptools) >= 40.8
838e4d
    python3dist(wheel)
838e4d
    python3dist(wheel)
838e4d
    python3dist(tox-current-env) >= 0.0.6
838e4d
    python3dist(toxdep1)
838e4d
    python3dist(toxdep2)
838e4d
    python3dist(inst)
838e4d
  result: 0
838e4d
838e4d
Tox extras:
838e4d
  installed:
838e4d
    setuptools: 50
838e4d
    wheel: 1
838e4d
    tox: 3.5.3
838e4d
    tox-current-env: 0.0.6
838e4d
  generate_extras: true
838e4d
  toxenv:
838e4d
    - py3
838e4d
  setup.py: |
838e4d
    from setuptools import setup
838e4d
    setup(
838e4d
        name='test',
838e4d
        version='0.1',
838e4d
        install_requires=['inst'],
838e4d
        extras_require={
838e4d
            'extra1':  ['dep11 > 11', 'dep12'],
838e4d
            'extra2': ['dep21', 'dep22', 'dep23', 'extra_dep[EXTRA_DEP]'],
838e4d
            'nope': ['nopedep'],
838e4d
        }
838e4d
    )
838e4d
  tox.ini: |
838e4d
    [tox]
838e4d
    envlist = py36,py37,py38
838e4d
    [testenv]
838e4d
    deps =
838e4d
        toxdep
838e4d
    extras =
838e4d
        extra2
838e4d
        extra1
838e4d
    commands =
838e4d
        true
838e4d
  expected: |
838e4d
    python3dist(setuptools) >= 40.8
838e4d
    python3dist(wheel)
838e4d
    python3dist(wheel)
838e4d
    python3dist(tox-current-env) >= 0.0.6
838e4d
    python3dist(toxdep)
838e4d
    python3dist(inst)
838e4d
    python3dist(dep11) > 11
838e4d
    python3dist(dep12)
838e4d
    python3dist(dep21)
838e4d
    python3dist(dep22)
838e4d
    python3dist(dep23)
838e4d
    python3dist(extra-dep)
838e4d
    python3dist(extra-dep[extra_dep])
838e4d
  result: 0
838e4d
838e4d
Tox provision unsatisfied:
838e4d
  installed:
838e4d
    setuptools: 50
838e4d
    wheel: 1
838e4d
    tox: 3.5.3
838e4d
    tox-current-env: 0.0.6
838e4d
  toxenv:
838e4d
    - py3
838e4d
  setup.py: |
838e4d
    from setuptools import setup
838e4d
    setup(
838e4d
        name='test',
838e4d
        version='0.1',
838e4d
        install_requires=['inst'],
838e4d
    )
838e4d
  tox.ini: |
838e4d
    [tox]
838e4d
    minversion = 3.999
838e4d
    requires =
838e4d
        setuptools > 40
838e4d
        wheel > 2
838e4d
    [testenv]
838e4d
    deps =
838e4d
        toxdep1
838e4d
        toxdep2
838e4d
  expected: |
838e4d
    python3dist(setuptools) >= 40.8
838e4d
    python3dist(wheel)
838e4d
    python3dist(wheel)
838e4d
    python3dist(tox-current-env) >= 0.0.6
838e4d
    python3dist(tox) >= 3.999
838e4d
    python3dist(setuptools) > 40
838e4d
    python3dist(wheel) > 2
838e4d
  result: 0
838e4d
838e4d
Tox provision satisfied:
838e4d
  installed:
838e4d
    setuptools: 50
838e4d
    wheel: 1
838e4d
    tox: 3.5.3
838e4d
    tox-current-env: 0.0.6
838e4d
  toxenv:
838e4d
    - py3
838e4d
  setup.py: |
838e4d
    from setuptools import setup
838e4d
    setup(
838e4d
        name='test',
838e4d
        version='0.1',
838e4d
        install_requires=['inst'],
838e4d
    )
838e4d
  tox.ini: |
838e4d
    [tox]
838e4d
    minversion = 3.5
838e4d
    requires =
838e4d
        setuptools > 40
838e4d
    [testenv]
838e4d
    deps =
838e4d
        toxdep1
838e4d
        toxdep2
838e4d
  expected: |
838e4d
    python3dist(setuptools) >= 40.8
838e4d
    python3dist(wheel)
838e4d
    python3dist(wheel)
838e4d
    python3dist(tox-current-env) >= 0.0.6
838e4d
    python3dist(tox) >= 3.5
838e4d
    python3dist(setuptools) > 40
838e4d
    python3dist(toxdep1)
838e4d
    python3dist(toxdep2)
838e4d
    python3dist(inst)
838e4d
  result: 0
838e4d
838e4d
Default build system, unmet deps in requirements file:
838e4d
  installed:
838e4d
    setuptools: 50
838e4d
    wheel: 1
838e4d
  setup.py: |
838e4d
    from setuptools import setup
838e4d
    setup(
838e4d
        name='test',
838e4d
        version='0.1',
838e4d
    )
838e4d
  requirements.txt: |
838e4d
    lxml
838e4d
    ncclient
838e4d
    cryptography
838e4d
    paramiko
838e4d
    SQLAlchemy
838e4d
  requirement_files:
838e4d
    - requirements.txt
838e4d
  expected: |
838e4d
    python3dist(lxml)
838e4d
    python3dist(ncclient)
838e4d
    python3dist(cryptography)
838e4d
    python3dist(paramiko)
838e4d
    python3dist(sqlalchemy)
838e4d
  result: 0
838e4d
838e4d
Default build system, met deps in requirements file:
838e4d
  installed:
838e4d
    setuptools: 50
838e4d
    wheel: 1
838e4d
    lxml: 3.9
838e4d
    ncclient: 1
838e4d
    cryptography: 2
838e4d
    paramiko: 1
838e4d
    SQLAlchemy: 1.0.90
838e4d
  setup.py: |
838e4d
    from setuptools import setup
838e4d
    setup(
838e4d
        name='test',
838e4d
        version='0.1',
838e4d
    )
838e4d
  requirements.txt: |
838e4d
    lxml!=3.7.0,>=2.3    # OF-Config
838e4d
    ncclient  # OF-Config
838e4d
    cryptography!=1.5.2  # Required by paramiko
838e4d
    paramiko  # NETCONF, BGP speaker (SSH console)
838e4d
    SQLAlchemy>=1.0.10,<1.1.0  # Zebra protocol service
838e4d
  requirement_files:
838e4d
    - requirements.txt
838e4d
  expected: |
838e4d
    ((python3dist(lxml) < 3.7 or python3dist(lxml) > 3.7) with python3dist(lxml) >= 2.3)
838e4d
    python3dist(ncclient)
838e4d
    (python3dist(cryptography) < 1.5.2 or python3dist(cryptography) > 1.5.2)
838e4d
    python3dist(paramiko)
838e4d
    (python3dist(sqlalchemy) < 1.1 with python3dist(sqlalchemy) >= 1.0.10)
838e4d
    python3dist(setuptools) >= 40.8
838e4d
    python3dist(wheel)
838e4d
    python3dist(wheel)
838e4d
  result: 0
838e4d
838e4d
With pyproject.toml, requirements file and with -N option:
838e4d
  use_build_system: false
838e4d
  installed:
838e4d
    setuptools: 50
838e4d
    wheel: 1
838e4d
    toml: 1
838e4d
    lxml: 3.9
838e4d
    ncclient: 1
838e4d
    cryptography: 2
838e4d
    paramiko: 1
838e4d
    SQLAlchemy: 1.0.90
838e4d
  pyproject.toml: |
838e4d
    [build-system]
838e4d
    requires = [
838e4d
        "foo",
838e4d
    ]
838e4d
    build-backend = "foo.build"
838e4d
  requirements.txt: |
838e4d
    lxml
838e4d
    ncclient
838e4d
    cryptography
838e4d
    paramiko
838e4d
    SQLAlchemy
838e4d
    git+https://github.com/monty/spam.git@master#egg=spam
838e4d
  requirement_files:
838e4d
    - requirements.txt
838e4d
  expected: |
838e4d
    python3dist(lxml)
838e4d
    python3dist(ncclient)
838e4d
    python3dist(cryptography)
838e4d
    python3dist(paramiko)
838e4d
    python3dist(sqlalchemy)
838e4d
    python3dist(spam)
838e4d
  stderr_contains: "WARNING: Simplifying 'spam@git+https://github.com/monty/spam.git@master#egg=spam' to 'spam'."
838e4d
  result: 0
838e4d
838e4d
With pyproject.toml, requirements file and without -N option:
838e4d
  use_build_system: true
838e4d
  installed:
838e4d
    setuptools: 50
838e4d
    wheel: 1
838e4d
    toml: 1
838e4d
    lxml: 3.9
838e4d
    ncclient: 1
838e4d
    cryptography: 2
838e4d
    paramiko: 1
838e4d
    SQLAlchemy: 1.0.90
838e4d
    argcomplete: 1
838e4d
    hypothesis: 1
838e4d
  pyproject.toml: |
838e4d
    [build-system]
838e4d
    requires = [
838e4d
        "foo",
838e4d
    ]
838e4d
    build-backend = "foo.build"
838e4d
  requirements.txt: |
838e4d
    lxml
838e4d
    ncclient
838e4d
    cryptography
838e4d
    paramiko
838e4d
    SQLAlchemy
838e4d
  requirements1.in: |
838e4d
    argcomplete
838e4d
    hypothesis
838e4d
  requirement_files:
838e4d
    - requirements.txt
838e4d
    - requirements1.in
838e4d
  expected: |
838e4d
    python3dist(lxml)
838e4d
    python3dist(ncclient)
838e4d
    python3dist(cryptography)
838e4d
    python3dist(paramiko)
838e4d
    python3dist(sqlalchemy)
838e4d
    python3dist(argcomplete)
838e4d
    python3dist(hypothesis)
838e4d
    python3dist(foo)
838e4d
  result: 0
838e4d
838e4d
Value error if -N and -r arguments are present:
838e4d
  installed:
838e4d
    # empty
838e4d
  include_runtime: true
838e4d
  use_build_system: false
838e4d
  except: ValueError
838e4d
838e4d
Value error if -N and -e arguments are present:
838e4d
  installed:
838e4d
    # empty
838e4d
  toxenv:
838e4d
    - py3
838e4d
  use_build_system: false
838e4d
  except: ValueError
838e4d
838e4d
Weird and complex requirements file:
838e4d
  installed:
838e4d
    setuptools: 50
838e4d
    wheel: 1
838e4d
  setup.py: |
838e4d
    from setuptools import setup
838e4d
    setup(
838e4d
        name='test',
838e4d
        version='0.1',
838e4d
    )
838e4d
  requirements.txt: |
838e4d
    Normal_Req ~= 1.2.0
838e4d
838e4d
    good@git+https://github.com/monty/spam.git@master#egg=bad
838e4d
    git+https://github.com/monty/spam.git@master#egg=ugly
838e4d
838e4d
    this-name-is-too-\
838e4d
    long-for-this-file<\
838e4d
    =30  # even names and operators can be split
838e4d
838e4d
    # this is not a multi-line comment \
838e4d
    some-dep
838e4d
    other-dep  # but this *is* a multi-line coment \
838e4d
    so any garbage can be here
838e4d
    dep-a # and this comment ends with the blank line below \
838e4d
838e4d
    dep-b
838e4d
    -r requirements2.txt
838e4d
    ${PACKAGE}${WANTED_VERSION}
838e4d
  requirements2.txt: |
838e4d
    dep-from-included-file
838e4d
  requirement_files:
838e4d
    - requirements.txt
838e4d
  environ:
838e4d
    PACKAGE: package
838e4d
    WANTED_VERSION: -from-environ >= 1.2.3
838e4d
  expected: |
838e4d
    (python3dist(normal-req) >= 1.2 with python3dist(normal-req) < 1.3)
838e4d
    python3dist(good)
838e4d
    python3dist(ugly)
838e4d
    python3dist(this-name-is-too-long-for-this-file) <= 30
838e4d
    python3dist(some-dep)
838e4d
    python3dist(other-dep)
838e4d
    python3dist(dep-a)
838e4d
    python3dist(dep-b)
838e4d
    python3dist(dep-from-included-file)
838e4d
    python3dist(package-from-environ) >= 1.2.3
838e4d
  stderr_contains:
838e4d
  - "WARNING: Simplifying 'good@git+https://github.com/monty/spam.git@master#egg=bad' to 'good'."
838e4d
  # XXX: pyproject_requirements_txt adds a prefix that's not actually in the source;
838e4d
  # but that's good enough:
838e4d
  - "WARNING: Simplifying 'ugly@git+https://github.com/monty/spam.git@master#egg=ugly' to 'ugly'."
838e4d
  result: 0