robotframework-parallelrunner 0.3.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.
- {robotframework_parallelrunner-0.3.0 → robotframework_parallelrunner-0.4.0}/PKG-INFO +8 -6
- {robotframework_parallelrunner-0.3.0 → robotframework_parallelrunner-0.4.0}/README.md +7 -5
- {robotframework_parallelrunner-0.3.0 → robotframework_parallelrunner-0.4.0}/pyproject.toml +1 -1
- {robotframework_parallelrunner-0.3.0 → robotframework_parallelrunner-0.4.0}/src/ParallelRunner/__init__.py +2 -2
- robotframework_parallelrunner-0.4.0/src/ParallelRunner/parallel_library.py +854 -0
- robotframework_parallelrunner-0.3.0/src/ParallelRunner/parallel_library.py +0 -387
- {robotframework_parallelrunner-0.3.0 → robotframework_parallelrunner-0.4.0}/LICENSE +0 -0
- {robotframework_parallelrunner-0.3.0 → robotframework_parallelrunner-0.4.0}/src/ParallelRunner/py.typed +0 -0
- {robotframework_parallelrunner-0.3.0 → robotframework_parallelrunner-0.4.0}/src/ParallelRunner/version.py +0 -0
- {robotframework_parallelrunner-0.3.0 → robotframework_parallelrunner-0.4.0}/src/parallelrunner.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: robotframework-parallelrunner
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Run a keyword in parallel inside a single Robot Framework test case, with one clean, ordered log.html.
|
|
5
5
|
License-Expression: MIT
|
|
6
6
|
License-File: LICENSE
|
|
@@ -155,7 +155,7 @@ Concretely:
|
|
|
155
155
|
that needs to do the same kind of work many times (loop over a list of IDs,
|
|
156
156
|
or repeat something N times) — how do I parallelize the body of that loop
|
|
157
157
|
without corrupting the log or needing to merge anything?" It uses a
|
|
158
|
-
|
|
158
|
+
pool of threads inside a single process, and produces one
|
|
159
159
|
already-merged, already-ordered log for that test case.
|
|
160
160
|
- Because ParallelRunner uses **threads**, not processes, it shares memory and
|
|
161
161
|
is subject to the GIL — it is a good fit for **I/O-bound** work (network
|
|
@@ -230,9 +230,11 @@ Things to keep in mind:
|
|
|
230
230
|
made thread-safe for you; your own keyword's side effects are not. If it
|
|
231
231
|
writes to a shared variable, file, or object without a lock, running it
|
|
232
232
|
concurrently can race the same way any multi-threaded code can.
|
|
233
|
-
- **You need per-item retries
|
|
234
|
-
[ROADMAP.md](https://github.com/cristiangarciavd/robotframework-parallelrunner/blob/main/ROADMAP.md))
|
|
235
|
-
|
|
233
|
+
- **You need per-item retries.** Not implemented yet (see
|
|
234
|
+
[ROADMAP.md](https://github.com/cristiangarciavd/robotframework-parallelrunner/blob/main/ROADMAP.md)). A per-call limit is: `call_timeout=10s` fails
|
|
235
|
+
only the call that hangs and lets the others finish. Note that a timed-out
|
|
236
|
+
call can't be killed - it keeps running in the background unless the
|
|
237
|
+
keyword declares `_cancelled` and stops when it is set.
|
|
236
238
|
- **You need process-level isolation** (a crash in one call shouldn't be
|
|
237
239
|
able to affect another) or cross-machine parallelism — that's pabot's
|
|
238
240
|
domain, not this library's.
|
|
@@ -242,7 +244,7 @@ Things to keep in mind:
|
|
|
242
244
|
```
|
|
243
245
|
robotframework-parallelrunner/
|
|
244
246
|
├── src/ParallelRunner/ # The installable library (do not depend on internals prefixed with `_`)
|
|
245
|
-
├── examples/ # Example libraries used by the tests, plus the pabot
|
|
247
|
+
├── examples/ # Example libraries used by the tests, plus the pabot and log levels demos
|
|
246
248
|
├── atest/ # Robot Framework acceptance suites
|
|
247
249
|
├── utest/ # pytest unit tests
|
|
248
250
|
├── docs/ # INSTALLATION, QUICKSTART, API_REFERENCE, generated keyword docs
|
|
@@ -121,7 +121,7 @@ Concretely:
|
|
|
121
121
|
that needs to do the same kind of work many times (loop over a list of IDs,
|
|
122
122
|
or repeat something N times) — how do I parallelize the body of that loop
|
|
123
123
|
without corrupting the log or needing to merge anything?" It uses a
|
|
124
|
-
|
|
124
|
+
pool of threads inside a single process, and produces one
|
|
125
125
|
already-merged, already-ordered log for that test case.
|
|
126
126
|
- Because ParallelRunner uses **threads**, not processes, it shares memory and
|
|
127
127
|
is subject to the GIL — it is a good fit for **I/O-bound** work (network
|
|
@@ -196,9 +196,11 @@ Things to keep in mind:
|
|
|
196
196
|
made thread-safe for you; your own keyword's side effects are not. If it
|
|
197
197
|
writes to a shared variable, file, or object without a lock, running it
|
|
198
198
|
concurrently can race the same way any multi-threaded code can.
|
|
199
|
-
- **You need per-item retries
|
|
200
|
-
[ROADMAP.md](https://github.com/cristiangarciavd/robotframework-parallelrunner/blob/main/ROADMAP.md))
|
|
201
|
-
|
|
199
|
+
- **You need per-item retries.** Not implemented yet (see
|
|
200
|
+
[ROADMAP.md](https://github.com/cristiangarciavd/robotframework-parallelrunner/blob/main/ROADMAP.md)). A per-call limit is: `call_timeout=10s` fails
|
|
201
|
+
only the call that hangs and lets the others finish. Note that a timed-out
|
|
202
|
+
call can't be killed - it keeps running in the background unless the
|
|
203
|
+
keyword declares `_cancelled` and stops when it is set.
|
|
202
204
|
- **You need process-level isolation** (a crash in one call shouldn't be
|
|
203
205
|
able to affect another) or cross-machine parallelism — that's pabot's
|
|
204
206
|
domain, not this library's.
|
|
@@ -208,7 +210,7 @@ Things to keep in mind:
|
|
|
208
210
|
```
|
|
209
211
|
robotframework-parallelrunner/
|
|
210
212
|
├── src/ParallelRunner/ # The installable library (do not depend on internals prefixed with `_`)
|
|
211
|
-
├── examples/ # Example libraries used by the tests, plus the pabot
|
|
213
|
+
├── examples/ # Example libraries used by the tests, plus the pabot and log levels demos
|
|
212
214
|
├── atest/ # Robot Framework acceptance suites
|
|
213
215
|
├── utest/ # pytest unit tests
|
|
214
216
|
├── docs/ # INSTALLATION, QUICKSTART, API_REFERENCE, generated keyword docs
|
|
@@ -6,7 +6,7 @@ build-backend = "poetry.core.masonry.api"
|
|
|
6
6
|
name = "robotframework-parallelrunner"
|
|
7
7
|
# Single source of truth for the version: bump with `poetry version patch|minor|major`.
|
|
8
8
|
# ParallelRunner.__version__ / ROBOT_LIBRARY_VERSION read it back from the installed metadata.
|
|
9
|
-
version = "0.
|
|
9
|
+
version = "0.4.0"
|
|
10
10
|
description = "Run a keyword in parallel inside a single Robot Framework test case, with one clean, ordered log.html."
|
|
11
11
|
readme = "README.md"
|
|
12
12
|
license = "MIT"
|
|
@@ -13,7 +13,7 @@ Keyword documentation:
|
|
|
13
13
|
https://cristiangarciavd.github.io/robotframework-parallelrunner/ParallelRunner.html
|
|
14
14
|
"""
|
|
15
15
|
|
|
16
|
-
from .parallel_library import ParallelLibrary, ParallelRunner, ParallelTaskError
|
|
16
|
+
from .parallel_library import ParallelLibrary, ParallelRunner, ParallelTaskError, log_to_robot
|
|
17
17
|
from .version import __version__
|
|
18
18
|
|
|
19
|
-
__all__ = ["ParallelRunner", "ParallelLibrary", "ParallelTaskError", "__version__"]
|
|
19
|
+
__all__ = ["ParallelRunner", "ParallelLibrary", "ParallelTaskError", "log_to_robot", "__version__"]
|