def test_bad_launch(self): client = FakeClient() app = ApplicationControl(client) client.setup_response("ssap://system.launcher/launch", {"returnValue": False}) with raises(IOError): app.launch(Application({"id": "123"}))
def test_get_current(self): client = FakeClient() app = ApplicationControl(client) client.setup_response( "ssap://com.webos.applicationManager/getForegroundAppInfo", {"returnValue": True, "appId": "123"}) assert app.get_current() == "123"
def test_bad_list_apps(self): client = FakeClient() app = ApplicationControl(client) client.setup_response("ssap://com.webos.applicationManager/listApps", {"returnValue": False}) with raises(IOError): app.list_apps()
def test_exec_command_blocking(self): client = FakeClient() control_base = WebOSControlBase(client) control_base.COMMANDS = { "test": {"uri": "/test"} } client.setup_response("/test", {"resp": True}) assert control_base.test() == {"resp": True}
def test_bad_mouse_socket(self): client = FakeClient() inp = InputControl(client, ws_class=FakeMouseClient) client.setup_response( "ssap://com.webos.service.networkinput/getPointerInputSocket", {"socketPath": ""}) with raises(IOError): inp.connect_input()
def test_list_apps(self): client = FakeClient() app = ApplicationControl(client) appInfo = {"id": "1", "key": "value"} fake_response = { "returnValue": True, "apps": [appInfo] } client.setup_response("ssap://com.webos.applicationManager/listApps", fake_response) assert app.list_apps()[0].data == appInfo
def test_exec_timeout(self): client = FakeClient() control_base = WebOSControlBase(client) control_base.COMMANDS = { "test": { "uri": "/test", }, } client.setup_response("/another-uri", {"resp": True}) with raises(Exception): control_base.test(timeout=1)
def test_input_commands(self, command, args, kwargs, data): client = FakeClient() inp = InputControl(client, ws_class=FakeMouseClient) client.setup_response( "ssap://com.webos.service.networkinput/getPointerInputSocket", {"socketPath": "x"}) inp.connect_input() getattr(inp, command)(*args, block=False, **kwargs) inp.disconnect_input() split = data.split() expected = [x + ":" + y for x, y in zip(split[::2], split[1::2])] inp.mouse_ws.assert_sent_message("\n".join(expected) + "\n\n")
def test_exec_command_failed_blocking(self): client = FakeClient() control_base = WebOSControlBase(client) control_base.COMMANDS = { "test": { "uri": "/test", "validation": lambda *args: (False, "err"), "validation_error": "Error" }, } client.setup_response("/test", {"resp": True}) with raises(IOError): control_base.test(block=True)
def test_close(self): client = FakeClient() app = ApplicationControl(client) client.setup_response("ssap://system.launcher/close", {"returnValue": True}) app.close({"123": "435"}) client.assert_sent_message_without_id({ "type": "request", "uri": "ssap://system.launcher/close", "payload": { "123": "435", } })
def test_launch(self): client = FakeClient() app = ApplicationControl(client) client.setup_response("ssap://system.launcher/launch", {"returnValue": True}) application = Application({"id": "123"}) app.launch(application, content_id="1", params={"a": "b"}) client.assert_sent_message_without_id({ "type": "request", "uri": "ssap://system.launcher/launch", "payload": { "id": "123", "contentId": "1", "params": {"a": "b"} } })
def test_exec_command_callback(self): client = FakeClient() control_base = WebOSControlBase(client) control_base.COMMANDS = { "test": {"uri": "/test"} } response = [] event = Event() def callback(status, resp): response.append((status, resp)) event.set() client.setup_response("/test", {"resp": True}) control_base.test(callback=callback) event.wait() assert response == [(True, {"resp": True})]
def test_exec_command_failed_callback(self): client = FakeClient() control_base = WebOSControlBase(client) control_base.COMMANDS = { "test": { "uri": "/test", "validation": lambda *args: (False, "err"), "validation_error": "Error" } } response = [] event = Event() def callback(status, resp): response.append((status, resp)) event.set() client.setup_response("/test", {"resp": True}) control_base.test(callback=callback) event.wait() assert response == [(False, "err")]
def test_get_volume(self): client = FakeClient() res = dict(returnValue=True, volume=1, mute=True, scenario="") client.setup_response("ssap://audio/getVolume", res) media = MediaControl(client) assert media.get_volume(block=True)["volume"] == 1