File size: 1,299 Bytes
2569bec | 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 | #!/usr/bin/env python3
import argparse
from pathlib import Path
import sys
import unittest
sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
from codex_package.cli import parse_package_version
class PackageVersionTest(unittest.TestCase):
def test_accepts_release_prerelease_and_build_versions(self) -> None:
for version in (
"0.0.0",
"1.2.3",
"0.0.0-internal.deadbeef",
"1.2.3-alpha.1+build.01",
"18446744073709551615.0.0",
):
with self.subTest(version=version):
self.assertEqual(parse_package_version(version), version)
def test_rejects_versions_the_runtime_cannot_parse(self) -> None:
for version in (
"",
"1",
"1.2",
"1.2.3.4",
"v1.2.3",
"01.2.3",
"1.02.3",
"1.2.03",
"1.2.3-",
"1.2.3-alpha..1",
"1.2.3-01",
"1.2.3+",
"1.2.3+build..1",
"18446744073709551616.0.0",
):
with self.subTest(version=version):
with self.assertRaises(argparse.ArgumentTypeError):
parse_package_version(version)
if __name__ == "__main__":
unittest.main()
|