21 lines
855 B
Python
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()
|