pyLyricFlow/tests/test_syntax.py
2026-02-24 13:22:10 -06:00

21 lines
855 B
Python

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()