File: test_generator_reference.py

package info (click to toggle)
opentimelineio 0.18.1-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 23,480 kB
  • sloc: cpp: 163,182; python: 50,821; ansic: 6,470; makefile: 1,091; sh: 892; xml: 182; javascript: 2
file content (106 lines) | stat: -rw-r--r-- 3,389 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# SPDX-License-Identifier: Apache-2.0
# Copyright Contributors to the OpenTimelineIO project

""" Generator Reference class test harness.  """

import unittest
import os

import opentimelineio as otio
import opentimelineio.test_utils as otio_test_utils

SAMPLE_DATA_DIR = os.path.join(os.path.dirname(__file__), "sample_data")
GEN_REF_TEST = os.path.join(SAMPLE_DATA_DIR, "generator_reference_test.otio")


class GeneratorRefTests(unittest.TestCase, otio_test_utils.OTIOAssertions):
    def setUp(self):
        self.gen = otio.schema.GeneratorReference(
            name="SMPTEBars",
            generator_kind="SMPTEBars",
            available_range=otio.opentime.TimeRange(
                otio.opentime.RationalTime(0, 24),
                otio.opentime.RationalTime(100, 24),
            ),
            parameters={
                "test_param": 5.0,
            },
            metadata={
                "foo": "bar"
            },
            available_image_bounds=otio.schema.Box2d(
                otio.schema.V2d(0.0, 0.0),
                otio.schema.V2d(16.0, 9.0)
            )
        )

    def test_constructor(self):
        self.assertEqual(self.gen.generator_kind, "SMPTEBars")
        self.assertEqual(self.gen.name, "SMPTEBars")
        self.assertEqual(self.gen.parameters, {"test_param": 5.0})
        self.assertEqual(self.gen.metadata, {"foo": "bar"})
        self.assertEqual(
            self.gen.available_range,
            otio.opentime.TimeRange(
                otio.opentime.RationalTime(0, 24),
                otio.opentime.RationalTime(100, 24),
            )
        )
        self.assertEqual(
            self.gen.available_image_bounds,
            otio.schema.Box2d(
                otio.schema.V2d(0.0, 0.0),
                otio.schema.V2d(16.0, 9.0)
            )
        )

    def test_serialize(self):
        encoded = otio.adapters.otio_json.write_to_string(self.gen)
        decoded = otio.adapters.otio_json.read_from_string(encoded)
        self.assertIsOTIOEquivalentTo(self.gen, decoded)

    def test_read_file(self):
        self.assertTrue(os.path.exists(GEN_REF_TEST))
        decoded = otio.adapters.otio_json.read_from_file(GEN_REF_TEST)
        self.assertEqual(
            decoded.tracks[0][0].media_reference.generator_kind, "SMPTEBars"
        )

    def test_stringify(self):
        self.assertMultiLineEqual(
            str(self.gen),
            "GeneratorReference("
            '"{}", '
            '"{}", '
            '{}, '
            '{}, '
            "{}"
            ")".format(
                str(self.gen.name),
                str(self.gen.generator_kind),
                str(self.gen.parameters),
                str(self.gen.available_image_bounds),
                str(self.gen.metadata),
            )
        )

        self.assertMultiLineEqual(
            repr(self.gen),
            "otio.schema.GeneratorReference("
            "name={}, "
            "generator_kind={}, "
            "parameters={}, "
            "available_image_bounds={}, "
            "metadata={}"
            ")".format(
                repr(self.gen.name),
                repr(self.gen.generator_kind),
                repr(self.gen.parameters),
                repr(self.gen.available_image_bounds),
                repr(self.gen.metadata),
            )
        )


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