def get_encode_port(num):
        """Test get_encode_port - num times"""
        video_port = 3000
        serv = Server(path=PATH, video_port=video_port)
        try:
            serv.run()
            sources = TestSources(video_port=video_port)
            sources.new_test_video()
            
            expected_res = [video_port + 2] * num

            controller = Controller()
            controller.establish_connection()
            res = []
            for _ in range(num):
                res.append(controller.get_encode_port())

            assert expected_res == res
        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 get_encode_port(num):
    """Test get_encode_port - num times"""
    video_port = 3000
    serv = Server(path=PATH, video_port=video_port)
    try:
        serv.run()
        sources = TestSources(video_port=video_port)
        sources.new_test_video()

        expected_res = [video_port + 2] * num

        controller = Controller()
        controller.establish_connection()
        res = []
        for _ in range(num):
            res.append(controller.get_encode_port())

        assert expected_res == res
    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()
Beispiel #3
0
def get_audio_port(num):
        """Test get_audio_port"""
        audio_port = 8000
        serv = Server(path=PATH, audio_port=audio_port)
        try:
            serv.run()
            sources = TestSources(audio_port=audio_port)
            sources.new_test_audio()

            expected_res = [3003] * num

            controller = Controller()
            controller.establish_connection()
            res = []
            for _ in range(num):
                res.append(controller.get_audio_port())

            assert expected_res == res

        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 get_preview_ports(num):
    """Get Preview Ports when num number of sources are added"""
    video_port = 3000
    serv = Server(path=PATH, video_port=video_port)
    try:
        serv.run()
        sources = TestSources(video_port=video_port)
        
        
        expected_res = [ i for i in range(3003, 3003 + num)]

        controller = Controller()
        
        res = []
        for _ in range(num):
            sources.new_test_video()
        controller.establish_connection()
        res = controller.get_preview_ports()
        print res

        assert expected_res == res
    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()
Beispiel #5
0
 def test_normal(self, monkeypatch):
     """Test if the parameters are valid"""
     monkeypatch.setattr(Connection, 'connect_dbus', Mock())
     monkeypatch.setattr(Connection, 'signal_subscribe', Mock())
     controller = Controller(address='unix:abstract=abcd')
     controller.establish_connection()
     assert controller.connection is not None
 def test_normal(self, monkeypatch):
     """Test if the parameters are valid"""
     monkeypatch.setattr(Connection, 'connect_dbus', Mock())
     monkeypatch.setattr(Connection, 'signal_subscribe', Mock())
     controller = Controller(address='unix:abstract=abcd')
     controller.establish_connection()
     assert controller.connection is not None
Beispiel #7
0
 def do_adjust_pip(self, line):
     c = Controller()
     c.establish_connection()
     if len(line.split()) != 4:
         print "Inavlid number of arguments"
         return
     print c.adjust_pip(*map(int, line.split()))
Beispiel #8
0
 def do_adjust_pip(self, line):
     c = Controller()
     c.establish_connection()
     if len(line.split()) != 4:
         print "Inavlid number of arguments"
         return
     print c.adjust_pip(*map(int, line.split()))
def get_preview_ports(num):
    """Get Preview Ports when num number of sources are added"""
    video_port = 3000
    serv = Server(path=PATH, video_port=video_port)
    try:
        serv.run()
        sources = TestSources(video_port=video_port)

        expected_res = [i for i in range(3003, 3003 + num)]

        controller = Controller()

        res = []
        for _ in range(num):
            sources.new_test_video()
        controller.establish_connection()
        res = controller.get_preview_ports()
        print res

        assert expected_res == res
    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()
Beispiel #10
0
    def test_on_preview_port_added(self):
        """Create a Controller object, call add a source method and
        check that the callback fires
        """
        serv = Server(path=PATH, video_port=3000)
        try:
            serv.run()

            controller = Controller()
            controller.establish_connection()

            test_cb = Mock(side_effect=lambda mode, serve, type:
                           self.quit_mainloop_after(2))
            controller.on_preview_port_added(test_cb)

            sources = TestSources(video_port=3000)
            sources.new_test_video()
            sources.new_test_video()

            GLib.timeout_add_seconds(5, self.quit_mainloop)
            self.run_mainloop()

            print(test_cb.call_args_list)
            test_cb.assert_any_call(3003, 1, 7)
            test_cb.assert_any_call(3004, 1, 8)
            assert test_cb.call_count == 2

            serv.terminate(1)
        finally:
            serv.terminate_and_output_status(cov=True)
Beispiel #11
0
def get_audio_port(num):
    """Test get_audio_port"""
    audio_port = 8000
    serv = Server(path=PATH, audio_port=audio_port)
    try:
        serv.run()
        sources = TestSources(audio_port=audio_port)
        sources.new_test_audio()

        expected_res = [3003] * num

        controller = Controller()
        controller.establish_connection()
        res = []
        for _ in range(num):
            res.append(controller.get_audio_port())

        assert expected_res == res

    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())
Beispiel #12
0
 def get_encode_port(self):
     """Create a Controller object and call get_encode_port method"""
     res = []
     controller = Controller()
     controller.establish_connection()
     for _ in range(self.NUM * self.FACTOR):
         res.append(controller.get_encode_port())
     return res
Beispiel #13
0
 def get_preview_ports(self):
     """Create Controller object and call get_preview_ports method"""
     res = []
     controller = Controller()
     controller.establish_connection()
     for _ in range(self.NUM * self.FACTOR):
         res.append(controller.get_preview_ports())
     return res
Beispiel #14
0
 def get_compose_port(self):
     """Create Controller and call get_compose_port method"""
     res = []
     controller = Controller()
     controller.establish_connection()
     for _ in range(self.NUM * self.FACTOR):
         res.append(controller.get_compose_port())
     return res
Beispiel #15
0
 def do_set_composite_mode(self, line):
     try:
         val = self.COMPOSITE_MAPPING[line.lower()]
     except KeyError:
         print "Invalid"
         return
     c = Controller()
     c.establish_connection()
     print c.set_composite_mode(val)
Beispiel #16
0
 def do_switch(self, line):
     try:
         val = self.SWITCH_MAPPING[line.lower()]
     except KeyError:
         print "Invalid"
         return
     c = Controller()
     c.establish_connection()
     print c.switch(self.SWITCH_MAPPING[line.split()[0]], int(line.split()[1]))
Beispiel #17
0
 def do_set_composite_mode(self, line):
     try:
         val = self.COMPOSITE_MAPPING[line.lower()]
     except KeyError:
         print "Invalid"
         return
     c = Controller()
     c.establish_connection()
     print c.set_composite_mode(val)
Beispiel #18
0
 def do_switch(self, line):
     try:
         val = self.SWITCH_MAPPING[line.lower()]
     except KeyError:
         print "Invalid"
         return
     c = Controller()
     c.establish_connection()
     print c.switch(self.SWITCH_MAPPING[line.split()[0]],
                    int(line.split()[1]))
 def test_action_fails(self):
     """Test what happens if the requested action fails"""
     controller = Controller(address='unix:abstract=abcde')
     controller.establish_connection = Mock(return_value=None)
     controller.connection = MockConnection(
         return_variant=True, should_fail=True)
     assert controller.click_video(1, 2, 3, 4) is False
Beispiel #20
0
 def test_action_fails(self):
     """Test what happens if the requested action fails"""
     controller = Controller(address='unix:abstract=abcde')
     controller.establish_connection = Mock(return_value=None)
     controller.connection = MockConnection(return_variant=True,
                                            should_fail=True)
     assert controller.click_video(1, 2, 3, 4) is False
Beispiel #21
0
 def test_action_fails(self):
     """Test what happens if the requested action fails"""
     controller = Controller(address='unix:abstract=abcde')
     controller.establish_connection = Mock(return_value=None)
     controller.connection = MockConnection(return_variant=True,
                                            should_fail=True)
     assert controller.switch(Controller.VIDEO_CHANNEL_A, 2) is False
Beispiel #22
0
 def test_unpack(self):
     """Test if unpack fails"""
     controller = Controller(address='unix:abstract=abcde')
     controller.establish_connection = Mock(return_value=None)
     controller.connection = MockConnection(return_variant=False)
     with pytest.raises(ConnectionReturnError):
         controller.switch(Controller.VIDEO_CHANNEL_A, 2)
 def test_unpack(self):
     """Test if unpack fails"""
     controller = Controller(address='unix:abstract=abcde')
     controller.establish_connection = Mock(return_value=None)
     controller.connection = MockConnection(True)
     with pytest.raises(ConnectionReturnError):
         controller.click_video(1, 2, 3, 4)
 def test_action_fails(self):
     """Test what happens if the requested action fails"""
     controller = Controller(address='unix:abstract=abcde')
     controller.establish_connection = Mock(return_value=None)
     controller.connection = MockConnection(
         return_variant=True, should_fail=True)
     assert controller.switch(Controller.VIDEO_CHANNEL_A, 2) is False
 def test_normal(self):
     """Test if valid"""
     controller = Controller(address='unix:abstract=abcde')
     controller.establish_connection = Mock(return_value=None)
     controller.connection = MockConnection(True)
     face = [(1, 2, 3, 4), (1, 1, 1, 1)]
     controller.mark_tracking(face)
Beispiel #26
0
 def test_normal(self):
     """Test if valid"""
     controller = Controller(address='unix:abstract=abcde')
     controller.establish_connection = Mock(return_value=None)
     controller.connection = MockConnection(True)
     face = [(1, 2, 3, 4), (1, 1, 1, 1)]
     controller.mark_tracking(face)
 def test_unpack(self):
     """Test if unpack fails"""
     controller = Controller(address='unix:abstract=abcde')
     controller.establish_connection = Mock(return_value=None)
     controller.connection = MockConnection(return_variant=False)
     with pytest.raises(ConnectionReturnError):
         controller.new_record()
 def test_unpack(self):
     """Test if unpack fails"""
     controller = Controller(address='unix:abstract=abcde')
     controller.establish_connection = Mock(return_value=None)
     controller.connection = MockConnection(True)
     with pytest.raises(ConnectionReturnError):
         controller.switch(Controller.VIDEO_CHANNEL_A, 2)
Beispiel #29
0
 def test_unpack(self):
     """Test if unpack fails"""
     controller = Controller(address='unix:abstract=abcde')
     controller.establish_connection = Mock(return_value=None)
     controller.connection = MockConnection(True)
     with pytest.raises(ConnectionReturnError):
         controller.click_video(1, 2, 3, 4)
Beispiel #30
0
 def test_unpack(self):
     """Test if unpack fails"""
     controller = Controller(address='unix:abstract=abcdefghijk')
     controller.establish_connection = Mock(return_value=None)
     controller.connection = MockConnection(True)
     with pytest.raises(ConnectionReturnError):
         controller.set_composite_mode(1)
 def test_unpack(self):
     """Test if unpack fails"""
     controller = Controller(address='unix:abstract=abcdefghijk')
     controller.establish_connection = Mock(return_value=None)
     controller.connection = MockConnection(True)
     with pytest.raises(ConnectionReturnError):
         controller.set_composite_mode(1)
Beispiel #32
0
    def test_on_new_mode_online(self):
        """Create a Controller object, call on_new_mode_online method and
        check that the callback fires
        """
        serv = Server(path=PATH)
        try:
            serv.run()

            controller = Controller()
            controller.establish_connection()

            test_cb = Mock(side_effect=self.quit_mainloop)
            controller.on_new_mode_online(test_cb)
            controller.set_composite_mode(0)

            GLib.timeout_add_seconds(5, self.quit_mainloop)
            self.run_mainloop()

            test_cb.assert_called_once_with(0)

            serv.terminate(1)
        finally:
            serv.terminate_and_output_status(cov=True)
    vid1 = subprocess.Popen(
                        cmd_vid1.split(),
                        bufsize=-1,
                        shell=False)
    vid2 = subprocess.Popen(
                        cmd_vid2.split(),
                        bufsize=-1,
                        shell=False)
    time.sleep(1)
    sources = TestSources(audio_port=a_port)
    sources.new_test_audio()
    sources.new_test_audio()

    controller = Controller()
    controller.establish_connection()

    cmd = PATH
    cmd += """gst-switch-ui"""
    cmd = " ".join(cmd.split())
    with open('ui.log', 'w') as tempf:
        ui_process = subprocess.Popen(
                        cmd.split(),
                        stdout=tempf,
                        stderr=tempf,
                        bufsize=-1,
                        shell=False)

    params = [(65,3004), (65, 3003)]
    i = 0
    p = psutil.Process(s.pid)
Beispiel #34
0
 def test_normal_unpack(self):
     """Test if valid"""
     controller = Controller(address='unix:abstract=abcdef')
     controller.establish_connection = Mock(return_value=None)
     controller.connection = MockConnection(return_variant=True)
     assert controller.adjust_pip(1, 2, 3, 4) == 1
 def test_normal_unpack(self):
     """Test if valid"""
     controller = Controller(address='unix:abstract=abcdef')
     controller.establish_connection = Mock(return_value=None)
     controller.connection = MockConnection(False)
     assert controller.set_composite_mode(1) is True
 def test_normal_unpack(self):
     """Test if valid"""
     controller = Controller(address='unix:abstract=abcdef')
     controller.establish_connection = Mock(return_value=None)
     controller.connection = MockConnection(return_variant=True)
     assert controller.adjust_pip(1, 2, 3, 4) == 1
Beispiel #37
0
 def establish_connection(self):
     """Create Controller object and call establish_connection"""
     controller = Controller()
     controller.establish_connection()
     # print(controller.connection)
     assert controller.connection is not None
Beispiel #38
0
 def do_get_preview_ports(self, line):
     c = Controller()
     c.establish_connection()
     print c.get_preview_ports()
 def test_normal_unpack(self):
     """Test if valid"""
     controller = Controller(address='unix:abstract=abcdef')
     controller.establish_connection = Mock(return_value=None)
     controller.connection = MockConnection(False)
     assert controller.switch(Controller.VIDEO_CHANNEL_A, 2) is True
Beispiel #40
0
class IntegrationTestbase(object):
    """Base class for integration tests."""

    # Tests are not allowed to have an __init__ method
    def setup_method(self, _):
        """Set up called automatically before every test_XXXX method."""
        self.log = logging.getLogger()
        self.log.setLevel(logging.DEBUG)
        logging.basicConfig(
            format="%(filename)s:%(lineno)d (%(funcName)s): %(message)s")

        self.serv = None
        self._sources = None
        self.controller = None

    def setup_server(self, record_file=False):
        """Set up a gst-switch server for testing."""
        assert self.serv is None

        self.log.info("setting up Server")
        self.serv = Server(path=PATH, video_format="debug",
                           record_file=record_file)

        self.log.info("running Server")
        self.serv.run()
        assert self.serv.is_alive()

        self.log.info("waiting for Server to open Controller-Port")
        self.serv.wait_for_output('tcp:host=::,port=5000')

        self.log.info("setting up TestSources")
        self._sources = TestSources(
            video_port=self.serv.video_port,
            audio_port=self.serv.audio_port)

    def setup_controller(self):
        """Create Controller object and call setup_controller."""
        self.log.info("setting up Controller")
        self.controller = Controller()

        self.log.info("connecting Controller to Server")
        self.controller.establish_connection()
        self.serv.wait_for_output('registered: ')

        assert self.controller.connection is not None

    def new_test_video(self, pattern=None):
        """Start a new Video-Testsource and wait until it's ready"""
        self.serv.wait_for_output(':::3000')
        self._sources.new_test_video(pattern=pattern)

    def setup_video_sources(self, count):
        """ Starts some Test-Video streams and waits until they are ready
        """
        self.log.info("starting 2 test-video sources")
        for _ in range(0, count):
            self.new_test_video()

        self.log.info("waiting for the test-video sources to come up")
        self.wait_for_sources(count)

    def new_test_audio(self, freq=110, wave=AudioSrc.WAVE_SINE):
        """Start a new Audio-Testsource and wait until it's ready"""
        self.serv.wait_for_output(':::4000')
        self._sources.new_test_audio(freq=freq, wave=wave)

    def setup_audio_sources(self, count):
        """ Starts some Test-Audio streams and waits until they are ready
        """
        self.log.info("starting 2 test-audio sources")
        for _ in range(0, count):
            self.new_test_audio()

        self.log.info("waiting for the test-audio sources to come up")
        self.wait_for_sources(count)

    def wait_for_sources(self, count):
        """ Blocks until the Server has reported, that the right number of
        preview-ports are is started
        """
        self.log.info("waiting for Server to start preview-port-outputs")
        self.serv.wait_for_output('tcpserversink name=sink', count=count)

    def teardown_method(self, _):
        """Tear down called automatically after every test_XXXX method."""
        self.controller = None

        # Kill all the sources
        if self._sources is not None:
            self.log.info("terminating Video-TestSource")
            self._sources.terminate_video()

            self.log.info("terminating Audio-TestSource")
            self._sources.terminate_audio()
        self._sources = None

        if self.serv is not None:
            self.log.info("terminating Server")
            self.serv.terminate(cov=True)

            if self.serv.proc:
                poll = self.serv.proc.poll()
                if poll == -11:
                    self.log.error("Server exited with Segmentation Fault")
                if poll != 0:
                    self.log.error("Server exited Error Eode %s", poll)

            log = open('server.log')
            print(log.read())

        self.serv = None
Beispiel #41
0
 def test_normal_unpack(self):
     """Test if valid"""
     controller = Controller(address='unix:abstract=abcdef')
     controller.establish_connection = Mock(return_value=None)
     controller.connection = MockConnection(False)
     assert controller.set_composite_mode(1) is True
Beispiel #42
0
 def do_get_audio_port(self, line):
     c = Controller()
     c.establish_connection()
     print c.get_audio_port()
Beispiel #43
0
 def test_normal_unpack(self):
     """Test if valid"""
     controller = Controller(address='unix:abstract=abcdef')
     controller.establish_connection = Mock(return_value=None)
     controller.connection = MockConnection(False)
     assert controller.click_video(1, 2, 3, 4) is True
Beispiel #44
0
 def do_get_preview_ports(self, line):
     c = Controller()
     c.establish_connection()
     print c.get_preview_ports()
Beispiel #45
0
 def test_normal_unpack(self):
     """Test if valid"""
     controller = Controller(address='unix:abstract=abcdef')
     controller.establish_connection = Mock(return_value=None)
     controller.connection = MockConnection(return_variant=True)
     assert controller.get_composite_mode() is Controller.COMPOSITE_NONE
Beispiel #46
0
 def do_get_audio_port(self, line):
     c = Controller()
     c.establish_connection()
     print c.get_audio_port()
Beispiel #47
0
 def test_normal_unpack(self):
     """Test if valid"""
     controller = Controller(address='unix:abstract=abcdef')
     controller.establish_connection = Mock(return_value=None)
     controller.connection = MockConnection(return_variant=True)
     assert controller.switch(Controller.VIDEO_CHANNEL_A, 2) is True
Beispiel #48
0
 def establish_connection(self):
     """Create Controller object and call establish_connection"""
     controller = Controller()
     controller.establish_connection()
     # print controller.connection
     assert controller.connection is not None
Beispiel #49
0
class IntegrationTestbase(object):
    """Base class for integration tests."""

    # Tests are not allowed to have an __init__ method
    def setup_method(self, _):
        """Set up called automatically before every test_XXXX method."""
        self.log = logging.getLogger()
        self.log.setLevel(logging.DEBUG)
        logging.basicConfig(
            format="%(filename)s:%(lineno)d (%(funcName)s): %(message)s")

        self.serv = None
        self._sources = None
        self.controller = None

    def setup_server(self, record_file=False):
        """Set up a gst-switch server for testing."""
        assert self.serv is None

        self.log.info("setting up Server")
        self.serv = Server(path=PATH,
                           video_format="debug",
                           record_file=record_file)

        self.log.info("running Server")
        self.serv.run()
        assert self.serv.is_alive()

        self.log.info("waiting for Server to open Controller-Port")
        self.serv.wait_for_output('tcp:host=::,port=5000')

        self.log.info("setting up TestSources")
        self._sources = TestSources(video_port=self.serv.video_port,
                                    audio_port=self.serv.audio_port)

    def setup_controller(self):
        """Create Controller object and call setup_controller."""
        self.log.info("setting up Controller")
        self.controller = Controller()

        self.log.info("connecting Controller to Server")
        self.controller.establish_connection()
        self.serv.wait_for_output('registered: ')

        assert self.controller.connection is not None

    def new_test_video(self, pattern=None):
        """Start a new Video-Testsource and wait until it's ready"""
        self.serv.wait_for_output(':::3000')
        self._sources.new_test_video(pattern=pattern)

    def setup_video_sources(self, count):
        """ Starts some Test-Video streams and waits until they are ready
        """
        self.log.info("starting 2 test-video sources")
        for _ in range(0, count):
            self.new_test_video()

        self.log.info("waiting for the test-video sources to come up")
        self.wait_for_sources(count)

    def new_test_audio(self, freq=110, wave=AudioSrc.WAVE_SINE):
        """Start a new Audio-Testsource and wait until it's ready"""
        self.serv.wait_for_output(':::4000')
        self._sources.new_test_audio(freq=freq, wave=wave)

    def setup_audio_sources(self, count):
        """ Starts some Test-Audio streams and waits until they are ready
        """
        self.log.info("starting 2 test-audio sources")
        for _ in range(0, count):
            self.new_test_audio()

        self.log.info("waiting for the test-audio sources to come up")
        self.wait_for_sources(count)

    def wait_for_sources(self, count):
        """ Blocks until the Server has reported, that the right number of
        preview-ports are is started
        """
        self.log.info("waiting for Server to start preview-port-outputs")
        self.serv.wait_for_output('tcpserversink name=sink', count=count)

    def teardown_method(self, _):
        """Tear down called automatically after every test_XXXX method."""
        self.controller = None

        # Kill all the sources
        if self._sources is not None:
            self.log.info("terminating Video-TestSource")
            self._sources.terminate_video()

            self.log.info("terminating Audio-TestSource")
            self._sources.terminate_audio()
        self._sources = None

        if self.serv is not None:
            self.log.info("terminating Server")
            self.serv.terminate(cov=True)

            if self.serv.proc:
                poll = self.serv.proc.poll()
                if poll == -11:
                    self.log.error("Server exited with Segmentation Fault")
                if poll != 0:
                    self.log.error("Server exited Error Eode %s", poll)

            log = open('server.log')
            print(log.read())

        self.serv = None
 def test_normal_unpack(self):
     """Test if valid"""
     controller = Controller(address='unix:abstract=abcdef')
     controller.establish_connection = Mock(return_value=None)
     controller.connection = MockConnection(False)
     assert controller.click_video(1, 2, 3, 4) is True
Beispiel #51
0
    audio_port = s.audio_port
    # connects a gstreamer module to view the output of the gst-switch-srv
    output = PreviewSinks()
    output.run()
    # adding two test video sources
    sources = TestSources(video_port=video_port, audio_port=audio_port)

    sources.new_test_audio()
    sources.new_test_audio()
    
    sources.new_test_video()
    sources.new_test_video()
    sources.new_test_video(timeoverlay=True)

    controller = Controller()
    controller.establish_connection()
    res = []
    tests_get = [controller.get_compose_port,
                 controller.get_encode_port,
                 controller.get_audio_port,
                 controller.get_preview_ports,
                 ]

    test_set_composite_mode = controller.set_composite_mode

    # testing random 10 modes
    for x in tests_get:
        print x.__name__, x()
    time.sleep(1)
    modes = [0, 3, 2, 1, 0, 1, 2, 3, 0]
    for mode in modes:
 def test_normal_unpack(self):
     """Test if valid"""
     controller = Controller(address='unix:abstract=abcdef')
     controller.establish_connection = Mock(return_value=None)
     controller.connection = MockConnection(return_variant=True)
     assert controller.get_composite_mode() is Controller.COMPOSITE_NONE