mirror of https://github.com/mongodb/mongo
104 lines
2.6 KiB
Python
104 lines
2.6 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)
|