def permutate_adjust_pip(num, delay): """Adjust_pip num number of times""" import random video_port = 3000 serv = Server(path=PATH, video_port=video_port) try: serv.run() sources = TestSources(video_port=video_port) sources.new_test_video(pattern=6) sources.new_test_video(pattern=5) preview = PreviewSinks() preview.run() controller = Controller() for _ in range(num): xpos = random.randrange(-20, 20) ypos = random.randrange(-20, 20) res = controller.adjust_pip(xpos, ypos, 0, 0) time.sleep(delay) assert res is not None preview.terminate() sources.terminate_video() finally: if serv.proc: poll = serv.proc.poll() if poll == -11: print "SEGMENTATION FAULT OCCURRED" print "ERROR CODE - {0}".format(poll) serv.terminate(1) log = open('server.log') print log.read()
def switch(self, channel, port, index): """Create Controller object and call switch method""" for _ in range(self.NUM): serv = Server(path=PATH, video_format="debug") try: serv.run() sources = TestSources(3000) sources.new_test_video(pattern=4) sources.new_test_video(pattern=5) preview = PreviewSinks(3001) preview.run() out_file = "output-{0}.data".format(index) video_sink = VideoFileSink(3001, out_file) time.sleep(3) controller = Controller() res = controller.switch(channel, port) print(res) time.sleep(3) video_sink.terminate() sources.terminate_video() preview.terminate() serv.terminate(1) finally: serv.terminate_and_output_status(cov=True)
def mark_tracking(self, faces, index, generate_frames=False): """Create Controller object and call mark_tracking method""" for _ in range(self.NUM): serv = Server(path=PATH, video_format="debug") try: serv.run() sources = TestSources(video_port=3000) preview = PreviewSinks() preview.run() out_file = "output-{0}.data".format(index) video_sink = VideoFileSink(3001, out_file) sources.new_test_video(pattern=4) sources.new_test_video(pattern=5) controller = Controller() time.sleep(1) res = controller.mark_tracking(faces) print(res) time.sleep(1) sources.terminate_video() preview.terminate() video_sink.terminate() serv.terminate(1) if not generate_frames: assert res is not None assert self.verify_output(index, out_file) is True finally: serv.terminate_and_output_status(cov=True)
def adjust_pip(self, xpos, ypos, width, heigth, index, generate_frames=False): """Create Controller object and call adjust_pip""" for _ in range(self.NUM): serv = Server(path=PATH, video_format="debug") try: serv.run() sources = TestSources(video_port=3000) preview = PreviewSinks() preview.run() out_file = "output-{0}.data".format(index) video_sink = VideoFileSink(3001, out_file) sources.new_test_video(pattern=4) sources.new_test_video(pattern=5) controller = Controller() controller.set_composite_mode(Controller.COMPOSITE_PIP) time.sleep(3) res = controller.adjust_pip(xpos, ypos, width, heigth) time.sleep(3) sources.terminate_video() preview.terminate() video_sink.terminate() serv.terminate(1) if not generate_frames: assert res is not None assert self.verify_output(index, out_file) is True finally: serv.terminate_and_output_status(cov=True)
def switch(self, channel, port, index): """Create Controller object and call switch method""" for _ in range(self.NUM): serv = Server(path=PATH) try: serv.run() sources = TestSources(3000) sources.new_test_video(pattern=4) sources.new_test_video(pattern=5) preview = PreviewSinks(3001) preview.run() out_file = "output-{0}.data".format(index) video_sink = VideoFileSink(3001, out_file) time.sleep(3) controller = Controller() res = controller.switch(channel, port) print res time.sleep(3) video_sink.terminate() sources.terminate_video() preview.terminate() serv.terminate(1) finally: if serv.proc: poll = serv.proc.poll() print self.__class__ if poll == -11: print "SEGMENTATION FAULT OCCURRED" print "ERROR CODE - {0}".format(poll) serv.terminate(1) log = open('server.log') print log.read()
def test_video_sources(self): """Test video sources""" video_port = 3000 serv = Server(PATH, video_port=video_port) try: serv.run() preview = PreviewSinks() preview.run() for i in range(self.NUM): self.add_video_sources(i * 10 + 1, video_port) preview.terminate() serv.terminate() finally: if serv.proc: serv.kill()
def test_audio_sources(self): """Test audio sources""" audio_port = 4000 serv = Server(PATH, audio_port=audio_port) try: serv.run() preview = PreviewSinks() preview.run() for i in range(self.NUM): self.add_audio_sources(i * 10 + 1, audio_port) preview.terminate() serv.terminate() finally: if serv.proc: serv.kill()
def set_composite_mode(self, mode, generate_frames=False): """Create Controller object and call set_composite_mode method""" for _ in range(self.NUM): serv = Server(path=PATH) try: serv.run() preview = PreviewSinks() preview.run() out_file = 'output-{0}.data'.format(mode) video_sink = VideoFileSink(serv.video_port + 1, out_file) sources = TestSources(video_port=3000) sources.new_test_video(pattern=4) sources.new_test_video(pattern=5) time.sleep(3) # expected_result = [mode != 3] * self.FACTOR # print mode, expected_result controller = Controller() res = controller.set_composite_mode(mode) print res time.sleep(3) video_sink.terminate() preview.terminate() sources.terminate_video() serv.terminate(1) if not generate_frames: if mode == 3: assert res is False else: assert res is True assert self.verify_output(mode, out_file) is True # assert expected_result == res finally: if serv.proc: poll = serv.proc.poll() print self.__class__ if poll == -11: print "SEGMENTATION FAULT OCCURRED" print "ERROR CODE - {0}".format(poll) serv.terminate(1) log = open('server.log') print log.read()
def click_video( self, xpos, ypos, width, heigth, index, generate_frames=False): """Create Controller object and call click_video method""" for _ in range(self.NUM): serv = Server(path=PATH) try: serv.run() sources = TestSources(video_port=3000) preview = PreviewSinks() preview.run() out_file = "output-{0}.data".format(index) video_sink = VideoFileSink(PATH, 3001, out_file) sources.new_test_video(pattern=4) sources.new_test_video(pattern=5) controller = Controller() time.sleep(1) res = controller.click_video(xpos, ypos, width, heigth) print res time.sleep(1) sources.terminate_video() preview.terminate() video_sink.terminate() serv.terminate(1) if not generate_frames: assert res is not None assert self.verify_output(index, out_file) is True finally: if serv.proc: poll = serv.proc.poll() print self.__class__ if poll == -11: print "SEGMENTATION FAULT OCCURRED" print "ERROR CODE - {0}".format(poll) serv.terminate(1) log = open('server.log') print log.read()
def switch(self, channel, port, index): """Create Controller object and call switch method""" for _ in range(self.NUM): serv = Server(path=PATH) try: serv.run() sources = TestSources(3000) sources.new_test_video(pattern=4) sources.new_test_video(pattern=5) preview = PreviewSinks(3001) preview.run() out_file = "output-{0}.data".format(index) video_sink = VideoFileSink(PATH, 3001, out_file) time.sleep(3) controller = Controller() res = controller.switch(channel, port) print res time.sleep(3) video_sink.terminate() sources.terminate_video() preview.terminate() serv.terminate(1) finally: if serv.proc: poll = serv.proc.poll() print self.__class__ if poll == -11: print "SEGMENTATION FAULT OCCURRED" print "ERROR CODE - {0}".format(poll) serv.terminate(1) log = open('server.log') print log.read()
def set_composite_mode(self, mode, generate_frames=False): """Create Controller object and call set_composite_mode method""" for _ in range(self.NUM): serv = Server(path=PATH, video_format="debug") try: serv.run() preview = PreviewSinks() preview.run() out_file = 'output-{0}.data'.format(mode) video_sink = VideoFileSink(serv.video_port + 1, out_file) sources = TestSources(video_port=3000) sources.new_test_video(pattern=4) sources.new_test_video(pattern=5) time.sleep(3) # expected_result = [mode != 3] * self.FACTOR # print(mode, expected_result) controller = Controller() res = controller.set_composite_mode(mode) print(res) time.sleep(3) video_sink.terminate() preview.terminate() sources.terminate_video() serv.terminate(1) if not generate_frames: controller = Controller() if mode == Controller.COMPOSITE_DUAL_EQUAL: assert res is False else: assert res is True assert self.verify_output(mode, out_file) is True # assert expected_result == res finally: serv.terminate_and_output_status(cov=True)
def permutate_composite_mode(num, delay): """Change composite mode num number of times""" import random video_port = 3000 serv = Server(path=PATH, video_port=video_port) try: serv.run() sources = TestSources(video_port=video_port) sources.new_test_video(pattern=6) sources.new_test_video(pattern=5) preview = PreviewSinks() preview.run() controller = Controller() res = controller.set_composite_mode(0) assert res is True prev_mode = 0 for _ in range(num-1): time.sleep(delay) mode = random.randint(0,3) expected_res = bool(prev_mode ^ mode) prev_mode = mode assert expected_res == controller.set_composite_mode(mode) preview.terminate() sources.terminate_video() finally: if serv.proc: poll = serv.proc.poll() if poll == -11: print "SEGMENTATION FAULT OCCURRED" print "ERROR CODE - {0}".format(poll) serv.terminate(1) log = open('server.log') print log.read()
def set_composite_mode(self, mode, generate_frames=False): """Create Controller object and call set_composite_mode method""" for _ in range(self.NUM): serv = Server(path=PATH) try: serv.run() preview = PreviewSinks() preview.run() out_file = 'output-{0}.data'.format(mode) video_sink = VideoFileSink(PATH, serv.video_port + 1, out_file) sources = TestSources(video_port=3000) sources.new_test_video(pattern=4) sources.new_test_video(pattern=5) time.sleep(3) # expected_result = [mode != 3] * self.FACTOR # print mode, expected_result controller = Controller() res = controller.set_composite_mode(mode) print res time.sleep(3) video_sink.terminate() preview.terminate() sources.terminate_video() serv.terminate(1) if not generate_frames: if mode == 3: assert res is False else: assert res is True assert self.verify_output(mode, out_file) is True # assert expected_result == res finally: if serv.proc: poll = serv.proc.poll() print self.__class__ if poll == -11: print "SEGMENTATION FAULT OCCURRED" print "ERROR CODE - {0}".format(poll) serv.terminate(1) log = open('server.log') print log.read()
def click_video(self, xpos, ypos, width, heigth, index, generate_frames=False): """Create Controller object and call click_video method""" for _ in range(self.NUM): serv = Server(path=PATH) try: serv.run() sources = TestSources(video_port=3000) preview = PreviewSinks() preview.run() out_file = "output-{0}.data".format(index) video_sink = VideoFileSink(PATH, 3001, out_file) sources.new_test_video(pattern=4) sources.new_test_video(pattern=5) controller = Controller() time.sleep(1) res = controller.click_video(xpos, ypos, width, heigth) print res time.sleep(1) sources.terminate_video() preview.terminate() video_sink.terminate() serv.terminate(1) if not generate_frames: assert res is not None assert self.verify_output(index, out_file) is True finally: if serv.proc: poll = serv.proc.poll() print self.__class__ if poll == -11: print "SEGMENTATION FAULT OCCURRED" print "ERROR CODE - {0}".format(poll) serv.terminate(1) log = open('server.log') print log.read()
def permutate_composite_mode(num, delay): """Change composite mode num number of times""" import random video_port = 3000 serv = Server(path=PATH, video_port=video_port) try: serv.run() sources = TestSources(video_port=video_port) sources.new_test_video(pattern=6) sources.new_test_video(pattern=5) preview = PreviewSinks() preview.run() controller = Controller() res = controller.set_composite_mode(0) assert res is True prev_mode = 0 for _ in range(num - 1): time.sleep(delay) mode = random.randint(0, 3) expected_res = bool(prev_mode ^ mode) prev_mode = mode assert expected_res == controller.set_composite_mode(mode) preview.terminate() sources.terminate_video() finally: if serv.proc: poll = serv.proc.poll() if poll == -11: print "SEGMENTATION FAULT OCCURRED" print "ERROR CODE - {0}".format(poll) serv.terminate(1) log = open('server.log') print log.read()
def test_run(self, monkeypatch): """Test running preview""" preview = PreviewSinks() monkeypatch.setattr(testsource, 'Preview', self.MockPreview) preview.run() assert preview.preview is not None
def test_normal(self): """Test when preview_port is valid""" tests = [1, 65535, 1000] for test in tests: src = PreviewSinks(preview_port=test) assert src.preview_port == test
def test_invalid(self): """Test when preview_port is not a integral value""" tests = [[1, 2, 3, 4], {1: 2, 2: 3}, '1e10'] for test in tests: with pytest.raises(TypeError): PreviewSinks(preview_port=test)
def test_range(self): """Test when preview_port is out of range""" tests = [-100, 1e7, 65536] for test in tests: with pytest.raises(RangeError): PreviewSinks(preview_port=test)
def test_blank(self): """Test when preview_port is blank""" tests = ['', None, [], {}] for test in tests: with pytest.raises(ValueError): PreviewSinks(preview_port=test)
def test_terminate_fail(self): """Test terminating a preview when none exists""" preview = PreviewSinks() with pytest.raises(AttributeError): preview.terminate()
def test_terminate_normal(self, monkeypatch): """Test terminating a preview when valid exists""" preview = PreviewSinks() preview.preview = self.MockPreview() preview.terminate() assert preview.preview is None