AltTester-Driver 2.1.2__tar.gz → 2.2.0__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.
Files changed (109) hide show
  1. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/AltTester_Driver.egg-info/PKG-INFO +1 -1
  2. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/AltTester_Driver.egg-info/SOURCES.txt +1 -0
  3. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/PKG-INFO +1 -1
  4. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/__version__.py +1 -1
  5. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/altdriver.py +10 -8
  6. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/altobject.py +18 -0
  7. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/AltTesterCommands/add_notification_listener.py +3 -3
  8. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/UnityCommands/__init__.py +1 -0
  9. alttester_driver-2.2.0/alttester/commands/UnityCommands/get_visual_element_property.py +40 -0
  10. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/exceptions.py +4 -0
  11. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/tests/integration/test_scene01_part1.py +1 -1
  12. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/tests/integration/test_scene01_part2.py +3 -3
  13. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/AltTester_Driver.egg-info/dependency_links.txt +0 -0
  14. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/AltTester_Driver.egg-info/not-zip-safe +0 -0
  15. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/AltTester_Driver.egg-info/requires.txt +0 -0
  16. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/AltTester_Driver.egg-info/top_level.txt +0 -0
  17. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/MANIFEST.in +0 -0
  18. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/README.md +0 -0
  19. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/__init__.py +0 -0
  20. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/_websocket.py +0 -0
  21. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/by.py +0 -0
  22. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/AltTesterCommands/__init__.py +0 -0
  23. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/AltTesterCommands/remove_notification_listener.py +0 -0
  24. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/AltTesterCommands/reset_input.py +0 -0
  25. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/AltTesterCommands/set_server_logging.py +0 -0
  26. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/FindObjects/__init__.py +0 -0
  27. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/FindObjects/find_object.py +0 -0
  28. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/FindObjects/find_object_at_coordinates.py +0 -0
  29. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/FindObjects/find_object_which_contains.py +0 -0
  30. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/FindObjects/find_objects.py +0 -0
  31. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/FindObjects/find_objects_which_contains.py +0 -0
  32. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/FindObjects/wait_for_component_property.py +0 -0
  33. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/FindObjects/wait_for_object.py +0 -0
  34. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/FindObjects/wait_for_object_to_not_be_present.py +0 -0
  35. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/FindObjects/wait_for_object_which_contains.py +0 -0
  36. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/InputActions/__init__.py +0 -0
  37. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/InputActions/begin_touch.py +0 -0
  38. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/InputActions/click_coordinates.py +0 -0
  39. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/InputActions/end_touch.py +0 -0
  40. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/InputActions/keys_down.py +0 -0
  41. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/InputActions/keys_up.py +0 -0
  42. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/InputActions/move_mouse.py +0 -0
  43. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/InputActions/move_touch.py +0 -0
  44. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/InputActions/multi_point_swipe.py +0 -0
  45. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/InputActions/press_keys.py +0 -0
  46. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/InputActions/scroll_mouse.py +0 -0
  47. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/InputActions/swipe.py +0 -0
  48. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/InputActions/tap_coordinates.py +0 -0
  49. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/InputActions/tilt.py +0 -0
  50. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/Notifications/__init__.py +0 -0
  51. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/Notifications/base_notification_callbacks.py +0 -0
  52. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/Notifications/load_scene_mode.py +0 -0
  53. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/Notifications/load_scene_notification_result.py +0 -0
  54. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/Notifications/log_notification_result.py +0 -0
  55. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/Notifications/notification_type.py +0 -0
  56. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/ObjectCommands/__init__.py +0 -0
  57. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/ObjectCommands/call_method.py +0 -0
  58. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/ObjectCommands/click_element.py +0 -0
  59. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/ObjectCommands/get_all_components.py +0 -0
  60. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/ObjectCommands/get_component_property.py +0 -0
  61. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/ObjectCommands/get_text.py +0 -0
  62. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/ObjectCommands/pointer_down.py +0 -0
  63. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/ObjectCommands/pointer_enter.py +0 -0
  64. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/ObjectCommands/pointer_exit.py +0 -0
  65. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/ObjectCommands/pointer_up.py +0 -0
  66. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/ObjectCommands/set_component_property.py +0 -0
  67. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/ObjectCommands/set_text.py +0 -0
  68. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/ObjectCommands/tap_element.py +0 -0
  69. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/UnityCommands/delete_player_pref.py +0 -0
  70. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/UnityCommands/delete_player_pref_key.py +0 -0
  71. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/UnityCommands/get_all_loaded_scenes.py +0 -0
  72. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/UnityCommands/get_current_scene.py +0 -0
  73. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/UnityCommands/get_player_pref_key.py +0 -0
  74. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/UnityCommands/get_time_scale.py +0 -0
  75. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/UnityCommands/load_scene.py +0 -0
  76. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/UnityCommands/set_player_pref_key.py +0 -0
  77. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/UnityCommands/set_time_scale.py +0 -0
  78. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/UnityCommands/unload_scene.py +0 -0
  79. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/UnityCommands/wait_for_current_scene_to_be.py +0 -0
  80. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/__init__.py +0 -0
  81. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/base_command.py +0 -0
  82. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/get_png_screenshot.py +0 -0
  83. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/get_server_version.py +0 -0
  84. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/get_static_property.py +0 -0
  85. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/commands/set_static_property.py +0 -0
  86. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/keycode.py +0 -0
  87. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/logging.py +0 -0
  88. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/playerpref.py +0 -0
  89. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/alttester/reverse_port_forwarding.py +0 -0
  90. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/requirements-dev.txt +0 -0
  91. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/requirements.txt +0 -0
  92. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/setup.cfg +0 -0
  93. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/setup.py +0 -0
  94. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/tests/integration/__init__.py +0 -0
  95. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/tests/integration/conftest.py +0 -0
  96. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/tests/integration/test_driver.py +0 -0
  97. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/tests/integration/test_notifications.py +0 -0
  98. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/tests/integration/test_reverse_port_forwarding.py +0 -0
  99. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/tests/integration/test_scene02.py +0 -0
  100. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/tests/integration/test_scene03.py +0 -0
  101. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/tests/integration/test_scene05.py +0 -0
  102. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/tests/integration/test_scene07.py +0 -0
  103. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/tests/integration/test_scene09.py +0 -0
  104. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/tests/integration/test_scene10.py +0 -0
  105. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/tests/integration/utils.py +0 -0
  106. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/tests/unit/__init__.py +0 -0
  107. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/tests/unit/test_altobject.py +0 -0
  108. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/tests/unit/test_commands.py +0 -0
  109. {alttester_driver-2.1.2 → alttester_driver-2.2.0}/tests/unit/test_websocket.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: AltTester-Driver
3
- Version: 2.1.2
3
+ Version: 2.2.0
4
4
  Summary: Python bindings for the AltTester® framework. AltTester® is an open-source UI driven test automation tool that helps you find objects in your game and interacts with them.
5
5
  Home-page: https://alttester.com/docs/sdk/latest/
6
6
  Author: Altom Consulting
@@ -81,6 +81,7 @@ alttester/commands/UnityCommands/get_all_loaded_scenes.py
81
81
  alttester/commands/UnityCommands/get_current_scene.py
82
82
  alttester/commands/UnityCommands/get_player_pref_key.py
83
83
  alttester/commands/UnityCommands/get_time_scale.py
84
+ alttester/commands/UnityCommands/get_visual_element_property.py
84
85
  alttester/commands/UnityCommands/load_scene.py
85
86
  alttester/commands/UnityCommands/set_player_pref_key.py
86
87
  alttester/commands/UnityCommands/set_time_scale.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: AltTester-Driver
3
- Version: 2.1.2
3
+ Version: 2.2.0
4
4
  Summary: Python bindings for the AltTester® framework. AltTester® is an open-source UI driven test automation tool that helps you find objects in your game and interacts with them.
5
5
  Home-page: https://alttester.com/docs/sdk/latest/
6
6
  Author: Altom Consulting
@@ -15,4 +15,4 @@
15
15
  along with this program. If not, see <https://www.gnu.org/licenses/>.
16
16
  """
17
17
 
18
- VERSION = "2.1.2"
18
+ VERSION = "2.2.0"
@@ -133,18 +133,20 @@ class AltDriver:
133
133
 
134
134
  def _check_server_version(self):
135
135
  server_version = commands.GetServerVersion.run(self._connection)
136
- logger.info(
137
- "Connection established with instrumented Unity app. AltTester(R) Version: {}", server_version)
136
+ logger.info("Connection established with instrumented Unity app. AltTester(R) Version: {}".format(
137
+ server_version))
138
138
 
139
139
  major_server, minor_server = self._split_version(server_version)
140
- major_driver, minor_driver = self._split_version(VERSION)
141
140
 
142
- if major_server != major_driver or minor_server != minor_driver:
143
- message = "Version mismatch. AltDriver version is {}. AltTester(R) version is {}.".format(
144
- VERSION,
145
- server_version
146
- )
141
+ server_major = int(major_server)
142
+ server_minor = int(minor_server)
147
143
 
144
+ is_supported = (server_major == 2 and server_minor == 2) or (
145
+ server_major == 1 and server_minor == 0)
146
+
147
+ if not is_supported:
148
+ message = "Version mismatch. AltDriver version is {}. AltTester(R) version is {}.".format(
149
+ VERSION, server_version)
148
150
  logger.warning(message)
149
151
 
150
152
  def _get_alt_object(self, data):
@@ -18,6 +18,7 @@
18
18
  import json
19
19
 
20
20
  import alttester.commands as commands
21
+ import alttester.exceptions as exceptions
21
22
  from alttester.by import By
22
23
 
23
24
 
@@ -368,3 +369,20 @@ class AltObject:
368
369
  self, count, interval, wait
369
370
  )
370
371
  return AltObject(self._altdriver, data)
372
+
373
+ def get_visual_element_property(self, property_name: str) -> str:
374
+ """Gets a value for a given visual element property.
375
+
376
+ Args:
377
+ property_name: The name of the property of which value you want to get.
378
+
379
+ Returns:
380
+ The property value is serialized to a JSON string.
381
+
382
+ Raises:
383
+ WrongAltObjectTypeException: The method is called on an object that is not a VisualElement.
384
+ """
385
+ if self.type != "UIToolkit":
386
+ raise exceptions.WrongAltObjectTypeException(
387
+ "This method is only available for VisualElement objects")
388
+ return commands.GetVisualElementProperty.run(self._connection, property_name, self,)
@@ -22,7 +22,7 @@ from alttester.exceptions import InvalidParameterTypeException
22
22
 
23
23
  class AddNotificationListener(BaseCommand):
24
24
 
25
- def __init__(self, connection, notification_type, notification_callback, overwrite):
25
+ def __init__(self, connection, notification_type, notification_callback, overwrite=False):
26
26
  super().__init__(connection, "activateNotification")
27
27
 
28
28
  if notification_type not in NotificationType:
@@ -33,7 +33,7 @@ class AddNotificationListener(BaseCommand):
33
33
  )
34
34
  self.notification_type = notification_type
35
35
 
36
- if type(notification_callback) == "method":
36
+ if not callable(notification_callback):
37
37
  raise InvalidParameterTypeException(
38
38
  parameter_name='notification_callback',
39
39
  expected_types=[callable],
@@ -41,7 +41,7 @@ class AddNotificationListener(BaseCommand):
41
41
  )
42
42
  self.notification_callback = notification_callback
43
43
 
44
- if type(overwrite) == "bool":
44
+ if not isinstance(overwrite, bool):
45
45
  raise InvalidParameterTypeException(
46
46
  parameter_name='overwrite',
47
47
  expected_types=[bool],
@@ -26,3 +26,4 @@ from alttester.commands.UnityCommands.set_time_scale import SetTimeScale
26
26
  from alttester.commands.UnityCommands.wait_for_current_scene_to_be import WaitForCurrentSceneToBe
27
27
  from alttester.commands.UnityCommands.get_all_loaded_scenes import GetAllLoadedScenes
28
28
  from alttester.commands.UnityCommands.unload_scene import UnloadScene
29
+ from alttester.commands.UnityCommands.get_visual_element_property import GetVisualElementProperty
@@ -0,0 +1,40 @@
1
+ """
2
+ Copyright(C) 2024 Altom Consulting
3
+
4
+ This program is free software: you can redistribute it and/or modify
5
+ it under the terms of the GNU General Public License as published by
6
+ the Free Software Foundation, either version 3 of the License, or
7
+ (at your option) any later version.
8
+
9
+ This program is distributed in the hope that it will be useful,
10
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ GNU General Public License for more details.
13
+
14
+ You should have received a copy of the GNU General Public License
15
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
16
+ """
17
+
18
+ from alttester.commands.base_command import BaseCommand
19
+
20
+
21
+ class GetVisualElementProperty(BaseCommand):
22
+
23
+ def __init__(self, connection, property_name, alt_object):
24
+ super().__init__(connection, "getVisualElementProperty")
25
+
26
+ self.alt_object = alt_object
27
+ self.property_name = property_name
28
+
29
+ @property
30
+ def _parameters(self):
31
+ parameters = super()._parameters
32
+ parameters.update(**{
33
+ "altObject": self.alt_object.to_json(),
34
+ "property": self.property_name,
35
+ })
36
+
37
+ return parameters
38
+
39
+ def execute(self):
40
+ return self.send()
@@ -159,3 +159,7 @@ class AltTesterInputModuleException(AltException):
159
159
 
160
160
  class UnknownErrorException(AltException):
161
161
  """Raised when an unexpected error occurred."""
162
+
163
+
164
+ class WrongAltObjectTypeException(AltException):
165
+ """Raised when an object is not of the expected type."""
@@ -137,7 +137,7 @@ class TestScene01Part1:
137
137
  By.NAME, "EventNonExisting")
138
138
 
139
139
  assert str(
140
- execinfo.value) == "Object //*[contains(@name,EventNonExisting)] not found"
140
+ execinfo.value) == "Object not found"
141
141
 
142
142
  def test_get_all_components(self):
143
143
  components = self.alt_driver.find_object(
@@ -407,9 +407,9 @@ class TestScene01Part2:
407
407
  def test_float_world_coordinates(self):
408
408
  plane = self.alt_driver.find_object(By.NAME, "Plane")
409
409
 
410
- assert type(plane.worldX) == float
411
- assert type(plane.worldY) == float
412
- assert type(plane.worldZ) == float
410
+ assert type(plane.worldX) is float
411
+ assert type(plane.worldY) is float
412
+ assert type(plane.worldZ) is float
413
413
 
414
414
  def test_set_command_response_timeout(self):
415
415
  self.alt_driver.set_command_response_timeout(1)