12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import pytest
- from tools import lint_requirements
- def test_ok(tmp_path):
- f = tmp_path.joinpath("f.txt")
- f.write_text(
- "# allow comments\n"
- "# and allow pip settings\n"
- "--index-url https://pypi.devinfra.sentry.io/simple\n"
- "a==1\n"
- "b==2\n"
- )
- assert lint_requirements.main((str(f),)) == 0
- def test_not_ok_classic_git_url(tmp_path):
- f = tmp_path.joinpath("f.txt")
- f.write_text("git+https://github.com/asottile/astpretty@3.0.0#egg=astpretty")
- with pytest.raises(SystemExit) as excinfo:
- lint_requirements.main((str(f),))
- expected = f"""\
- You cannot use dependencies that are not on PyPI directly.
- See PEP440: https://www.python.org/dev/peps/pep-0440/#direct-references
- {f}:1: git+https://github.com/asottile/astpretty@3.0.0#egg=astpretty
- """
- (msg,) = excinfo.value.args
- assert msg == expected.rstrip()
- def test_not_ok_new_style_git_url(tmp_path):
- f = tmp_path.joinpath("f.txt")
- f.write_text("astpretty @ git+https://github.com/asottile/astpretty@3.0.0")
- with pytest.raises(SystemExit) as excinfo:
- lint_requirements.main((str(f),))
- expected = f"""\
- You cannot use dependencies that are not on PyPI directly.
- See PEP440: https://www.python.org/dev/peps/pep-0440/#direct-references
- {f}:1: astpretty @ git+https://github.com/asottile/astpretty@3.0.0
- """
- (msg,) = excinfo.value.args
- assert msg == expected.rstrip()
|