mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 19:01:54 +00:00
- Support space-separated, comma-separated and mixed --id values - Normalize and deduplicate application IDs before validation - Fix Makefile to pass APP without quoting - Add unittest coverage for ID normalization https://chatgpt.com/share/696be0c2-816c-800f-8b07-3c5cd0304ac5
64 lines
1.8 KiB
Python
64 lines
1.8 KiB
Python
# cli/deploy/dedicated/tests/test_command_ids.py
|
|
from __future__ import annotations
|
|
|
|
import unittest
|
|
|
|
from cli.deploy.dedicated.command import _normalize_app_ids
|
|
|
|
|
|
class TestNormalizeAppIds(unittest.TestCase):
|
|
def test_empty(self):
|
|
self.assertEqual(_normalize_app_ids([]), [])
|
|
|
|
def test_single(self):
|
|
self.assertEqual(_normalize_app_ids(["mailu"]), ["mailu"])
|
|
|
|
def test_space_separated(self):
|
|
self.assertEqual(
|
|
_normalize_app_ids(["mailu", "keycloak", "matomo"]),
|
|
["mailu", "keycloak", "matomo"],
|
|
)
|
|
|
|
def test_comma_separated(self):
|
|
self.assertEqual(
|
|
_normalize_app_ids(["mailu,keycloak,matomo"]),
|
|
["mailu", "keycloak", "matomo"],
|
|
)
|
|
|
|
def test_mixed_space_and_comma(self):
|
|
self.assertEqual(
|
|
_normalize_app_ids(["mailu,keycloak", "matomo"]),
|
|
["mailu", "keycloak", "matomo"],
|
|
)
|
|
|
|
self.assertEqual(
|
|
_normalize_app_ids(["mailu", "keycloak,matomo"]),
|
|
["mailu", "keycloak", "matomo"],
|
|
)
|
|
|
|
def test_trimming_and_empty_entries(self):
|
|
self.assertEqual(
|
|
_normalize_app_ids([" mailu , keycloak , matomo "]),
|
|
["mailu", "keycloak", "matomo"],
|
|
)
|
|
|
|
self.assertEqual(
|
|
_normalize_app_ids(["mailu,,keycloak", ",matomo,"]),
|
|
["mailu", "keycloak", "matomo"],
|
|
)
|
|
|
|
def test_deduplication_preserves_order(self):
|
|
self.assertEqual(
|
|
_normalize_app_ids(["mailu", "mailu", "keycloak", "mailu"]),
|
|
["mailu", "keycloak"],
|
|
)
|
|
|
|
self.assertEqual(
|
|
_normalize_app_ids(["mailu,keycloak", "keycloak,matomo", "mailu"]),
|
|
["mailu", "keycloak", "matomo"],
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|