Added more test cases, read plugins from tracks

This commit is contained in:
Jamie Hardt
2019-10-06 22:59:44 -07:00
parent 9d9c2eb237
commit 465ddd2f70
2 changed files with 36 additions and 0 deletions

View File

@@ -54,11 +54,16 @@ class PTTextVisitor(NodeVisitor):
if clip[0] != None:
clips.append(clip[0])
plugins = []
for plugin in visited_children[0][17]:
plugins.append(plugin[1])
return dict(
name=visited_children[0][2],
comments=visited_children[0][6],
user_delay_samples=visited_children[0][10],
state=visited_children[0][14],
plugins=plugins,
clips=clips
)

31
tests/test_robinhood6.py Normal file
View File

@@ -0,0 +1,31 @@
import unittest
import ptulsconv
import os.path
class TestRobinHood6(unittest.TestCase):
path = os.path.dirname(__file__) + '/export_cases/Robin Hood Spotting6.txt'
def test_a_track(self):
with open(self.path, 'r') as f:
visitor = ptulsconv.PTTextVisitor()
result = ptulsconv.protools_text_export_grammar.parse(f.read())
parsed: dict = visitor.visit(result)
marian_track = parsed['tracks'][6]
self.assertEqual(marian_track['name'], 'Marian')
self.assertEqual(marian_track['comments'], '[ADR] {Actor=Olivia DeHavilland} $CN=3')
self.assertEqual(marian_track['user_delay_samples'], 0)
self.assertListEqual(marian_track['state'], ['Solo'])
self.assertEqual(len(marian_track['clips']), 4)
self.assertListEqual(marian_track['plugins'], ['Channel Strip (mono)', 'ReVibe II (mono/5.1)'])
self.assertEqual(marian_track['clips'][2]['channel'], 1)
self.assertEqual(marian_track['clips'][2]['event'], 3)
self.assertEqual(marian_track['clips'][2]['clip_name'], "\"Isn't that reason enough for a Royal Ward who must obey her guardian?\" $QN=M103")
self.assertEqual(marian_track['clips'][2]['start_time'], "01:08:01:11")
self.assertEqual(marian_track['clips'][2]['end_time'], "01:08:04:24")
self.assertEqual(marian_track['clips'][2]['duration'], "00:00:03:12")
self.assertEqual(marian_track['clips'][2]['timestamp'], "01:08:01:11")
self.assertEqual(marian_track['clips'][2]['state'], 'Unmuted')
if __name__ == '__main__':
unittest.main()