mangoautomation 1.0.53__tar.gz → 1.0.56__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mangoautomation might be problematic. Click here for more details.

Files changed (66) hide show
  1. mangoautomation-1.0.56/PKG-INFO +42 -0
  2. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/enums/__init__.py +1 -3
  3. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/exceptions/__init__.py +1 -3
  4. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/models/__init__.py +1 -3
  5. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/tools/__init__.py +1 -3
  6. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/__init__.py +1 -3
  7. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/_async_element.py +1 -2
  8. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/_driver_object.py +6 -3
  9. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/_sync_element.py +1 -2
  10. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/web/async_web/_new_browser.py +11 -6
  11. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/web/sync_web/_new_browser.py +14 -9
  12. mangoautomation-1.0.56/mangoautomation.egg-info/PKG-INFO +42 -0
  13. mangoautomation-1.0.56/mangoautomation.egg-info/requires.txt +8 -0
  14. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/setup.py +10 -7
  15. mangoautomation-1.0.53/PKG-INFO +0 -31
  16. mangoautomation-1.0.53/mangoautomation.egg-info/PKG-INFO +0 -31
  17. mangoautomation-1.0.53/mangoautomation.egg-info/requires.txt +0 -8
  18. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/LICENSE +0 -0
  19. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/MANIFEST.in +0 -0
  20. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/README.md +0 -0
  21. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/__init__.py +0 -0
  22. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/enums/_base_enum.py +0 -0
  23. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/enums/_ui_enum.py +0 -0
  24. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/exceptions/_error_msg.py +0 -0
  25. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/exceptions/_exceptions.py +0 -0
  26. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/models/_ui_model.py +0 -0
  27. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/tools/_mate.py +0 -0
  28. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/tools/_uiautodev.py +0 -0
  29. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/_base_data.py +0 -0
  30. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/android/__init__.py +0 -0
  31. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/android/_application.py +0 -0
  32. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/android/_assertion.py +0 -0
  33. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/android/_customization.py +0 -0
  34. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/android/_element.py +0 -0
  35. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/android/_equipment.py +0 -0
  36. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/android/_new_android.py +0 -0
  37. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/android/_page.py +0 -0
  38. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/ios/__init__.py +0 -0
  39. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/pc/__init__.py +0 -0
  40. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/pc/assertion.py +0 -0
  41. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/pc/customization.py +0 -0
  42. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/pc/element.py +0 -0
  43. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/pc/input_device.py +0 -0
  44. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/pc/new_windows.py +0 -0
  45. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/web/__init__.py +0 -0
  46. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/web/async_web/__init__.py +0 -0
  47. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/web/async_web/_assertion.py +0 -0
  48. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/web/async_web/_browser.py +0 -0
  49. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/web/async_web/_customization.py +0 -0
  50. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/web/async_web/_element.py +0 -0
  51. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/web/async_web/_input_device.py +0 -0
  52. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/web/async_web/_page.py +0 -0
  53. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/web/sync_web/__init__.py +0 -0
  54. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/web/sync_web/_assertion.py +0 -0
  55. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/web/sync_web/_browser.py +0 -0
  56. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/web/sync_web/_customization.py +0 -0
  57. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/web/sync_web/_element.py +0 -0
  58. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/web/sync_web/_input_device.py +0 -0
  59. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation/uidrive/web/sync_web/_page.py +0 -0
  60. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation.egg-info/SOURCES.txt +0 -0
  61. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation.egg-info/dependency_links.txt +0 -0
  62. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/mangoautomation.egg-info/top_level.txt +0 -0
  63. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/setup.cfg +0 -0
  64. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/tests/__init__.py +0 -0
  65. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/tests/test_ui_and.py +0 -0
  66. {mangoautomation-1.0.53 → mangoautomation-1.0.56}/tests/test_ui_web.py +0 -0
@@ -0,0 +1,42 @@
1
+ Metadata-Version: 2.4
2
+ Name: mangoautomation
3
+ Version: 1.0.56
4
+ Summary: 测试工具
5
+ Home-page: https://gitee.com/mao-peng/testkit
6
+ Author: 毛鹏
7
+ Author-email: 729164035@qq.com
8
+ Classifier: Programming Language :: Python :: 3.10
9
+ Classifier: Programming Language :: Python :: 3.11
10
+ Classifier: Programming Language :: Python :: 3.12
11
+ Classifier: Programming Language :: Python :: 3.13
12
+ License-File: LICENSE
13
+ Requires-Dist: setuptools>=68.2.0
14
+ Requires-Dist: pydantic>=2.9.2
15
+ Requires-Dist: playwright==1.43.0
16
+ Requires-Dist: uiautomation>=2.0.20
17
+ Requires-Dist: uiautomator2>=3.2.5
18
+ Requires-Dist: mangotools>=1.1.28
19
+ Requires-Dist: adbutils~=2.8.9
20
+ Requires-Dist: uiautodev>=0.9.0
21
+ Dynamic: author
22
+ Dynamic: author-email
23
+ Dynamic: classifier
24
+ Dynamic: description
25
+ Dynamic: home-page
26
+ Dynamic: license-file
27
+ Dynamic: requires-dist
28
+ Dynamic: summary
29
+
30
+ # testkit
31
+
32
+ #### 介绍
33
+
34
+ 测试工具
35
+
36
+ #### 安装教程
37
+
38
+ 1. pip install mangokit
39
+
40
+ #### 使用说明
41
+
42
+ 1.
@@ -7,9 +7,7 @@ import sys
7
7
 
8
8
  from ..enums._ui_enum import ElementExpEnum, ElementOperationEnum, DeviceEnum, BrowserTypeEnum, DriveTypeEnum
9
9
 
10
- python_version = sys.version_info
11
- if f"{python_version.major}.{python_version.minor}" != "3.10":
12
- raise Exception("必须使用>Python3.10.4")
10
+
13
11
  __all__ = [
14
12
  'ElementOperationEnum',
15
13
  'DeviceEnum',
@@ -7,8 +7,6 @@ import sys
7
7
 
8
8
  from ._exceptions import MangoAutomationError
9
9
 
10
- python_version = sys.version_info
11
- if f"{python_version.major}.{python_version.minor}" != "3.10":
12
- raise Exception("必须使用>Python3.10.4")
10
+
13
11
 
14
12
  __all__ = ['MangoAutomationError']
@@ -6,9 +6,7 @@ import sys
6
6
 
7
7
  from ..models._ui_model import ElementModel, ElementResultModel
8
8
 
9
- python_version = sys.version_info
10
- if f"{python_version.major}.{python_version.minor}" != "3.10":
11
- raise Exception("必须使用>Python3.10.4")
9
+
12
10
  __all__ = [
13
11
  'ElementModel',
14
12
  'ElementResultModel',
@@ -8,7 +8,5 @@ import sys
8
8
  from ..tools._mate import Meta
9
9
  from ..tools._uiautodev import start_uiautodev, stop_uiautodev
10
10
 
11
- python_version = sys.version_info
12
- if f"{python_version.major}.{python_version.minor}" != "3.10":
13
- raise Exception("必须使用>Python3.10.4")
11
+
14
12
  __all__ = ['Meta', 'start_uiautodev', 'stop_uiautodev']
@@ -9,9 +9,7 @@ from ..uidrive._base_data import BaseData
9
9
  from ..uidrive._driver_object import DriverObject
10
10
  from ..uidrive._sync_element import SyncElement
11
11
 
12
- python_version = sys.version_info
13
- if f"{python_version.major}.{python_version.minor}" != "3.10":
14
- raise Exception("必须使用>Python3.10.4")
12
+
15
13
  __all__ = [
16
14
  'AsyncElement',
17
15
  'BaseData',
@@ -126,7 +126,6 @@ class AsyncElement(AsyncWebDevice, AndroidDriver):
126
126
  if self.element_model.ope_value is None:
127
127
  raise MangoAutomationError(*ERROR_MSG_0054)
128
128
  await self.__ope_value()
129
- self.element_model.ope_value = self.base_data.test_data.replace(self.element_model.ope_value)
130
129
  if self.drive_type == DriveTypeEnum.WEB.value:
131
130
  await self.web_action_element(
132
131
  self.element_model.name,
@@ -147,7 +146,6 @@ class AsyncElement(AsyncWebDevice, AndroidDriver):
147
146
  if self.element_model.ope_value is None:
148
147
  raise MangoAutomationError(*ERROR_MSG_0054)
149
148
  await self.__ope_value(True)
150
- self.element_model.ope_value = self.base_data.test_data.replace(self.element_model.ope_value)
151
149
  try:
152
150
  if self.drive_type == DriveTypeEnum.WEB.value:
153
151
  self.element_result_model.ass_msg = await self.web_assertion_element(
@@ -235,6 +233,7 @@ class AsyncElement(AsyncWebDevice, AndroidDriver):
235
233
  for f, v in self.element_data.items():
236
234
  if f == i.f:
237
235
  i.v = self.base_data.test_data.replace(v)
236
+ i.v = self.base_data.test_data.replace(i.v)
238
237
 
239
238
  except AttributeError as error:
240
239
  self.base_data.log.debug(
@@ -14,7 +14,8 @@ from ..uidrive.web.sync_web._new_browser import SyncWebNewBrowser
14
14
 
15
15
  class DriverObject:
16
16
 
17
- def __init__(self, is_async=False):
17
+ def __init__(self, log, is_async=False):
18
+ self.log = log
18
19
  self.is_async = is_async
19
20
  self.web: Optional[AsyncWebNewBrowser | SyncWebNewBrowser] = None
20
21
  self.android: Optional[NewAndroid] = None
@@ -41,7 +42,8 @@ class DriverObject:
41
42
  web_h5,
42
43
  is_header_intercept,
43
44
  web_is_default,
44
- videos_path
45
+ videos_path,
46
+ log=self.log,
45
47
  )
46
48
  else:
47
49
  self.web = SyncWebNewBrowser(
@@ -53,7 +55,8 @@ class DriverObject:
53
55
  web_h5,
54
56
  is_header_intercept,
55
57
  web_is_default,
56
- videos_path
58
+ videos_path,
59
+ log=self.log,
57
60
  )
58
61
 
59
62
  def set_android(self, and_equipment: str):
@@ -126,7 +126,6 @@ class SyncElement(SyncWebDevice, AndroidDriver):
126
126
  if self.element_model.ope_value is None:
127
127
  raise MangoAutomationError(*ERROR_MSG_0054)
128
128
  self.__ope_value()
129
- self.element_model.ope_value = self.base_data.test_data.replace(self.element_model.ope_value)
130
129
  if self.drive_type == DriveTypeEnum.WEB.value:
131
130
  self.web_action_element(
132
131
  self.element_model.name,
@@ -147,7 +146,6 @@ class SyncElement(SyncWebDevice, AndroidDriver):
147
146
  if self.element_model.ope_value is None:
148
147
  raise MangoAutomationError(*ERROR_MSG_0054)
149
148
  self.__ope_value(True)
150
- self.element_model.ope_value = self.base_data.test_data.replace(self.element_model.ope_value)
151
149
  try:
152
150
  if self.drive_type == DriveTypeEnum.WEB.value:
153
151
  self.element_result_model.ass_msg = self.web_assertion_element(
@@ -235,6 +233,7 @@ class SyncElement(SyncWebDevice, AndroidDriver):
235
233
  for f, v in self.element_data.items():
236
234
  if f == i.f:
237
235
  i.v = self.base_data.test_data.replace(v)
236
+ i.v = self.base_data.test_data.replace(i.v)
238
237
 
239
238
  except AttributeError as error:
240
239
  self.base_data.log.debug(
@@ -35,7 +35,8 @@ class AsyncWebNewBrowser:
35
35
  web_h5=None,
36
36
  is_header_intercept=False,
37
37
  web_is_default=False,
38
- videos_path=None
38
+ videos_path=None,
39
+ log=None,
39
40
  ):
40
41
  self.lock = asyncio.Lock()
41
42
  self.web_type = web_type
@@ -47,6 +48,7 @@ class AsyncWebNewBrowser:
47
48
  self.web_is_default = web_is_default
48
49
  self.is_header_intercept = is_header_intercept
49
50
  self.videos_path = videos_path
51
+ self.log = log
50
52
  self.browser_path = ['chrome.exe', 'msedge.exe', 'firefox.exe', '苹果', '360se.exe']
51
53
  self.browser: Optional[None | Browser] = None
52
54
  self.playwright: Optional[None | Playwright] = None
@@ -61,9 +63,9 @@ class AsyncWebNewBrowser:
61
63
  context = await self.new_context()
62
64
  page = await self.new_page(context)
63
65
  return context, page
64
- except Exception as error:
66
+ except Exception:
67
+ self.log.error(f'初始化page失败,错误信息:{traceback.format_exc()}')
65
68
  self.browser = None
66
- print(traceback.format_exc())
67
69
  if count >= 3:
68
70
  raise MangoAutomationError(*ERROR_MSG_0057)
69
71
  else:
@@ -82,7 +84,8 @@ class AsyncWebNewBrowser:
82
84
  if self.web_is_default:
83
85
  try:
84
86
  return await browser.launch()
85
- except Error:
87
+ except Error as error:
88
+ self.log.error(f'初始化浏览器失败-1,类型:{error},详情:{traceback.format_exc()}')
86
89
  raise MangoAutomationError(*ERROR_MSG_0062)
87
90
  else:
88
91
  try:
@@ -97,7 +100,8 @@ class AsyncWebNewBrowser:
97
100
  headless=self.web_headers,
98
101
  executable_path=self.web_path if self.web_path else self.__search_path()
99
102
  )
100
- except Error:
103
+ except Error as error:
104
+ self.log.error(f'初始化浏览器失败-2,类型:{error},详情:{traceback.format_exc()}')
101
105
  raise MangoAutomationError(*ERROR_MSG_0009, value=(self.web_path,))
102
106
 
103
107
  async def new_context(self) -> BrowserContext:
@@ -118,7 +122,8 @@ class AsyncWebNewBrowser:
118
122
  if self.is_header_intercept:
119
123
  await page.route("**/*", self.wen_intercept_request) # 应用拦截函数到页面的所有请求
120
124
  return page
121
- except Error:
125
+ except Error as error:
126
+ self.log.error(f'初始化page失败,类型:{error},详情:{traceback.format_exc()}')
122
127
  raise MangoAutomationError(*ERROR_MSG_0009, value=(self.web_path,))
123
128
 
124
129
  async def close(self):
@@ -24,7 +24,6 @@ from ....exceptions import MangoAutomationError
24
24
  from ....exceptions._error_msg import ERROR_MSG_0057, ERROR_MSG_0008, ERROR_MSG_0062, ERROR_MSG_0009, ERROR_MSG_0055
25
25
 
26
26
 
27
-
28
27
  class SyncWebNewBrowser:
29
28
 
30
29
  def __init__(self,
@@ -36,7 +35,8 @@ class SyncWebNewBrowser:
36
35
  web_h5=None,
37
36
  is_header_intercept=False,
38
37
  web_is_default=False,
39
- videos_path=None
38
+ videos_path=None,
39
+ log=None,
40
40
  ):
41
41
  self.lock = threading.Lock()
42
42
  self.web_type = web_type
@@ -48,6 +48,7 @@ class SyncWebNewBrowser:
48
48
  self.web_is_default = web_is_default
49
49
  self.videos_path = videos_path
50
50
  self.is_header_intercept = is_header_intercept
51
+ self.log = log
51
52
  self.browser_path = ['chrome.exe', 'msedge.exe', 'firefox.exe', '苹果', '360se.exe']
52
53
  self.browser: Optional[None | Browser] = None
53
54
  self.playwright: Optional[None | Playwright] = None
@@ -55,15 +56,16 @@ class SyncWebNewBrowser:
55
56
  def new_web_page(self, count=0) -> tuple[BrowserContext, Page]:
56
57
  if self.browser is None:
57
58
  with self.lock:
58
- self.browser = self.new_browser()
59
- time.sleep(1)
59
+ if self.browser is None:
60
+ self.browser = self.new_browser()
61
+ time.sleep(1)
60
62
  try:
61
63
  context = self.new_context()
62
64
  page = self.new_page(context)
63
65
  return context, page
64
- except Exception as error:
66
+ except Exception:
67
+ self.log.error(f'初始化page失败,错误信息:{traceback.format_exc()}')
65
68
  self.browser = None
66
- traceback.format_exc()
67
69
  if count >= 3:
68
70
  raise MangoAutomationError(*ERROR_MSG_0057)
69
71
  else:
@@ -82,7 +84,8 @@ class SyncWebNewBrowser:
82
84
  if self.web_is_default:
83
85
  try:
84
86
  return browser.launch()
85
- except Error:
87
+ except Error as error:
88
+ self.log.error(f'初始化浏览器失败-1,类型:{error},详情:{traceback.format_exc()}')
86
89
  raise MangoAutomationError(*ERROR_MSG_0062)
87
90
  else:
88
91
  try:
@@ -97,7 +100,8 @@ class SyncWebNewBrowser:
97
100
  headless=self.web_headers,
98
101
  executable_path=self.web_path if self.web_path else self.__search_path()
99
102
  )
100
- except Error:
103
+ except Error as error:
104
+ self.log.error(f'初始化浏览器失败-2,类型:{error},详情:{traceback.format_exc()}')
101
105
  raise MangoAutomationError(*ERROR_MSG_0009, value=(self.web_path,))
102
106
 
103
107
  def new_context(self) -> BrowserContext:
@@ -118,7 +122,8 @@ class SyncWebNewBrowser:
118
122
  if self.is_header_intercept:
119
123
  page.route("**/*", self.wen_intercept_request) # 应用拦截函数到页面的所有请求
120
124
  return page
121
- except Error:
125
+ except Error as error:
126
+ self.log.error(f'初始化page失败,类型:{error},详情:{traceback.format_exc()}')
122
127
  raise MangoAutomationError(*ERROR_MSG_0009, value=(self.web_path,))
123
128
 
124
129
  def close(self):
@@ -0,0 +1,42 @@
1
+ Metadata-Version: 2.4
2
+ Name: mangoautomation
3
+ Version: 1.0.56
4
+ Summary: 测试工具
5
+ Home-page: https://gitee.com/mao-peng/testkit
6
+ Author: 毛鹏
7
+ Author-email: 729164035@qq.com
8
+ Classifier: Programming Language :: Python :: 3.10
9
+ Classifier: Programming Language :: Python :: 3.11
10
+ Classifier: Programming Language :: Python :: 3.12
11
+ Classifier: Programming Language :: Python :: 3.13
12
+ License-File: LICENSE
13
+ Requires-Dist: setuptools>=68.2.0
14
+ Requires-Dist: pydantic>=2.9.2
15
+ Requires-Dist: playwright==1.43.0
16
+ Requires-Dist: uiautomation>=2.0.20
17
+ Requires-Dist: uiautomator2>=3.2.5
18
+ Requires-Dist: mangotools>=1.1.28
19
+ Requires-Dist: adbutils~=2.8.9
20
+ Requires-Dist: uiautodev>=0.9.0
21
+ Dynamic: author
22
+ Dynamic: author-email
23
+ Dynamic: classifier
24
+ Dynamic: description
25
+ Dynamic: home-page
26
+ Dynamic: license-file
27
+ Dynamic: requires-dist
28
+ Dynamic: summary
29
+
30
+ # testkit
31
+
32
+ #### 介绍
33
+
34
+ 测试工具
35
+
36
+ #### 安装教程
37
+
38
+ 1. pip install mangokit
39
+
40
+ #### 使用说明
41
+
42
+ 1.
@@ -0,0 +1,8 @@
1
+ setuptools>=68.2.0
2
+ pydantic>=2.9.2
3
+ playwright==1.43.0
4
+ uiautomation>=2.0.20
5
+ uiautomator2>=3.2.5
6
+ mangotools>=1.1.28
7
+ adbutils~=2.8.9
8
+ uiautodev>=0.9.0
@@ -1,6 +1,6 @@
1
1
  from setuptools import setup, find_packages
2
2
 
3
- __version__ = '1.0.53'
3
+ __version__ = '1.0.56'
4
4
 
5
5
  with open("README.md", "r", encoding='utf-8') as fh:
6
6
  long_description = fh.read()
@@ -16,18 +16,21 @@ setup(
16
16
  url='https://gitee.com/mao-peng/testkit',
17
17
  packages=find_packages(),
18
18
  install_requires=[
19
- 'setuptools==68.2.0',
20
- 'pydantic==2.9.2',
19
+ 'setuptools>=68.2.0',
20
+ 'pydantic>=2.9.2',
21
21
  'playwright==1.43.0',
22
- 'uiautomation==2.0.20',
23
- 'uiautomator2==3.2.5',
24
- 'mangotools>=1.1.17',
22
+ 'uiautomation>=2.0.20',
23
+ 'uiautomator2>=3.2.5',
24
+ 'mangotools>=1.1.28',
25
25
  'adbutils~=2.8.9',
26
- 'uiautodev==0.9.0',
26
+ 'uiautodev>=0.9.0',
27
27
 
28
28
  ],
29
29
  classifiers=[
30
30
  "Programming Language :: Python :: 3.10",
31
+ "Programming Language :: Python :: 3.11",
32
+ "Programming Language :: Python :: 3.12",
33
+ "Programming Language :: Python :: 3.13",
31
34
  ]
32
35
  )
33
36
 
@@ -1,31 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: mangoautomation
3
- Version: 1.0.53
4
- Summary: 测试工具
5
- Home-page: https://gitee.com/mao-peng/testkit
6
- Author: 毛鹏
7
- Author-email: 729164035@qq.com
8
- Classifier: Programming Language :: Python :: 3.10
9
- License-File: LICENSE
10
- Requires-Dist: setuptools==68.2.0
11
- Requires-Dist: pydantic==2.9.2
12
- Requires-Dist: playwright==1.43.0
13
- Requires-Dist: uiautomation==2.0.20
14
- Requires-Dist: uiautomator2==3.2.5
15
- Requires-Dist: mangotools>=1.1.17
16
- Requires-Dist: adbutils~=2.8.9
17
- Requires-Dist: uiautodev==0.9.0
18
-
19
- # testkit
20
-
21
- #### 介绍
22
-
23
- 测试工具
24
-
25
- #### 安装教程
26
-
27
- 1. pip install mangokit
28
-
29
- #### 使用说明
30
-
31
- 1.
@@ -1,31 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: mangoautomation
3
- Version: 1.0.53
4
- Summary: 测试工具
5
- Home-page: https://gitee.com/mao-peng/testkit
6
- Author: 毛鹏
7
- Author-email: 729164035@qq.com
8
- Classifier: Programming Language :: Python :: 3.10
9
- License-File: LICENSE
10
- Requires-Dist: setuptools==68.2.0
11
- Requires-Dist: pydantic==2.9.2
12
- Requires-Dist: playwright==1.43.0
13
- Requires-Dist: uiautomation==2.0.20
14
- Requires-Dist: uiautomator2==3.2.5
15
- Requires-Dist: mangotools>=1.1.17
16
- Requires-Dist: adbutils~=2.8.9
17
- Requires-Dist: uiautodev==0.9.0
18
-
19
- # testkit
20
-
21
- #### 介绍
22
-
23
- 测试工具
24
-
25
- #### 安装教程
26
-
27
- 1. pip install mangokit
28
-
29
- #### 使用说明
30
-
31
- 1.
@@ -1,8 +0,0 @@
1
- setuptools==68.2.0
2
- pydantic==2.9.2
3
- playwright==1.43.0
4
- uiautomation==2.0.20
5
- uiautomator2==3.2.5
6
- mangotools>=1.1.17
7
- adbutils~=2.8.9
8
- uiautodev==0.9.0