robotframework-events 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.
Files changed (28) hide show
  1. {robotframework_events-0.3.0/src/robotframework_events.egg-info → robotframework_events-0.4.0}/PKG-INFO +1 -1
  2. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/src/robotframework_events/__init__.py +1 -1
  3. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/src/robotframework_events/convert.py +1 -0
  4. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/src/robotframework_events/events-v1.schema.json +5 -1
  5. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/src/robotframework_events/events.py +1 -0
  6. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/src/robotframework_events/listener.py +2 -0
  7. {robotframework_events-0.3.0 → robotframework_events-0.4.0/src/robotframework_events.egg-info}/PKG-INFO +1 -1
  8. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/tests/test_events.py +11 -0
  9. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/LICENSE +0 -0
  10. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/README.md +0 -0
  11. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/pyproject.toml +0 -0
  12. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/setup.cfg +0 -0
  13. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/src/robotframework_events/__main__.py +0 -0
  14. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/src/robotframework_events/cli.py +0 -0
  15. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/src/robotframework_events/py.typed +0 -0
  16. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/src/robotframework_events/reader.py +0 -0
  17. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/src/robotframework_events/state.py +0 -0
  18. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/src/robotframework_events.egg-info/SOURCES.txt +0 -0
  19. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/src/robotframework_events.egg-info/dependency_links.txt +0 -0
  20. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/src/robotframework_events.egg-info/entry_points.txt +0 -0
  21. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/src/robotframework_events.egg-info/requires.txt +0 -0
  22. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/src/robotframework_events.egg-info/top_level.txt +0 -0
  23. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/tests/test_benchmark.py +0 -0
  24. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/tests/test_cli.py +0 -0
  25. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/tests/test_conformance.py +0 -0
  26. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/tests/test_model.py +0 -0
  27. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/tests/test_reader.py +0 -0
  28. {robotframework_events-0.3.0 → robotframework_events-0.4.0}/tests/test_state.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: robotframework-events
3
- Version: 0.3.0
3
+ Version: 0.4.0
4
4
  Summary: Robot Framework listener that writes execution events as JSON Lines
5
5
  Author: Tim de Groot
6
6
  License-Expression: MIT
@@ -27,4 +27,4 @@ __all__ = [
27
27
  "remove_callback",
28
28
  "schema",
29
29
  ]
30
- __version__ = "0.3.0"
30
+ __version__ = "0.4.0"
@@ -82,6 +82,7 @@ class _Converter:
82
82
  longname=suite.full_name,
83
83
  source=str(suite.source) if suite.source else None,
84
84
  tests=suite.test_count,
85
+ planned=[test.full_name for test in suite.all_tests] if parent is None else None,
85
86
  )
86
87
  counter = _Counter(id)
87
88
  if suite.has_setup:
@@ -74,7 +74,11 @@
74
74
  "name": { "type": "string" },
75
75
  "longname": { "type": "string" },
76
76
  "source": { "type": "string" },
77
- "tests": { "description": "Number of tests in the suite and its child suites.", "type": "integer", "minimum": 0 }
77
+ "tests": { "description": "Number of tests in the suite and its child suites.", "type": "integer", "minimum": 0 },
78
+ "planned": {
79
+ "description": "Top-level suite only: the full names of every test the run will execute, in run order.",
80
+ "$ref": "#/$defs/strings"
81
+ }
78
82
  }
79
83
  },
80
84
  "suite.ended": {
@@ -78,6 +78,7 @@ class SuiteStarted(Event):
78
78
  longname: str
79
79
  source: str | None = None
80
80
  tests: int
81
+ planned: list[str] | None = None
81
82
 
82
83
 
83
84
  @dataclass(slots=True, kw_only=True)
@@ -392,6 +392,8 @@ class Listener:
392
392
  longname=result.full_name,
393
393
  source=source,
394
394
  tests=data.test_count,
395
+ # the top-level suite lists every test the run will execute, for time estimates
396
+ planned=[test.full_name for test in data.all_tests] if not self._stack else None,
395
397
  )
396
398
  self._stack.append(_Frame(data.id, source, self._stack[-1] if self._stack else None))
397
399
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: robotframework-events
3
- Version: 0.3.0
3
+ Version: 0.4.0
4
4
  Summary: Robot Framework listener that writes execution events as JSON Lines
5
5
  Author: Tim de Groot
6
6
  License-Expression: MIT
@@ -22,6 +22,17 @@ def test_every_event_has_envelope_fields_and_gapless_seq(sample_events):
22
22
  assert all(e["v"] == 1 for e in sample_events)
23
23
 
24
24
 
25
+ def test_top_level_suite_lists_the_planned_tests(sample_events):
26
+ suites = by_type(sample_events, "suite.started")
27
+ assert suites[0]["planned"] == ["Sample.Passing With Structures", "Sample.Failing Test", "Sample.Skipped Test"]
28
+ assert all("planned" not in s for s in suites[1:])
29
+
30
+
31
+ def test_planned_tests_follow_the_selection(tmp_path: Path):
32
+ events, _ = run_with_listener(tmp_path, [DATA / "sample.robot"], test=["Failing Test"])
33
+ assert by_type(events, "suite.started")[0]["planned"] == ["Sample.Failing Test"]
34
+
35
+
25
36
  def test_run_events_frame_the_stream(sample_events):
26
37
  assert sample_events[0]["type"] == "run.started"
27
38
  assert sample_events[0]["run"]