From 465ddd2f706615366fd349a730b2c4a2f77bd1f0 Mon Sep 17 00:00:00 2001 From: Jamie Hardt Date: Sun, 6 Oct 2019 22:59:44 -0700 Subject: [PATCH] Added more test cases, read plugins from tracks --- ptulsconv/__init__.py | 5 +++++ tests/test_robinhood6.py | 31 +++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 tests/test_robinhood6.py diff --git a/ptulsconv/__init__.py b/ptulsconv/__init__.py index 8fbd682..b39e826 100644 --- a/ptulsconv/__init__.py +++ b/ptulsconv/__init__.py @@ -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 ) diff --git a/tests/test_robinhood6.py b/tests/test_robinhood6.py new file mode 100644 index 0000000..bf0eb86 --- /dev/null +++ b/tests/test_robinhood6.py @@ -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()