Files
mongo/buildscripts/tests/test_packager.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

92 lines
2.4 KiB
Python
Raw Normal View History

"""Unit tests for the packager script."""
from dataclasses import dataclass
from unittest import TestCase
from buildscripts.packager import Spec
class TestPackager(TestCase):
2023-07-03 14:00:05 +00:00
"""Test packager.py."""
def test_is_nightly(self) -> None:
"""Test is_nightly."""
@dataclass
class Case:
2023-07-03 14:00:05 +00:00
"""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)