import unittest from src.lyricflow_core.engine.syntax import strip_tags, TAG_PATTERN import re class TestSyntax(unittest.TestCase): def test_tag_pattern(self): self.assertTrue(re.match(TAG_PATTERN, "[Chorus]")) self.assertTrue(re.match(TAG_PATTERN, "[Verse 1]")) self.assertTrue(re.match(TAG_PATTERN, "[Bridge]")) # Unclosed tags should also be caught by the current pattern logic if intended self.assertTrue(re.match(TAG_PATTERN, "[Unclosed")) def test_strip_tags(self): self.assertEqual(strip_tags("Hello [Chorus] World"), "Hello World") self.assertEqual(strip_tags("[Verse]Line 1"), "Line 1") self.assertEqual(strip_tags("No tags here"), "No tags here") self.assertEqual(strip_tags("[A][B]Concatenated"), "Concatenated") if __name__ == "__main__": unittest.main()