Uiautomator python test

Source: Internet
Author: User
Tags posix

#!/usr/bin/env python#-*-coding:utf-8-*-import unittestfrom mock import magicmock, Patchimport osimport subprocessfrom Uiautomator Import Adbclass testadb (unittest. TestCase): def setUp (self): Self.os_name = Os.name def tearDown (self): Os.name = Self.os_name def t Est_serial (self): serial = "abcdef1234567890" adb = ADB (serial) self.assertequal (adb.default_serial, serial) Adb.devices = Magicmock () Adb.devices.return_value = [Serial, "123456"] self.assertequal (ADB. Device_serial (), serial) def test_adb_from_env (self): Home_dir = '/android/home ' with patch.dict (' Os.envi  Ron ', {' Android_home ': Home_dir}): With patch (' os.path.exists ') as Exists:exists.return_value = True os.name = "POSIX" # Linux adb_obj = adb () Adb_path = Os.path.join (Home             _dir, "Platform-tools", "adb") self.assertequal (Adb_obj.adb (), Adb_path)   Exists.assert_called_once_with (Adb_path) self.assertequal (adb_obj.adb (), Adb_path) # the Second call would return the __adb_cmd directly exists.assert_called_once_with (Adb_path) OS.N AME = "NT" # Linux adb_obj = adb () Adb_path = Os.path.join (Home_dir, "Platform-tools", "adb                . exe ") self.assertequal (Adb_obj.adb (), adb_path) Exists.return_value = False With Self.assertraises (environmenterror): adb (). ADB () def test_adb_from_find (self): with PATC                H.dict (' Os.environ ', {}, Clear=true): With Patch ("distutils.spawn.find_executable") as find_executable:                    Find_executable.return_value = "/usr/bin/adb" with Patch ("Os.path.realpath") as Realpath: Realpath.return_value = "/home/user/android/platform-tools/adb" Self.assertequal (Realpath.ret Urn_value, ADB (). ADB ())                   Find_executable.assert_called_once_with ("adb") # find_exectable should be called once Realpath.assert_called_once_with (find_executable.return_value) Realpath.return_value = Find_executab Le.return_value self.assertequal (Find_executable.return_value, ADB (). ADB ()) Find_executa Ble.return_value = None Call_count = Find_executable.call_count with self.assertraises (envir    Onmenterror): adb (). ADB () self.assertequal (Call_count + 1, find_executable.call_count) def test_devices (self): adb = adb () Adb.raw_cmd = Magicmock () adb.raw_cmd.return_value.communicate. Return_value = (b "List of devices attached \r\n014e05de0f02000e\tdevice\r\n489328dkfl7df\tdevice", B "") Self.assert Equal (Adb.devices (), {"014e05de0f02000e": "Device", "489328DKFL7DF": "Device"}) Adb.raw_cmd.assert_called_once_with ("Devices") ADB.RAw_cmd.return_value.communicate.return_value = (b "List of devices attached \n\r014e05de0f02000e\tdevice\n\ R489328dkfl7df\tdevice ", B" ") Self.assertequal (Adb.devices (), {" 014e05de0f02000e ":" Device "," 489328DKFL7DF ":" Devi Ce "}) Adb.raw_cmd.return_value.communicate.return_value = (b" List of devices attached \R014E05DE0F02000E\TDEVICE\R4 89328dkfl7df\tdevice ", B" ") Self.assertequal (Adb.devices (), {" 014e05de0f02000e ":" Device "," 489328DKFL7DF ":" Device "}) Adb.raw_cmd.return_value.communicate.return_value = (b" List of devices attached \n014e05de0f02000e\tdevice\n489 328dkfl7df\tdevice ", B" ") Self.assertequal (Adb.devices (), {" 014e05de0f02000e ":" Device "," 489328DKFL7DF ":" Device "} ) Adb.raw_cmd.return_value.communicate.return_value = (b "Not match", "") with Self.assertraises (Environmente Rror): Adb.devices () def test_forward (self): adb = adb () Adb.cmd = Magicmock () adb.forw ARD (adb.cmd.assert_called)_once_with ("Forward", "tcp:90", "tcp:91") Adb.cmd.return_value.wait.assert_called_once_with () def Test_adb_raw_c        MD (self): import subprocess adb = adb () adb.adb = Magicmock () Adb.adb.return_value = "adb" args = ["A", "B", "C"] with patch ("subprocess.")  Popen ") as Popen:os.name =" POSIX "Adb.raw_cmd (*args) Popen.assert_called_once_with (["%s %s "% (ADB.ADB ()," ". Join (args))], Shell=true, stdout=subprocess. PIPE, Stderr=subprocess. PIPE) with patch ("subprocess. Popen ") as Popen:os.name =" NT "Adb.raw_cmd (*args) popen.assert_called_once_with ([Adb.ad B ()] + list (args), Shell=true, stdout=subprocess. PIPE, Stderr=subprocess. PIPE) def test_adb_cmd (self): adb = adb () adb.device_serial = Magicmock () adb.device_serial.return _value = "android_serial" Adb.raw_cmd = Magicmock () args = ["A", "B", "C"] adb.cmd (*args) adb. Raw_cmd.assErt_called_once_with ("-S", "%s"% adb.device_serial (), *args) Adb.device_serial.return_value = "ANDROID Serial" Adb.raw_cmd = Magicmock () args = ["A", "B", "C"] Adb.cmd (*args) Adb.raw_cmd.assert_called_once_wi Th ("-S", "'%s '"% adb.device_serial (), *args) def test_adb_cmd_server_host (self): adb = adb (adb_server_host= "Loc  Alhost ", adb_server_port=5037) adb.adb = Magicmock () Adb.adb.return_value =" adb "adb.device_serial = Magicmock () Adb.device_serial.return_value = "android_serial" args = ["A", "B", "C"] with patch ("Sub Process.                Popen ") as Popen:os.name =" NT "Adb.raw_cmd (*args) Popen.assert_called_once_with ( [Adb.adb ()] + args, shell=true, stdout=subprocess. PIPE, Stderr=subprocess. PIPE) adb = adb (adb_server_host= "test.com", adb_server_port=1000) adb.adb = Magicmock () a Db.adb.retUrn_value = "adb" adb.device_serial = Magicmock () Adb.device_serial.return_value = "Android_serial" a RGS = ["A", "B", "C"] with patch ("subprocess.                Popen ") as Popen:os.name =" POSIX "Adb.raw_cmd (*args) Popen.assert_called_once_with ( ["". Join ([ADB.ADB ()] + ["-H", "test.com", "-P", "+"] + args), shell=true, S Tdout=subprocess. PIPE, Stderr=subprocess. PIPE) def test_device_serial (self): with patch.dict (' Os.environ ', {' android_serial ': "ABCDEF123456"} ): adb = adb () adb.devices = Magicmock () Adb.devices.return_value = {"ABCDEF123456": "Dev Ice "} self.assertequal (Adb.device_serial ()," ABCDEF123456 ") with Patch.dict (' Os.environ ', {' Android_seri AL ': "ABCDEF123456"}): adb = adb () adb.devices = Magicmock () Adb.devices.return_value = { "ABCDEF123456": "Device", "123456ABCDEF ":" Device "} self.assertequal (Adb.device_serial ()," ABCDEF123456 ") with Patch.dict (' Os.environ ', {' Android Oid_serial ': "HIJKLMN098765"}): adb = adb () adb.devices = Magicmock () adb.devices.return_ Value = {"ABCDEF123456": "Device", "123456ABCDEF": "Device"} self.assertequal (Adb.device_serial (), "HIJKLMN0987            ") with Patch.dict (' Os.environ ', {}, clear=true): adb = adb () adb.devices = Magicmock () Adb.devices.return_value = {"ABCDEF123456": "Device", "123456ABCDEF": "Device"} with Self.assertraises (  EnvironmentError): Adb.device_serial () with patch.dict (' Os.environ ', {}, clear=true): adb            = Adb () adb.devices = Magicmock () Adb.devices.return_value = {"ABCDEF123456": "Device"} Self.assertequal (Adb.device_serial (), "ABCDEF123456") with Self.assertraises (environmenterror): adb = Ad B () Adb.devices = Magicmock () Adb.devices.return_value = {} adb.device_serial () def test_forward_list (self): adb = adb () adb.version = Magicmock () Adb.version.return_value = [' 1.0.31 ', ' 1 ', ' 0 ', ' + '] adb . Raw_cmd = Magicmock () Adb.raw_cmd.return_value.communicate.return_value = (b "014e05de0f02000e tcp:9008 Tcp:9 008\R\N489328DKFL7DF tcp:9008 tcp:9008 ", B" ") Self.assertequal (Adb.forward_list (), [[' 014e05de0f02000e ', ' TCP : 9008 ', ' tcp:9008 '], [' 489328dkfl7df ', ' tcp:9008 ', ' tcp:9008 ']]) Adb.version.return_value = [' 1.0.29 ', ' 1 ', ' 0 ', ' 2 9 '] with self.assertraises (environmenterror): Adb.forward_list ()

  

Uiautomator python test

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.