Exemplo n.º 1
0
    def test_live_set_channel_layout(self):
        channel_id = "1"
        layout = '{"video":[{"type":"source","position":{"left":"0%","top":"0%","width":"100%","height":"100%","keep_aspect_ratio":true},"settings":{"source":"D2P280762.sdi-b"}}],"audio":[{"type":"source","settings":{"source":"D2P280762.analog-b"}}],"background":"#000000","nosignal":{"id":"default"}}'

        ca_url = os.environ["EPI_URL"]
        epi = Epipearl(ca_url, os.environ["EPI_USER"], os.environ["EPI_PASSWD"])

        for channel_id in ["1", "2", "3", "4"]:
            response = epi.set_channel_layout(channel_id=channel_id, layout=layout, layout_id="1")

            assert response is not None
            r = json.loads(response)
            assert r["result"]["settings"] == json.loads(layout)
Exemplo n.º 2
0
class TestEpipearl(object):

    def setup(self):
        self.c = Epipearl(epiphan_url, epiphan_user, epiphan_passwd)


    @httpretty.activate
    def test_create_channel_ok(self):
        httpretty.register_uri(
                httpretty.GET,
                '%s/admin/add_channel.cgi' % epiphan_url,
                status=302,
                location='/admin/channel57/mediasources')
        httpretty.register_uri(
                httpretty.GET,
                '%s/admin/channel57/mediasources' % epiphan_url, status=200)
        httpretty.register_uri(
                httpretty.POST,
                '%s/admin/ajax/rename_channel.cgi' % epiphan_url,
                status=200)

        response = self.c.create_channel('channel_blah')
        assert response == '57'


    @httpretty.activate
    def test_create_channel_failed_create(self):
        httpretty.register_uri(
                httpretty.GET,
                '%s/admin/add_channel.cgi' % epiphan_url,
                status=500)

        with pytest.raises(requests.HTTPError) as e:
            response = self.c.create_channel('channel_blah')
        assert '500 Server Error' in e.value.message


    @httpretty.activate
    def test_create_channel_failed_rename(self):
        httpretty.register_uri(
                httpretty.GET,
                '%s/admin/add_channel.cgi' % epiphan_url,
                status=302,
                location='/admin/channel57/mediasources')
        httpretty.register_uri(
                httpretty.GET,
                '%s/admin/channel57/mediasources' % epiphan_url, status=200)
        httpretty.register_uri(
                httpretty.POST,
                '%s/admin/ajax/rename_channel.cgi' % epiphan_url,
                status=500)

        with pytest.raises(requests.HTTPError) as e:
            response = self.c.create_channel('channel_blah')
        assert '500 Server Error' in e.value.message


    @httpretty.activate
    def test_set_channel_layout_ok(self):
        layout = '{"video":[{"type":"source","position":{"left":"0%","top":"0%","width":"100%","height":"100%","keep_aspect_ratio":true},"settings":{"source":"D2P280762.hdmi-b"}}],"audio":[{"type":"source","settings":{"source":"D2P280762.sdi-a"}}],"background":"#000000","nosignal":{"id":"default"}}'
        httpretty.register_uri(
                httpretty.POST,
                '%s/admin/channel57/layouts/1' % epiphan_url,
                body=layout, status=200)

        response = self.c.set_channel_layout(channel_id=57, layout=layout)
        assert response


    @httpretty.activate
    def test_set_channel_layout_error500(self):
        layout = '{"video":[{"type":"source","position":{"left":"0%","top":"0%","width":"100%","height":"100%","keep_aspect_ratio":true},"settings":{"source":"D2P280762.hdmi-b"}}],"audio":[{"type":"source","settings":{"source":"D2P280762.sdi-a"}}],"background":"#000000","nosignal":{"id":"default"}}'
        httpretty.register_uri(
                httpretty.POST,
                '%s/admin/channel57/layouts/1' % epiphan_url,
                body=layout, status=500)

        with pytest.raises(requests.HTTPError) as e:
            response = self.c.set_channel_layout(channel_id=57, layout=layout)
        assert '500 Server Error' in e.value.message


    @httpretty.activate
    def test_create_recorder_ok(self):
        httpretty.register_uri(
                httpretty.GET,
                '%s/admin/add_recorder.cgi' % epiphan_url,
                status=302,
                location='/admin/recorder57/archive')
        httpretty.register_uri(
                httpretty.GET,
                '%s/admin/recorder57/archive' % epiphan_url, status=200)
        httpretty.register_uri(
                httpretty.POST,
                '%s/admin/ajax/rename_channel.cgi' % epiphan_url,
                status=200)
        response = self.c.create_recorder(recorder_name='recorder_xablau')
        assert response == '57'


    @httpretty.activate
    def test_create_recorder_failed_create(self):
        httpretty.register_uri(
                httpretty.GET,
                '%s/admin/add_recorder.cgi' % epiphan_url,
                status=502,
                location='/admin/recorder57/archive')
        httpretty.register_uri(
                httpretty.GET,
                '%s/admin/recorder57/archive' % epiphan_url, status=500)

        with pytest.raises(requests.HTTPError) as e:
            response = self.c.create_recorder(recorder_name='recorder_xablau')
        assert '502 Server Error' in e.value.message


    @httpretty.activate
    def test_create_recorder_failed_rename(self):
        httpretty.register_uri(
                httpretty.GET,
                '%s/admin/add_recorder.cgi' % epiphan_url,
                status=302,
                location='/admin/recorder57/archive')
        httpretty.register_uri(
                httpretty.GET,
                '%s/admin/recorder57/archive' % epiphan_url, status=200)
        httpretty.register_uri(
                httpretty.POST,
                '%s/admin/ajax/rename_channel.cgi' % epiphan_url,
                status=500)

        with pytest.raises(requests.HTTPError) as e:
            response = self.c.create_recorder(recorder_name='recorder_xablau')
        assert '500 Server Error' in e.value.message


    @httpretty.activate
    def test_set_recorder_channels_ok(self):
        resp_data = resp_datafile('set_recorder_channels', 'ok')
        httpretty.register_uri(
                httpretty.POST,
                '%s/admin/recorder57/archive' % epiphan_url,
                body=resp_data,
                status=200)
        response = self.c.set_recorder_channels(
                recorder_id='57',
                channel_list=['3', '2'])
        assert response
        assert httpretty.last_request().parsed_body['rc[]'] == ['3', '2']

    @httpretty.activate
    def test_set_recorder_channels_error500(self):
        httpretty.register_uri(
                httpretty.POST,
                '%s/admin/recorder57/archive' % epiphan_url,
                status=500)

        with pytest.raises(requests.HTTPError) as e:
            response = self.c.set_recorder_channels(
                    recorder_id='57',
                    channel_list=['3', '2'])
        assert '500 Server Error' in e.value.message


    @httpretty.activate
    def test_delete_channel_or_recorder_by_name_ok(self):
        resp_data = resp_datafile(
                'get_infocfg', 'ok', ext='html')
        httpretty.register_uri(
                httpretty.GET,
                '%s/admin/infocfg' % epiphan_url,
                body=resp_data,
                status=200)
        resp_data = resp_datafile('delete_channel', 'ok')
        httpretty.register_uri(
                httpretty.POST,
                '%s/admin/channel39/status' % epiphan_url,
                body=resp_data,
                status=200)
        response = self.c.delete_channel_or_recorder_by_name('channel_blah')
        assert response is True