test_core.py 887 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. # coding: utf-8
  2. # author: codeskyblue
  3. from typing import Optional
  4. import uiautomator2 as u2
  5. def get_app_process_pid(d: u2.Device) -> Optional[int]:
  6. for line in d.shell("ps -u shell").output.splitlines():
  7. fields = line.split()
  8. if fields[-1] == 'app_process':
  9. pid = fields[1]
  10. return int(pid)
  11. return None
  12. def kill_app_process(d: u2.Device) -> bool:
  13. pid = get_app_process_pid(d)
  14. if not pid:
  15. return False
  16. d.shell(f"kill {pid}")
  17. return True
  18. def test_uiautomator_keeper(d: u2.Device):
  19. kill_app_process(d)
  20. d.sleep(.2)
  21. assert get_app_process_pid(d) is None
  22. d.shell('rm /data/local/tmp/u2.jar')
  23. d.start_uiautomator()
  24. assert get_app_process_pid(d) > 0
  25. d.stop_uiautomator()
  26. assert get_app_process_pid(d) is None
  27. def test_debug(d: u2.Device):
  28. d.debug = True
  29. d.info