|
|
@@ -0,0 +1,52 @@ |
|
|
|
"""test_producers.py -- test the producers in the pipeline (eg ffmpeg, visualisation, json)""" |
|
|
|
import unittest |
|
|
|
import pipeline.video_producers as producers |
|
|
|
|
|
|
|
|
|
|
|
class MockFeature(): |
|
|
|
"""Mock feature object for testing JSONProducer""" |
|
|
|
def __init__(self, interval): |
|
|
|
self.interval = interval |
|
|
|
def to_json(self): |
|
|
|
return {"interval": self.interval} |
|
|
|
|
|
|
|
class TestVisualisationProducer(unittest.TestCase): |
|
|
|
"""Test VisualisationProducer (produces matplotlib visualisations)""" |
|
|
|
|
|
|
|
def test_init_empty(self): |
|
|
|
# test with no features -- should raise ValueError |
|
|
|
with self.assertRaises(ValueError): |
|
|
|
producers.VisualisationProducer(features=None) |
|
|
|
|
|
|
|
def test_init(self): |
|
|
|
# test with features |
|
|
|
feature = MockFeature(interval="") |
|
|
|
features = [feature] |
|
|
|
visprod = producers.VisualisationProducer(features=features) |
|
|
|
self.assertEqual(visprod.features, features) |
|
|
|
|
|
|
|
def test_produce(self): |
|
|
|
"""Test we can call produce without error""" |
|
|
|
# TODO |
|
|
|
pass |
|
|
|
|
|
|
|
class TestJSONProducer(unittest.TestCase): |
|
|
|
def test_init_empty(self): |
|
|
|
# test with no features -- should raise ValueError |
|
|
|
with self.assertRaises(ValueError): |
|
|
|
producers.JSONProducer(features=None) |
|
|
|
|
|
|
|
def test_init(self): |
|
|
|
# test with features |
|
|
|
feature = MockFeature(interval="") |
|
|
|
features = [feature] |
|
|
|
jsonprod = producers.JSONProducer(features=features) |
|
|
|
self.assertEqual(jsonprod.features, features) |
|
|
|
|
|
|
|
def test_produce(self): |
|
|
|
"""Test we can call produce without error""" |
|
|
|
feature = MockFeature(interval="") |
|
|
|
features = [feature] |
|
|
|
jsonprod = producers.JSONProducer(features=features) |
|
|
|
jsonprod.produce() |
|
|
|
|