Skip to content

Commit 3aa2155

Browse files
committed
Add unit tests for areas affected by the removal of the aaf adapter
Signed-off-by: Mark Reid <[email protected]>
1 parent d9301e7 commit 3aa2155

File tree

4 files changed

+120
-1
lines changed

4 files changed

+120
-1
lines changed

tests/test_clip.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,11 @@ def test_available_image_bounds(self):
145145
self.assertEqual(16.0, cl.available_image_bounds.max.x)
146146
self.assertEqual(9.0, cl.available_image_bounds.max.y)
147147

148+
# test range exceptions
149+
cl.media_reference.available_image_bounds = None
150+
with self.assertRaises(otio.exceptions.CannotComputeAvailableRangeError):
151+
cl.available_range()
152+
148153
def test_ref_default(self):
149154
cl = otio.schema.Clip()
150155
self.assertIsOTIOEquivalentTo(

tests/test_effect.py

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,37 @@ def test_str(self):
6262
)
6363
)
6464

65+
def test_setters(self):
66+
ef = otio.schema.Effect(
67+
name="blur it",
68+
effect_name="blur",
69+
metadata={"foo": "bar"}
70+
)
71+
self.assertEqual(ef.effect_name, "blur")
72+
ef.effect_name = "flop"
73+
self.assertEqual(ef.effect_name, "flop")
74+
6575

66-
class TestLinearTimeWarp(unittest.TestCase):
76+
class TestLinearTimeWarp(unittest.TestCase, otio_test_utils.OTIOAssertions):
6777
def test_cons(self):
6878
ef = otio.schema.LinearTimeWarp("Foo", 2.5, {'foo': 'bar'})
6979
self.assertEqual(ef.effect_name, "LinearTimeWarp")
7080
self.assertEqual(ef.name, "Foo")
7181
self.assertEqual(ef.time_scalar, 2.5)
7282
self.assertEqual(ef.metadata, {"foo": "bar"})
7383

84+
def test_serialize(self):
85+
ef = otio.schema.LinearTimeWarp("Foo", 2.5, {'foo': 'bar'})
86+
encoded = otio.adapters.otio_json.write_to_string(ef)
87+
decoded = otio.adapters.otio_json.read_from_string(encoded)
88+
self.assertIsOTIOEquivalentTo(ef, decoded)
89+
90+
def test_setters(self):
91+
ef = otio.schema.LinearTimeWarp("Foo", 2.5, {'foo': 'bar'})
92+
self.assertEqual(ef.time_scalar, 2.5)
93+
ef.time_scalar = 5.0
94+
self.assertEqual(ef.time_scalar, 5.0)
95+
7496

7597
class TestFreezeFrame(unittest.TestCase):
7698
def test_cons(self):

tests/test_item.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,13 @@ def test_metadata(self):
235235
self.assertIsOTIOEquivalentTo(it, decoded)
236236
self.assertEqual(decoded.metadata["foo"], it.metadata["foo"])
237237

238+
foo = it.metadata.pop("foo")
239+
self.assertEqual(foo, "bar")
240+
foo = it.metadata.pop("foo", "default")
241+
self.assertEqual(foo, "default")
242+
with self.assertRaises(KeyError):
243+
it.metadata.pop("foo")
244+
238245
def test_add_effect(self):
239246
tr = otio.opentime.TimeRange(
240247
duration=otio.opentime.RationalTime(10, 1)

tests/test_transition.py

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,91 @@ def test_stringify(self):
7474
)
7575
)
7676

77+
def test_setters(self):
78+
trx = otio.schema.Transition(
79+
name="AtoB",
80+
transition_type="SMPTE.Dissolve",
81+
metadata={
82+
"foo": "bar"
83+
}
84+
)
85+
self.assertEqual(trx.transition_type, "SMPTE.Dissolve")
86+
trx.transition_type = "EdgeWipe"
87+
self.assertEqual(trx.transition_type, "EdgeWipe")
88+
89+
def test_parent_range(self):
90+
timeline = otio.schema.Timeline(
91+
tracks=[
92+
otio.schema.Track(
93+
name="V1",
94+
children=[
95+
otio.schema.Clip(
96+
name="A",
97+
source_range=otio.opentime.TimeRange(
98+
start_time=otio.opentime.RationalTime(
99+
value=1,
100+
rate=30
101+
),
102+
duration=otio.opentime.RationalTime(
103+
value=50,
104+
rate=30
105+
)
106+
)
107+
),
108+
otio.schema.Transition(
109+
in_offset=otio.opentime.RationalTime(
110+
value=7,
111+
rate=30
112+
),
113+
out_offset=otio.opentime.RationalTime(
114+
value=10,
115+
rate=30
116+
),
117+
),
118+
otio.schema.Clip(
119+
name="B",
120+
source_range=otio.opentime.TimeRange(
121+
start_time=otio.opentime.RationalTime(
122+
value=100,
123+
rate=30
124+
),
125+
duration=otio.opentime.RationalTime(
126+
value=50,
127+
rate=30
128+
)
129+
)
130+
),
131+
]
132+
)
133+
]
134+
)
135+
trx = timeline.tracks[0][1]
136+
time_range = otio.opentime.TimeRange(otio.opentime.RationalTime(43, 30),
137+
otio.opentime.RationalTime(17, 30))
138+
139+
self.assertEqual(time_range,
140+
trx.range_in_parent())
141+
142+
self.assertEqual(time_range,
143+
trx.trimmed_range_in_parent())
144+
145+
trx = otio.schema.Transition(
146+
in_offset=otio.opentime.RationalTime(
147+
value=7,
148+
rate=30
149+
),
150+
out_offset=otio.opentime.RationalTime(
151+
value=10,
152+
rate=30
153+
),
154+
)
155+
156+
with self.assertRaises(otio.exceptions.NotAChildError):
157+
trx.range_in_parent()
158+
159+
with self.assertRaises(otio.exceptions.NotAChildError):
160+
trx.trimmed_range_in_parent()
161+
77162

78163
if __name__ == '__main__':
79164
unittest.main()

0 commit comments

Comments
 (0)