mongo/buildscripts/tests/test_packager.py

92 lines
2.4 KiB
Python

"""Unit tests for the packager script."""
from dataclasses import dataclass
from unittest import TestCase
from buildscripts.packager import Spec
class TestPackager(TestCase):
"""Test packager.py."""
def test_is_nightly(self) -> None:
"""Test is_nightly."""
@dataclass
class Case:
"""Test case data."""
name: str
version: str
want: bool
cases = [
Case(
name="Waterfall alpha",
version="5.3.0-alpha-211-g546d77f",
want=True,
),
Case(
name="Waterfall",
version="5.3.0-211-g546d77f",
want=True,
),
Case(
name="Mainline",
version="5.3.0",
want=False,
),
Case(
name="Release candidate",
version="5.3.0-rc0",
want=False,
),
]
for case in cases:
with self.subTest(name=case.name):
spec = Spec(ver=case.version)
self.assertEqual(spec.is_nightly(), case.want)
def test_community_suffix(self) -> None:
"""Test community suffix"""
@dataclass
class Case:
"""Test case data."""
name: str
version: str
want: str
cases = [
Case(name="Old unstable", version="4.3.0", want="-org-unstable"),
Case(name="Old stable 4.2", version="4.2.0", want="-org"),
Case(name="Old stable 4.4", version="4.4.0", want="-org"),
Case(
name="New stable standard",
version="8.0.0",
want="-org",
),
Case(
name="New unstable standard 8.1",
version="8.1.0",
want="-org-unstable",
),
Case(
name="New unstable standard 7.2",
version="7.2.0",
want="-org-unstable",
),
Case(
name="New stable special case",
version="8.2.0",
want="-org",
),
]
for case in cases:
with self.subTest(name=case.name):
spec = Spec(ver=case.version)
self.assertEqual(spec.suffix(), case.want)