summaryrefslogtreecommitdiff
path: root/tests/test_functions_audio.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_functions_audio.py')
-rw-r--r--tests/test_functions_audio.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/test_functions_audio.py b/tests/test_functions_audio.py
index 5aaec5a..b6e6c6a 100644
--- a/tests/test_functions_audio.py
+++ b/tests/test_functions_audio.py
@@ -1,9 +1,12 @@
"""Tests for the audio primitive."""
+import xml.etree.ElementTree as et
+
import pytest
from blc2.functions.audio import Audio
from blc2.constants import BXW
+from blc2.exceptions import LoadError
def test_audio(aws):
a = Audio(aws)
@@ -76,3 +79,24 @@ def test_audio_serialize(aws, test_xml_eq):
for case, s in zip(test, success):
s = s.replace('\n', "").format(BXW.strip("{}"))
assert test_xml_eq(case.serialize(), s)
+
+def test_audio_deserialize(aws, test_xml_eq):
+ fail = [
+ """<function xmlns={} type="asdf"/>""",
+ """<asdf/>""",
+ """<function xmlns={} type="Audio" id="asdf"/>""",
+ """<function xmlns={} type="Audio" id="123" name="Test Audio" fade-out="asdf"/>""",
+ """<function xmlns={} type="Audio" id="123" name="Test Audio" fade-in="asdf"/>""",
+ ]
+
+ for case in fail:
+ case = case.format('"'+BXW.strip("{}")+'"')
+ with pytest.raises(LoadError):
+ Audio.deserialize(aws, et.fromstring(case))
+
+ case = """<function xmlns={} type="Audio" id="123" name="Test Audio" fade-in="123" fade-out="321" filename="test.wav"/>"""
+ case = case.format('"'+BXW.strip("{}")+'"')
+
+ s = Audio.deserialize(aws, et.fromstring(case))
+
+ assert test_xml_eq(s.serialize(), case)