hardpy 0.2.0__tar.gz → 0.4.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 (76) hide show
  1. {hardpy-0.2.0 → hardpy-0.4.0}/PKG-INFO +9 -2
  2. {hardpy-0.2.0 → hardpy-0.4.0}/README.md +8 -1
  3. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/__init__.py +9 -1
  4. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/api.py +15 -0
  5. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/asset-manifest.json +3 -3
  6. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/index.html +1 -1
  7. hardpy-0.4.0/hardpy/hardpy_panel/frontend/dist/static/js/main.37744128.js +3 -0
  8. hardpy-0.4.0/hardpy/hardpy_panel/frontend/dist/static/js/main.37744128.js.map +1 -0
  9. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/runner.py +2 -0
  10. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/db/base_store.py +21 -11
  11. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/db/const.py +1 -0
  12. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/db/schema.py +23 -2
  13. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/plugin.py +72 -4
  14. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/pytest_call.py +100 -11
  15. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/pytest_wrapper.py +29 -0
  16. hardpy-0.4.0/hardpy/pytest_hardpy/reporter/base.py +60 -0
  17. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/reporter/hook_reporter.py +38 -40
  18. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/utils/__init__.py +17 -1
  19. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/utils/config_data.py +5 -1
  20. hardpy-0.4.0/hardpy/pytest_hardpy/utils/dialog_box.py +100 -0
  21. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/utils/exception.py +7 -0
  22. hardpy-0.4.0/hardpy/pytest_hardpy/utils/node_info.py +125 -0
  23. {hardpy-0.2.0 → hardpy-0.4.0}/pyproject.toml +1 -1
  24. hardpy-0.2.0/hardpy/hardpy_panel/frontend/dist/static/js/main.8ef63e9b.js +0 -3
  25. hardpy-0.2.0/hardpy/hardpy_panel/frontend/dist/static/js/main.8ef63e9b.js.map +0 -1
  26. hardpy-0.2.0/hardpy/pytest_hardpy/reporter/base.py +0 -42
  27. hardpy-0.2.0/hardpy/pytest_hardpy/utils/node_info.py +0 -59
  28. {hardpy-0.2.0 → hardpy-0.4.0}/.gitignore +0 -0
  29. {hardpy-0.2.0 → hardpy-0.4.0}/LICENSE +0 -0
  30. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/__init__.py +0 -0
  31. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/favicon.ico +0 -0
  32. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/logo512.png +0 -0
  33. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/manifest.json +0 -0
  34. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/css/main.e8a862f1.css +0 -0
  35. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/css/main.e8a862f1.css.map +0 -0
  36. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/js/808.ce070002.chunk.js +0 -0
  37. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/js/808.ce070002.chunk.js.map +0 -0
  38. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/js/blueprint-icons-16px-paths.d605910e.chunk.js +0 -0
  39. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/js/blueprint-icons-16px-paths.d605910e.chunk.js.map +0 -0
  40. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/js/blueprint-icons-20px-paths.7ee05cc8.chunk.js +0 -0
  41. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/js/blueprint-icons-20px-paths.7ee05cc8.chunk.js.map +0 -0
  42. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/js/blueprint-icons-all-paths-loader.0aa89747.chunk.js +0 -0
  43. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/js/blueprint-icons-all-paths-loader.0aa89747.chunk.js.map +0 -0
  44. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/js/blueprint-icons-all-paths.f63155c9.chunk.js +0 -0
  45. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/js/blueprint-icons-all-paths.f63155c9.chunk.js.map +0 -0
  46. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/js/blueprint-icons-split-paths-by-size-loader.52a072d3.chunk.js +0 -0
  47. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/js/blueprint-icons-split-paths-by-size-loader.52a072d3.chunk.js.map +0 -0
  48. /hardpy-0.2.0/hardpy/hardpy_panel/frontend/dist/static/js/main.8ef63e9b.js.LICENSE.txt → /hardpy-0.4.0/hardpy/hardpy_panel/frontend/dist/static/js/main.37744128.js.LICENSE.txt +0 -0
  49. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/media/blueprint-icons-16.520846c6beb41df528c8.eot +0 -0
  50. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/media/blueprint-icons-16.5c52b39c697f2323ce8b.svg +0 -0
  51. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/media/blueprint-icons-16.84db1772f4bfb529f64f.woff +0 -0
  52. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/media/blueprint-icons-16.b67ee1736e20e37a3225.woff2 +0 -0
  53. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/media/blueprint-icons-16.e02ecf515378db143652.ttf +0 -0
  54. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/media/blueprint-icons-20.429cacb8accf72488451.ttf +0 -0
  55. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/media/blueprint-icons-20.6ae3791ee2d86fc228a6.svg +0 -0
  56. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/media/blueprint-icons-20.8cecf62de42997e4d82f.woff2 +0 -0
  57. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/media/blueprint-icons-20.afbadb627d43b7857223.eot +0 -0
  58. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/media/blueprint-icons-20.e857f5a5132b8bfa71a1.woff +0 -0
  59. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/hardpy_panel/frontend/dist/static/media/logo_smol.5b16f92447a4a9e80331.png +0 -0
  60. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/__init__.py +0 -0
  61. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/db/__init__.py +0 -0
  62. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/db/base_connector.py +0 -0
  63. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/db/base_server.py +0 -0
  64. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/db/runstore.py +0 -0
  65. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/db/statestore.py +0 -0
  66. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/reporter/__init__.py +0 -0
  67. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/reporter/runner_reporter.py +0 -0
  68. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/result/__init__.py +0 -0
  69. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/result/couchdb_config.py +0 -0
  70. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/result/report_loader/__init__.py +0 -0
  71. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/result/report_loader/couchdb_loader.py +0 -0
  72. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/result/report_reader/__init__.py +0 -0
  73. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/result/report_reader/couchdb_reader.py +0 -0
  74. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/utils/const.py +0 -0
  75. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/utils/progress_calculator.py +0 -0
  76. {hardpy-0.2.0 → hardpy-0.4.0}/hardpy/pytest_hardpy/utils/singleton.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hardpy
3
- Version: 0.2.0
3
+ Version: 0.4.0
4
4
  Summary: HardPy library for device testing
5
5
  Project-URL: repository, https://github.com/everypindevices/hardpy
6
6
  Author: Everypin
@@ -62,7 +62,7 @@ HardPy is a python library for creating a test bench for devices.
62
62
  HardPy allows you to:
63
63
 
64
64
  * Create test benches for devices using [pytest](https://docs.pytest.org/);
65
- * Use a browser to view, run, and stop tests;
65
+ * Use a browser to view, start, stop, and interact with tests;
66
66
  * Store test results in the [CouchDB](https://couchdb.apache.org/) database.
67
67
 
68
68
  ## To Install
@@ -84,6 +84,7 @@ For Windows, follow the instructions from the
84
84
  [documentation](https://everypinio.github.io/hardpy/documentation/database/#couchdb-instance).
85
85
 
86
86
  Launch CouchDB with Docker.
87
+ The Docker version must be 24.0.0 or higher.
87
88
  Create `couchdb.ini` file:
88
89
 
89
90
  ```ini
@@ -103,6 +104,12 @@ Run the Docker container from folder with couchdb.ini file:
103
104
  docker run --rm --name couchdb -p 5984:5984 -e COUCHDB_USER=dev -e COUCHDB_PASSWORD=dev -v ./couchdb.ini:/opt/couchdb/etc/local.ini couchdb:3.3
104
105
  ```
105
106
 
107
+ Command for Windows:
108
+
109
+ ```bash
110
+ docker run --rm --name couchdb -p 5984:5984 -e COUCHDB_USER=dev -e COUCHDB_PASSWORD=dev -v .\couchdb.ini:/opt/couchdb/etc/local.ini couchdb:3.3.2
111
+ ```
112
+
106
113
  #### Test steps
107
114
 
108
115
  Add simple test to `tests` folder
@@ -25,7 +25,7 @@ HardPy is a python library for creating a test bench for devices.
25
25
  HardPy allows you to:
26
26
 
27
27
  * Create test benches for devices using [pytest](https://docs.pytest.org/);
28
- * Use a browser to view, run, and stop tests;
28
+ * Use a browser to view, start, stop, and interact with tests;
29
29
  * Store test results in the [CouchDB](https://couchdb.apache.org/) database.
30
30
 
31
31
  ## To Install
@@ -47,6 +47,7 @@ For Windows, follow the instructions from the
47
47
  [documentation](https://everypinio.github.io/hardpy/documentation/database/#couchdb-instance).
48
48
 
49
49
  Launch CouchDB with Docker.
50
+ The Docker version must be 24.0.0 or higher.
50
51
  Create `couchdb.ini` file:
51
52
 
52
53
  ```ini
@@ -66,6 +67,12 @@ Run the Docker container from folder with couchdb.ini file:
66
67
  docker run --rm --name couchdb -p 5984:5984 -e COUCHDB_USER=dev -e COUCHDB_PASSWORD=dev -v ./couchdb.ini:/opt/couchdb/etc/local.ini couchdb:3.3
67
68
  ```
68
69
 
70
+ Command for Windows:
71
+
72
+ ```bash
73
+ docker run --rm --name couchdb -p 5984:5984 -e COUCHDB_USER=dev -e COUCHDB_PASSWORD=dev -v .\couchdb.ini:/opt/couchdb/etc/local.ini couchdb:3.3.2
74
+ ```
75
+
69
76
  #### Test steps
70
77
 
71
78
  Add simple test to `tests` folder
@@ -2,8 +2,12 @@
2
2
  # GNU General Public License v3.0 (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
3
3
 
4
4
  from hardpy.pytest_hardpy.result import CouchdbLoader
5
- from hardpy.pytest_hardpy.utils import DuplicateSerialNumberError
5
+ from hardpy.pytest_hardpy.utils import (
6
+ DuplicateSerialNumberError,
7
+ DuplicateDialogBoxError,
8
+ )
6
9
  from hardpy.pytest_hardpy.result.couchdb_config import CouchdbConfig
10
+ from hardpy.pytest_hardpy.utils import dialog_box
7
11
  from hardpy.pytest_hardpy.pytest_call import (
8
12
  get_current_report,
9
13
  set_dut_info,
@@ -14,12 +18,14 @@ from hardpy.pytest_hardpy.pytest_call import (
14
18
  set_run_artifact,
15
19
  set_message,
16
20
  set_driver_info,
21
+ run_dialog_box,
17
22
  )
18
23
 
19
24
  __all__ = [
20
25
  "CouchdbLoader",
21
26
  "CouchdbConfig",
22
27
  "DuplicateSerialNumberError",
28
+ "DuplicateDialogBoxError",
23
29
  "get_current_report",
24
30
  "set_dut_info",
25
31
  "set_dut_serial_number",
@@ -29,4 +35,6 @@ __all__ = [
29
35
  "set_run_artifact",
30
36
  "set_message",
31
37
  "set_driver_info",
38
+ "run_dialog_box",
39
+ "dialog_box",
32
40
  ]
@@ -64,6 +64,21 @@ def couch_connection():
64
64
  }
65
65
 
66
66
 
67
+ @app.post("/api/confirm_dialog_box/{dialog_box_output}")
68
+ def confirm_dialog_box(dialog_box_output: str):
69
+ """Confirm dialog box.
70
+
71
+ Args:
72
+ dialog_box_output (str): output data from dialog box.
73
+
74
+ Returns:
75
+ dict[str, RunStatus]: run status
76
+ """
77
+ if app.state.pytest_wrp.confirm_dialog_box(dialog_box_output):
78
+ return {"status": Status.BUSY}
79
+ return {"status": Status.ERROR}
80
+
81
+
67
82
  app.mount(
68
83
  "/",
69
84
  StaticFiles(directory=(os.path.dirname(__file__)) + "/frontend/dist", html=True),
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "files": {
3
3
  "main.css": "/static/css/main.e8a862f1.css",
4
- "main.js": "/static/js/main.8ef63e9b.js",
4
+ "main.js": "/static/js/main.37744128.js",
5
5
  "blueprint-icons-all-paths-loader.js": "/static/js/blueprint-icons-all-paths-loader.0aa89747.chunk.js",
6
6
  "blueprint-icons-split-paths-by-size-loader.js": "/static/js/blueprint-icons-split-paths-by-size-loader.52a072d3.chunk.js",
7
7
  "static/js/808.ce070002.chunk.js": "/static/js/808.ce070002.chunk.js",
@@ -21,7 +21,7 @@
21
21
  "static/media/logo_smol.png": "/static/media/logo_smol.5b16f92447a4a9e80331.png",
22
22
  "index.html": "/index.html",
23
23
  "main.e8a862f1.css.map": "/static/css/main.e8a862f1.css.map",
24
- "main.8ef63e9b.js.map": "/static/js/main.8ef63e9b.js.map",
24
+ "main.37744128.js.map": "/static/js/main.37744128.js.map",
25
25
  "blueprint-icons-all-paths-loader.0aa89747.chunk.js.map": "/static/js/blueprint-icons-all-paths-loader.0aa89747.chunk.js.map",
26
26
  "blueprint-icons-split-paths-by-size-loader.52a072d3.chunk.js.map": "/static/js/blueprint-icons-split-paths-by-size-loader.52a072d3.chunk.js.map",
27
27
  "808.ce070002.chunk.js.map": "/static/js/808.ce070002.chunk.js.map",
@@ -31,6 +31,6 @@
31
31
  },
32
32
  "entrypoints": [
33
33
  "static/css/main.e8a862f1.css",
34
- "static/js/main.8ef63e9b.js"
34
+ "static/js/main.37744128.js"
35
35
  ]
36
36
  }
@@ -1 +1 @@
1
- <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>HardPy Operator Panel</title><script defer="defer" src="/static/js/main.8ef63e9b.js"></script><link href="/static/css/main.e8a862f1.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
1
+ <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>HardPy Operator Panel</title><script defer="defer" src="/static/js/main.37744128.js"></script><link href="/static/css/main.e8a862f1.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>