@@ -0,0 +1,68 @@
|
||||
"""Тесты verify_release_deps.py."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import subprocess
|
||||
import sys
|
||||
import tempfile
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parent.parent
|
||||
SCRIPTS = ROOT / "scripts"
|
||||
|
||||
|
||||
class VerifyReleaseDepsTests(unittest.TestCase):
|
||||
def setUp(self) -> None:
|
||||
self._tmp = tempfile.mkdtemp(prefix="wesp-verify-deps-")
|
||||
self.root = Path(self._tmp)
|
||||
self.req = self.root / "requirements.txt"
|
||||
self.wheels = self.root / "vendor" / "wheels"
|
||||
self.wheels.mkdir(parents=True)
|
||||
self.req.write_text("Flask==2.3.3\nwaitress==2.1.2\n", encoding="utf-8")
|
||||
|
||||
def tearDown(self) -> None:
|
||||
import shutil
|
||||
|
||||
shutil.rmtree(self._tmp, ignore_errors=True)
|
||||
|
||||
def _run(self, *extra: str) -> subprocess.CompletedProcess:
|
||||
cmd = [
|
||||
sys.executable,
|
||||
str(SCRIPTS / "verify_release_deps.py"),
|
||||
"--req",
|
||||
str(self.req),
|
||||
"--wheels",
|
||||
str(self.wheels),
|
||||
*extra,
|
||||
]
|
||||
return subprocess.run(cmd, capture_output=True, text=True, cwd=str(ROOT))
|
||||
|
||||
def test_pass_with_matching_wheels(self) -> None:
|
||||
(self.wheels / "flask-2.3.3-py3-none-any.whl").write_bytes(b"1")
|
||||
(self.wheels / "waitress-2.1.2-py3-none-any.whl").write_bytes(b"1")
|
||||
r = self._run()
|
||||
self.assertEqual(r.returncode, 0, r.stderr)
|
||||
|
||||
def test_fail_missing_wheel(self) -> None:
|
||||
(self.wheels / "flask-2.3.3-py3-none-any.whl").write_bytes(b"1")
|
||||
r = self._run()
|
||||
self.assertEqual(r.returncode, 1)
|
||||
self.assertIn("waitress", r.stderr.lower())
|
||||
|
||||
def test_fail_empty_wheelhouse(self) -> None:
|
||||
r = self._run()
|
||||
self.assertEqual(r.returncode, 1)
|
||||
self.assertIn("wheelhouse", r.stderr.lower())
|
||||
|
||||
def test_write_manifest(self) -> None:
|
||||
(self.wheels / "flask-2.3.3-py3-none-any.whl").write_bytes(b"1")
|
||||
(self.wheels / "waitress-2.1.2-py3-none-any.whl").write_bytes(b"1")
|
||||
r = self._run("--write-manifest")
|
||||
self.assertEqual(r.returncode, 0)
|
||||
manifest = self.wheels / "manifest.json"
|
||||
self.assertTrue(manifest.is_file())
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user