def test_start_ping(self): with patch("uiautomator.JsonRPCClient") as JsonRPCClient: JsonRPCClient.return_value.ping.return_value = "pong" server = AutomatorServer() server.adb = MagicMock() server.adb.forward.return_value = 0 self.assertEqual(server.ping(), "pong")
def test_push(self): jars = ["bundle.jar", "uiautomator-stub.jar"] server = AutomatorServer() server.adb = MagicMock() self.assertEqual(set(server.push()), set(jars)) for args in server.adb.cmd.call_args_list: self.assertEqual(args[0][0], "push") self.assertEqual(args[0][2], "/data/local/tmp/")
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_download_and_push_download(self): jars = ["bundle.jar", "uiautomator-stub.jar"] with patch("os.path.exists") as exists: with patch("os.mkdir") as mkdir: with patch("%s.open" % open.__class__.__module__, mock_open(), create=True) as m_open: server = AutomatorServer() server.adb = MagicMock() exists.return_value = False self.assertEqual(set(server.download_and_push()), set(jars)) self.assertEqual(len(m_open.call_args_list), len(jars))
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_download_and_push(self): jars = ["bundle.jar", "uiautomator-stub.jar"] with patch("os.path.exists") as exists: with patch("os.stat") as stat: server = AutomatorServer() server.adb = MagicMock() exists.return_value = True stat.st_size = 1024 self.assertEqual(set(server.download_and_push()), set(jars)) for args in server.adb.cmd.call_args_list: self.assertEqual(args[0][0], "push") self.assertEqual(args[0][2], "/data/local/tmp/")
def test_stop_started_server(self): server = AutomatorServer() server.adb = MagicMock() server.uiautomator_process = process = MagicMock() process.poll.return_value = None server.stop() process.wait.assert_called_once_with() server.uiautomator_process = process = MagicMock() process.poll.return_value = None self.urlopen.side_effect = IOError("error") server.stop() process.kill.assert_called_once_with()
def test_stop(self): results = [ b"USER PID PPID VSIZE RSS WCHAN PC NAME\n\rsystem 372 126 635596 104808 ffffffff 00000000 S uiautomator", b"USER PID PPID VSIZE RSS WCHAN PC NAME\r\nsystem 372 126 635596 104808 ffffffff 00000000 S uiautomator", b"USER PID PPID VSIZE RSS WCHAN PC NAME\nsystem 372 126 635596 104808 ffffffff 00000000 S uiautomator", b"USER PID PPID VSIZE RSS WCHAN PC NAME\rsystem 372 126 635596 104808 ffffffff 00000000 S uiautomator" ] for r in results: server = AutomatorServer() server.adb = MagicMock() server.adb.cmd.return_value.communicate.return_value = (r, "") server.stop() self.assertEqual(server.adb.cmd.call_args_list, [call("shell", "ps", "-C", "uiautomator"), call("shell", "kill", "-9", "372")])
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" )