Refactoring tag parser

This commit is contained in:
Jamie Hardt
2021-05-27 21:34:43 -07:00
parent d1bb5990b2
commit 3dd36a9901
5 changed files with 145 additions and 114 deletions

View File

@@ -2,40 +2,41 @@ import unittest
from ptulsconv.transformations import TagInterpreter
class TestTagInterpreter(unittest.TestCase):
def test_line(self):
ti = TagInterpreter()
s1 = ti.parse_tags("this is a test")
self.assertEqual(s1['line'], "this is a test")
self.assertEqual(s1['mode'], 'Normal')
self.assertEqual(len(s1['tags']), 0)
self.assertEqual(s1.content, "this is a test")
self.assertEqual(s1.mode, 'Normal')
self.assertEqual(len(s1.tag_dict), 0)
s2 = ti.parse_tags("this! IS! Me! ** Typing! 123 <> |||")
self.assertEqual(s2['line'], "this! IS! Me! ** Typing! 123 <> |||")
self.assertEqual(s2['mode'], 'Normal')
self.assertEqual(len(s2['tags']), 0)
self.assertEqual(s2.content, "this! IS! Me! ** Typing! 123 <> |||")
self.assertEqual(s2.mode, 'Normal')
self.assertEqual(len(s2.tag_dict), 0)
def test_tags(self):
ti = TagInterpreter()
s1 = ti.parse_tags("{a=100}")
self.assertIn('tags', s1)
self.assertEqual(s1['tags']['a'], "100")
self.assertEqual(s1.tag_dict['a'], "100")
s2 = ti.parse_tags("{b=This is a test} [option] $X=9")
self.assertEqual(s2['tags']['b'], 'This is a test')
self.assertEqual(s2['tags']['option'], 'option')
self.assertEqual(s2['tags']['X'], "9")
self.assertEqual(s2.tag_dict['b'], 'This is a test')
self.assertEqual(s2.tag_dict['option'], 'option')
self.assertEqual(s2.tag_dict['X'], "9")
def test_modes(self):
ti = TagInterpreter()
s1 = ti.parse_tags("@ Monday Tuesday {a=1}")
self.assertEqual(s1['mode'], 'Timespan')
self.assertEqual(s1.mode, 'Timespan')
s2 = ti.parse_tags("Monday Tuesday {a=1}")
self.assertEqual(s2['mode'], 'Normal')
self.assertEqual(s2.mode, 'Normal')
s3 = ti.parse_tags("&Monday Tuesday {a=1}")
self.assertEqual(s3['mode'], 'Append')
self.assertEqual(s3.mode, 'Append')
if __name__ == '__main__':
unittest.main()

View File

@@ -2,8 +2,8 @@ import unittest
import ptulsconv
import os.path
class TaggingIntegratedTests(unittest.TestCase):
class TaggingIntegratedTests(unittest.TestCase):
path = os.path.dirname(__file__) + '/export_cases/Tag Tests/Tag Tests.txt'
def test_event_list(self):
@@ -22,14 +22,14 @@ class TaggingIntegratedTests(unittest.TestCase):
self.assertEqual(9, len(parsed['events']))
self.assertEqual("Clip Name", parsed['events'][0]['PT.Clip.Name'])
self.assertEqual("Lorem ipsum" , parsed['events'][1]['PT.Clip.Name'])
self.assertEqual("Dolor sic amet the rain in spain" , parsed['events'][2]['PT.Clip.Name'])
self.assertEqual("A B C" , parsed['events'][3]['PT.Clip.Name'])
self.assertEqual("Silver Bridge" , parsed['events'][4]['PT.Clip.Name'])
self.assertEqual("Region 02" , parsed['events'][5]['PT.Clip.Name'])
self.assertEqual("Region 12" , parsed['events'][6]['PT.Clip.Name'])
self.assertEqual("Region 22" , parsed['events'][7]['PT.Clip.Name'])
self.assertEqual("Region 04" , parsed['events'][8]['PT.Clip.Name'])
self.assertEqual("Lorem ipsum", parsed['events'][1]['PT.Clip.Name'])
self.assertEqual("Dolor sic amet the rain in spain", parsed['events'][2]['PT.Clip.Name'])
self.assertEqual("A B C", parsed['events'][3]['PT.Clip.Name'])
self.assertEqual("Silver Bridge", parsed['events'][4]['PT.Clip.Name'])
self.assertEqual("Region 02", parsed['events'][5]['PT.Clip.Name'])
self.assertEqual("Region 12", parsed['events'][6]['PT.Clip.Name'])
self.assertEqual("Region 22", parsed['events'][7]['PT.Clip.Name'])
self.assertEqual("Region 04", parsed['events'][8]['PT.Clip.Name'])
def test_append(self):
with open(self.path, 'r') as f:
@@ -87,6 +87,5 @@ class TaggingIntegratedTests(unittest.TestCase):
self.assertTrue(1080, parsed['events'][3]['PT.Clip.Finish_Frames'])
if __name__ == '__main__':
unittest.main()