def test_start_success(self): server = AutomatorServer() server.push = MagicMock() server.push.return_value = ["bundle.jar", "uiautomator-stub.jar"] server.ping = MagicMock() server.ping.return_value = "pong" server.adb = MagicMock() server.start() server.adb.cmd.assert_called_with('shell', 'uiautomator', 'runtest', 'bundle.jar', 'uiautomator-stub.jar', '-c', 'com.github.uiautomatorstub.Stub')
def test_start_success(self): server = AutomatorServer() server.push = MagicMock() server.push.return_value = ["bundle.jar", "uiautomator-stub.jar"] server.ping = MagicMock() server.ping.return_value = "pong" server.adb = MagicMock() server.start() server.adb.cmd.assert_valled_onec_with('shell', 'uiautomator', 'runtest', 'bundle.jar', 'uiautomator-stub.jar', '-c', 'com.github.uiautomatorstub.Stub')
def test_start_error(self): server = AutomatorServer() server.push = MagicMock() server.push.return_value = ["bundle.jar", "uiautomator-stub.jar"] server.ping = MagicMock() server.ping.return_value = None server.adb = MagicMock() with patch("time.sleep"): with self.assertRaises(IOError): server.start()
def test_start_forward_error(self): server = AutomatorServer() server.download_and_push = MagicMock() server.download_and_push.return_value = ["bundle.jar", "uiautomator-stub.jar"] with patch("uiautomator.adb") as adb: adb.forward.return_value = 1 with patch.dict('os.environ', {'LOCAL_PORT': '9000', 'DEVICE_PORT': '9000'}): with self.assertRaises(IOError): server.start() adb.forward.assert_called_once_with(9000, 9000)
def test_start_success(self): server = AutomatorServer() server.download_and_push = MagicMock() server.download_and_push.return_value = ["bundle.jar", "uiautomator-stub.jar"] server.ping = MagicMock() server.ping.return_value = "pong" with patch("uiautomator.adb") as adb: adb.forward.return_value = 0 with patch.dict('os.environ', {'LOCAL_PORT': '9000', 'DEVICE_PORT': '9000'}): server.start() adb.cmd.assert_valled_onec_with('shell', 'uiautomator', 'runtest', 'bundle.jar', 'uiautomator-stub.jar', '-c', 'com.github.uiautomatorstub.Stub') adb.forward.assert_called_once_with(9000, 9000)
def test_auto_start(self): try: import requests # import urllib2 except ImportError: raise # import urllib.request as urllib2 with patch("uiautomator.JsonRPCMethod") as JsonRPCMethod: # returns = [urllib2.URLError("error"), "ok"] returns = [requests.exceptions.ConnectionError("error"), "ok"] def side_effect(): result = returns.pop(0) if isinstance(result, Exception): raise result return result JsonRPCMethod.return_value.side_effect = side_effect server = AutomatorServer() server.start = MagicMock() server.stop = MagicMock() self.assertEqual("ok", server.jsonrpc.any_method()) server.start.assert_called_once_with(timeout=30) with patch("uiautomator.JsonRPCMethod") as JsonRPCMethod: returns = [JsonRPCError(-32000 - 1, "error msg"), "ok"] def side_effect(): result = returns.pop(0) if isinstance(result, Exception): raise result return result JsonRPCMethod.return_value.side_effect = side_effect server = AutomatorServer() server.start = MagicMock() server.stop = MagicMock() self.assertEqual("ok", server.jsonrpc.any_method()) server.start.assert_called_once_with() with patch("uiautomator.JsonRPCMethod") as JsonRPCMethod: JsonRPCMethod.return_value.side_effect = JsonRPCError( -32000 - 2, "error msg") server = AutomatorServer() server.start = MagicMock() server.stop = MagicMock() with self.assertRaises(JsonRPCError): server.jsonrpc.any_method()
def test_start_success_over_api_18(self): server = AutomatorServer() server.push = MagicMock() server.push.return_value = ["bundle.jar", "uiautomator-stub.jar"] server.ping = MagicMock() server.ping.return_value = "pong" server.sdk_version = MagicMock() server.sdk_version.return_value = 20 server.adb = MagicMock() server.start() server.adb.cmd.assert_called_with( "shell", "am", "instrument", "-w", "com.github.uiautomator.test/android.support.test.runner.AndroidJUnitRunner" )
def test_auto_start(self): with patch("uiautomator.JsonRPCClient") as JsonRPCClient: JsonRPCClient.ping.return_value = None server = AutomatorServer() server.start = MagicMock() server.stop = MagicMock() server.jsonrpc server.start.assert_called_once_with()
def test_auto_start(self): try: import requests except ImportError: raise with patch("uiautomator.JsonRPCMethod") as JsonRPCMethod: # returns = [urllib2.URLError("error"), "ok"] returns = [requests.exceptions.ConnectionError("error"), "ok"] def side_effect(): result = returns.pop(0) if isinstance(result, Exception): raise result return result JsonRPCMethod.return_value.side_effect = side_effect server = AutomatorServer() server.start = MagicMock() server.stop = MagicMock() self.assertEqual("ok", server.jsonrpc.any_method()) server.start.assert_called_once_with(timeout=30) with patch("uiautomator.JsonRPCMethod") as JsonRPCMethod: returns = [requests.exceptions.ConnectionError("error"), "ok"] # returns = [JsonRPCError(-32000-1, "error msg"), "ok"] def side_effect(): result = returns.pop(0) if isinstance(result, Exception): raise result return result JsonRPCMethod.return_value.side_effect = side_effect server = AutomatorServer() server.start = MagicMock() server.stop = MagicMock() self.assertEqual("ok", server.jsonrpc.any_method()) server.start.assert_called_once_with(timeout=30) with patch("uiautomator.JsonRPCMethod") as JsonRPCMethod: JsonRPCMethod.return_value.side_effect = JsonRPCError(-32000-2, "error msg") server = AutomatorServer() server.start = MagicMock() server.stop = MagicMock() with self.assertRaises(JsonRPCError): server.jsonrpc.any_method()
def test_auto_start(self): with patch.dict('os.environ', {'LOCAL_PORT': '9000', 'DEVICE_PORT': '9000'}): with patch("uiautomator.JsonRPCClient") as JsonRPCClient: JsonRPCClient.ping.return_value = None server = AutomatorServer() server.start = MagicMock() server.jsonrpc JsonRPCClient.assert_called_once_with(server.rpc_uri) server.start.assert_called_once_with() server.jsonrpc # second call will retrieve the stored obj JsonRPCClient.assert_called_once_with(server.rpc_uri)
"""start and quit rpc server on device. """ from uiautomator import AutomatorServer r=AutomatorServer() r.start() if r.alive: print "RPC is started." else: print "Somthing wrong"