RedFlag/installer/windows/test_build_inputs.py
Fimeg 765ec4188f publish: carry the Windows product into the projection
The tree adds the installer, service and test paths admitted by this source commit. Nothing else changes about what may cross.

Source-Sha: 3e4a3aa4ce092e9e3f51bc78daf3ddc14d9638f8

Policy-Sha: 3e4a3aa4ce092e9e3f51bc78daf3ddc14d9638f8

Tree-Digest: 89d6fce3828a0e0de0c8eeb41ee6750f4462217e2a04b5190297134d7f4a50c3
2026-09-09 12:47:34 -04:00

35 lines
1.5 KiB
Python

import importlib.util
import pathlib
import unittest
from msi_version import product_version
spec = importlib.util.spec_from_file_location("render_license", pathlib.Path(__file__).with_name("render-license.py"))
license_module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(license_module)
class BuildInputs(unittest.TestCase):
def test_revision_upgrades_are_distinct_and_ordered(self):
releases = ["0.2.9.5", "0.2.9.6", "0.2.10", "0.3.0", "1.0.0"]
versions = [tuple(map(int, product_version(v).split("."))) for v in releases]
self.assertEqual(versions, sorted(set(versions)))
self.assertGreater(versions[0], (0, 2, 9)) # Previous MSI scheme.
self.assertEqual(product_version("0.2.9.6"), "0.2.906")
def test_three_part_release_equals_revision_zero(self):
self.assertEqual(product_version("0.3.1"), product_version("0.3.1.0"))
def test_out_of_range_or_nonrelease_versions_are_rejected(self):
for version in ["0.2.9.100", "256.1.0", "1.256.0", "1.0.656", "1.0.655.36", "0.2.9-rc1", "dev", "1.2", "1.2.3.4.5"]:
with self.subTest(version=version), self.assertRaises(ValueError):
product_version(version)
def test_license_escapes_rtf_syntax_without_losing_text(self):
rendered = license_module.render("{license}\\path\nsecond line")
self.assertIn(r"\{license\}\\path\par", rendered)
self.assertIn("second line", rendered)
if __name__ == "__main__":
unittest.main()