Kea2-python 1.2.2b3__tar.gz → 1.2.3__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 (68) hide show
  1. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/Kea2_python.egg-info/PKG-INFO +1 -1
  2. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/PKG-INFO +1 -1
  3. kea2_python-1.2.3/kea2/assets/fastbot_libs/arm64-v8a/libfastbot_native.so +0 -0
  4. kea2_python-1.2.3/kea2/assets/fastbot_libs/armeabi-v7a/libfastbot_native.so +0 -0
  5. kea2_python-1.2.3/kea2/assets/fastbot_libs/x86/libfastbot_native.so +0 -0
  6. kea2_python-1.2.3/kea2/assets/fastbot_libs/x86_64/libfastbot_native.so +0 -0
  7. kea2_python-1.2.3/kea2/assets/monkeyq.jar +0 -0
  8. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/fastbotManager.py +1 -1
  9. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/keaUtils.py +2 -0
  10. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/kea_launcher.py +11 -0
  11. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/report/templates/bug_report_template.html +42 -2
  12. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/report/templates/merged_bug_report_template.html +68 -26
  13. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/result.py +1 -2
  14. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/pyproject.toml +1 -1
  15. kea2_python-1.2.2b3/kea2/assets/fastbot_libs/arm64-v8a/libfastbot_native.so +0 -0
  16. kea2_python-1.2.2b3/kea2/assets/fastbot_libs/armeabi-v7a/libfastbot_native.so +0 -0
  17. kea2_python-1.2.2b3/kea2/assets/fastbot_libs/x86/libfastbot_native.so +0 -0
  18. kea2_python-1.2.2b3/kea2/assets/fastbot_libs/x86_64/libfastbot_native.so +0 -0
  19. kea2_python-1.2.2b3/kea2/assets/monkeyq.jar +0 -0
  20. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/Kea2_python.egg-info/SOURCES.txt +0 -0
  21. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/Kea2_python.egg-info/dependency_links.txt +0 -0
  22. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/Kea2_python.egg-info/entry_points.txt +0 -0
  23. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/Kea2_python.egg-info/requires.txt +0 -0
  24. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/Kea2_python.egg-info/top_level.txt +0 -0
  25. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/LICENSE +0 -0
  26. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/README.md +0 -0
  27. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/__init__.py +0 -0
  28. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/adbUtils.py +0 -0
  29. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/assets/config_version.json +0 -0
  30. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/assets/fastbot-thirdpart.jar +0 -0
  31. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/assets/fastbot_configs/abl.strings +0 -0
  32. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/assets/fastbot_configs/awl.strings +0 -0
  33. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/assets/fastbot_configs/max.config +0 -0
  34. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/assets/fastbot_configs/max.fuzzing.strings +0 -0
  35. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/assets/fastbot_configs/max.schema.strings +0 -0
  36. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/assets/fastbot_configs/max.strings +0 -0
  37. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/assets/fastbot_configs/max.tree.pruning +0 -0
  38. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/assets/fastbot_configs/teardown.py +0 -0
  39. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/assets/fastbot_configs/widget.block.py +0 -0
  40. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/assets/framework.jar +0 -0
  41. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/assets/kea2-thirdpart.jar +0 -0
  42. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/assets/quicktest.py +0 -0
  43. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/cli.py +0 -0
  44. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/fastbotx/ActivityTimes.py +0 -0
  45. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/fastbotx/ReuseEntry.py +0 -0
  46. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/fastbotx/ReuseModel.py +0 -0
  47. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/fastbotx/__init__.py +0 -0
  48. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/fbm_parser.py +0 -0
  49. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/fbm_plugin.py +0 -0
  50. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/fs_lock.py +0 -0
  51. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/kea2_api.py +0 -0
  52. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/logWatcher.py +0 -0
  53. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/mixin.py +0 -0
  54. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/report/__init__.py +0 -0
  55. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/report/bug_report_generator.py +0 -0
  56. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/report/mixin.py +0 -0
  57. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/report/report_merger.py +0 -0
  58. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/report/utils.py +0 -0
  59. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/report/widget_coverage.py +0 -0
  60. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/resultSyncer.py +0 -0
  61. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/state.py +0 -0
  62. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/typedefs.py +0 -0
  63. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/u2Driver.py +0 -0
  64. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/utils.py +0 -0
  65. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/kea2/version_manager.py +0 -0
  66. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/setup.cfg +0 -0
  67. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/tests/test_u2Selector.py +0 -0
  68. {kea2_python-1.2.2b3 → kea2_python-1.2.3}/tests/test_xpath.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Kea2-python
3
- Version: 1.2.2b3
3
+ Version: 1.2.3
4
4
  Summary: A python library for supporting and customizing automated UI testing for mobile apps
5
5
  Author-email: Xixian Liang <xixian@stu.ecnu.edu.cn>
6
6
  Requires-Python: >=3.8
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Kea2-python
3
- Version: 1.2.2b3
3
+ Version: 1.2.3
4
4
  Summary: A python library for supporting and customizing automated UI testing for mobile apps
5
5
  Author-email: Xixian Liang <xixian@stu.ecnu.edu.cn>
6
6
  Requires-Python: >=3.8
@@ -189,7 +189,7 @@ class FastbotManager:
189
189
  "exec", "app_process",
190
190
  "/system/bin", "com.android.commands.monkey.Monkey",
191
191
  "--agent-u2",
192
- "reuseq",
192
+ self.options.fastbot_agent,
193
193
  "--running-minutes", f"{self.options.running_mins}",
194
194
  "--throttle", f"{self.options.throttle}",
195
195
  "--output-directory", f"{self.options.device_output_root}/output_{self.options.log_stamp}",
@@ -141,6 +141,8 @@ class Options:
141
141
  act_whitelist_file: str = None
142
142
  # Activity BlackList File
143
143
  act_blacklist_file: str = None
144
+ # Fastbot Agent
145
+ fastbot_agent: Literal["double-sarsa", "sarsa"] = "double-sarsa"
144
146
  # propertytest sub-commands args (eg. discover -s xxx -p xxx)
145
147
  propertytest_args: List[str] = None
146
148
  # period (N steps) to restart the app under test
@@ -162,6 +162,16 @@ def _set_runner_parser(subparsers: "argparse._SubParsersAction[argparse.Argument
162
162
  help="(Experimental) FBM merge at startup. When enabled, pull FBM(s) from the device at startup, merge them with local PC FBM data.",
163
163
  )
164
164
 
165
+ parser.add_argument(
166
+ "--fastbot-agent",
167
+ dest="fastbot_agent",
168
+ type=str,
169
+ choices=["double-sarsa", "sarsa"],
170
+ required=False,
171
+ default="double-sarsa",
172
+ help="Fastbot agent strategy.",
173
+ )
174
+
165
175
 
166
176
  parser.add_argument(
167
177
  "--act-whitelist-file",
@@ -301,6 +311,7 @@ def run(args=None) -> ReturnCode:
301
311
  unittest_args=args.unittest_args,
302
312
  extra_args=args.extra,
303
313
  merge_fbm=args.merge_fbm,
314
+ fastbot_agent=args.fastbot_agent,
304
315
  )
305
316
 
306
317
 
@@ -737,11 +737,51 @@
737
737
  background-color: white;
738
738
  border-radius: 0 0 8px 8px;
739
739
  box-shadow: 0 2px 4px rgba(0,0,0,0.05);
740
+ flex-wrap: wrap;
741
+ gap: 12px 16px;
740
742
  }
741
743
 
742
744
  .pagination-container.pagination-violations {
743
745
  padding: 10px 16px;
744
746
  }
747
+
748
+ .pagination-container > .d-flex {
749
+ flex: 0 1 auto;
750
+ flex-wrap: wrap;
751
+ row-gap: 8px;
752
+ min-width: 0;
753
+ }
754
+
755
+ .pagination-container > nav {
756
+ flex: 1 1 320px;
757
+ min-width: 0;
758
+ max-width: 100%;
759
+ display: flex;
760
+ justify-content: flex-end;
761
+ overflow-x: auto;
762
+ overflow-y: hidden;
763
+ -webkit-overflow-scrolling: touch;
764
+ scrollbar-width: thin;
765
+ }
766
+
767
+ .pagination-container > nav::-webkit-scrollbar {
768
+ height: 6px;
769
+ }
770
+
771
+ .pagination-container > nav::-webkit-scrollbar-thumb {
772
+ background-color: rgba(52, 152, 219, 0.45);
773
+ border-radius: 999px;
774
+ }
775
+
776
+ .pagination-container > nav .pagination {
777
+ flex-wrap: nowrap;
778
+ width: max-content;
779
+ white-space: nowrap;
780
+ }
781
+
782
+ .pagination-container > nav .page-link {
783
+ white-space: nowrap;
784
+ }
745
785
 
746
786
  .activity-item {
747
787
  padding: 10px 15px;
@@ -1674,7 +1714,7 @@
1674
1714
  </table>
1675
1715
 
1676
1716
  <!-- Pagination for Activities -->
1677
- <div class="d-flex justify-content-between align-items-center mt-3">
1717
+ <div class="d-flex justify-content-between align-items-center mt-3 pagination-container">
1678
1718
  <div class="d-flex align-items-center">
1679
1719
  <label for="activities-page-size" class="form-label me-2 mb-0">Show:</label>
1680
1720
  <select class="form-select form-select-sm" id="activities-page-size" style="width: auto;">
@@ -2232,7 +2272,7 @@
2232
2272
  </table>
2233
2273
 
2234
2274
  <!-- Pagination for Property Checking Statistics -->
2235
- <div class="d-flex justify-content-between align-items-center mt-3">
2275
+ <div class="d-flex justify-content-between align-items-center mt-3 pagination-container">
2236
2276
  <div class="d-flex align-items-center">
2237
2277
  <label for="stats-page-size" class="form-label me-2 mb-0">Show:</label>
2238
2278
  <select class="form-select form-select-sm" id="stats-page-size" style="width: auto;">
@@ -188,12 +188,12 @@
188
188
  text-align: left;
189
189
  }
190
190
 
191
- #property-source-container tr th:nth-child(3),
192
- #property-source-container tr td:nth-child(3) { /* Source Directories */
193
- width: 57%;
194
- min-width: 300px;
195
- text-align: center;
196
- }
191
+ #property-source-container tr th:nth-child(3),
192
+ #property-source-container tr td:nth-child(3) { /* Source Directories */
193
+ width: 57%;
194
+ min-width: 300px;
195
+ text-align: left;
196
+ }
197
197
 
198
198
  /* Property Source Mapping specific styles */
199
199
  .property-source-row .badge-custom {
@@ -202,9 +202,10 @@
202
202
  white-space: normal;
203
203
  }
204
204
 
205
- .property-source-row td:last-child {
206
- line-height: 1.8;
207
- }
205
+ .property-source-row td:last-child {
206
+ line-height: 1.8;
207
+ text-align: left;
208
+ }
208
209
 
209
210
  .property-source-row .badge.bg-info {
210
211
  transition: all 0.2s ease;
@@ -236,9 +237,10 @@
236
237
  display: inline;
237
238
  }
238
239
 
239
- .source-dirs-container {
240
- line-height: 1.8;
241
- }
240
+ .source-dirs-container {
241
+ line-height: 1.8;
242
+ text-align: left;
243
+ }
242
244
 
243
245
  .stat-value {
244
246
  font-size: 1.8rem;
@@ -399,12 +401,52 @@
399
401
  height: 650px;
400
402
  }
401
403
 
402
- .pagination-container {
403
- padding: 10px 0;
404
- background-color: white;
405
- border-radius: 0 0 8px 8px;
406
- box-shadow: 0 2px 4px rgba(0,0,0,0.05);
407
- }
404
+ .pagination-container {
405
+ padding: 10px 0;
406
+ background-color: white;
407
+ border-radius: 0 0 8px 8px;
408
+ box-shadow: 0 2px 4px rgba(0,0,0,0.05);
409
+ flex-wrap: wrap;
410
+ gap: 12px 16px;
411
+ }
412
+
413
+ .pagination-container > .d-flex {
414
+ flex: 0 1 auto;
415
+ flex-wrap: wrap;
416
+ row-gap: 8px;
417
+ min-width: 0;
418
+ }
419
+
420
+ .pagination-container > nav {
421
+ flex: 1 1 320px;
422
+ min-width: 0;
423
+ max-width: 100%;
424
+ display: flex;
425
+ justify-content: flex-end;
426
+ overflow-x: auto;
427
+ overflow-y: hidden;
428
+ -webkit-overflow-scrolling: touch;
429
+ scrollbar-width: thin;
430
+ }
431
+
432
+ .pagination-container > nav::-webkit-scrollbar {
433
+ height: 6px;
434
+ }
435
+
436
+ .pagination-container > nav::-webkit-scrollbar-thumb {
437
+ background-color: rgba(52, 152, 219, 0.45);
438
+ border-radius: 999px;
439
+ }
440
+
441
+ .pagination-container > nav .pagination {
442
+ flex-wrap: nowrap;
443
+ width: max-content;
444
+ white-space: nowrap;
445
+ }
446
+
447
+ .pagination-container > nav .page-link {
448
+ white-space: nowrap;
449
+ }
408
450
 
409
451
  /* Modern Activity Item Styling */
410
452
  .activity-item {
@@ -1017,11 +1059,11 @@
1017
1059
  font-size: 15px;
1018
1060
  }
1019
1061
 
1020
- .merged-directories-list {
1021
- max-height: 200px;
1022
- overflow-y: auto;
1023
- overflow-x: hidden;
1024
- padding: 12px;
1062
+ .merged-directories-list {
1063
+ max-height: 500px;
1064
+ overflow-y: auto;
1065
+ overflow-x: hidden;
1066
+ padding: 12px;
1025
1067
  padding-right: 8px; /* Make room for scrollbar */
1026
1068
  background: #f8f9fa;
1027
1069
  border-radius: 8px;
@@ -1582,7 +1624,7 @@
1582
1624
  </div>
1583
1625
 
1584
1626
  <!-- Pagination for Activities -->
1585
- <div class="d-flex justify-content-between align-items-center mt-3">
1627
+ <div class="d-flex justify-content-between align-items-center mt-3 pagination-container">
1586
1628
  <div class="d-flex align-items-center">
1587
1629
  <label for="activities-page-size" class="form-label me-2 mb-0">Show:</label>
1588
1630
  <select class="form-select form-select-sm" id="activities-page-size" style="width: auto;">
@@ -1854,7 +1896,7 @@
1854
1896
  </table>
1855
1897
 
1856
1898
  <!-- Pagination for Property Checking Statistics -->
1857
- <div class="d-flex justify-content-between align-items-center mt-3">
1899
+ <div class="d-flex justify-content-between align-items-center mt-3 pagination-container">
1858
1900
  <div class="d-flex align-items-center">
1859
1901
  <label for="stats-page-size" class="form-label me-2 mb-0">Show:</label>
1860
1902
  <select class="form-select form-select-sm" id="stats-page-size" style="width: auto;">
@@ -2024,7 +2066,7 @@
2024
2066
  </table>
2025
2067
 
2026
2068
  <!-- Pagination for Property Source Mapping -->
2027
- <div class="d-flex justify-content-between align-items-center mt-3">
2069
+ <div class="d-flex justify-content-between align-items-center mt-3 pagination-container">
2028
2070
  <div class="d-flex align-items-center">
2029
2071
  <label for="source-page-size" class="form-label me-2 mb-0">Show:</label>
2030
2072
  <select class="form-select form-select-sm" id="source-page-size" style="width: auto;">
@@ -140,8 +140,7 @@ class KeaJsonResult(TextTestResult):
140
140
  invariant_fails = sum(_.fail for _ in self.res.values() if _.kind == "invariant")
141
141
  invariant_errors = sum(_.error for _ in self.res.values() if _.kind == "invariant")
142
142
  logger.info(f"[Property Execution Summary] Errors:{property_errors}, Fails:{property_fails}")
143
- if invariant_fails > 0 or invariant_errors > 0:
144
- logger.info(f"[Invariant Execution Summary] Errors:{invariant_errors}, Fails:{invariant_fails}")
143
+ logger.info(f"[Invariant Execution Summary] Errors:{invariant_errors}, Fails:{invariant_fails}")
145
144
 
146
145
  def flushResult(self):
147
146
  json_res = dict()
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "Kea2-python"
3
- version = "1.2.2b3"
3
+ version = "1.2.3"
4
4
  description = "A python library for supporting and customizing automated UI testing for mobile apps"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.8"
Binary file
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes