pytest-plugins 0.3.9__tar.gz → 0.4.1__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.
- {pytest_plugins-0.3.9/pytest_plugins.egg-info → pytest_plugins-0.4.1}/PKG-INFO +1 -1
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/pytest_plugins/better_report.py +25 -21
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1/pytest_plugins.egg-info}/PKG-INFO +1 -1
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/setup.py +1 -1
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/LICENSE +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/MANIFEST.in +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/README.md +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/pyproject.toml +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/pytest_plugins/__init__.py +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/pytest_plugins/add_config_parameters.py +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/pytest_plugins/fail2skip.py +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/pytest_plugins/max_fail_streak.py +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/pytest_plugins/models/__init__.py +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/pytest_plugins/models/base_class_test.py +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/pytest_plugins/models/environment_data.py +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/pytest_plugins/models/execution_data.py +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/pytest_plugins/models/status.py +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/pytest_plugins/models/test_data.py +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/pytest_plugins/utils/__init__.py +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/pytest_plugins/utils/create_report.py +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/pytest_plugins/utils/helper.py +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/pytest_plugins/utils/pytest_helper.py +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/pytest_plugins/verbose_param_ids.py +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/pytest_plugins.egg-info/SOURCES.txt +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/pytest_plugins.egg-info/dependency_links.txt +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/pytest_plugins.egg-info/entry_points.txt +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/pytest_plugins.egg-info/requires.txt +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/pytest_plugins.egg-info/top_level.txt +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/requirements.txt +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/setup.cfg +0 -0
- {pytest_plugins-0.3.9 → pytest_plugins-0.4.1}/tests/test_dummy.py +0 -0
|
@@ -162,7 +162,7 @@ def pytest_collection_modifyitems(config: Config, items: list[Function]) -> None
|
|
|
162
162
|
test_parameters=item.callspec.params if getattr(item, 'callspec', None) else None,
|
|
163
163
|
test_markers=[marker.name for marker in item.iter_markers() if not marker.args],
|
|
164
164
|
test_status=ExecutionStatus.COLLECTED,
|
|
165
|
-
test_start_time=
|
|
165
|
+
test_start_time=None,
|
|
166
166
|
run_index=len(test_results) + 1
|
|
167
167
|
)
|
|
168
168
|
if getattr(item, 'callspec', None) and config.getoption('--add-parameters'):
|
|
@@ -211,28 +211,12 @@ def session_setup_teardown(request: FixtureRequest) -> Generator[None, Any, None
|
|
|
211
211
|
logger.info("Better report: Execution results saved")
|
|
212
212
|
|
|
213
213
|
|
|
214
|
-
def pytest_runtest_teardown(item: Function) -> None:
|
|
215
|
-
if not getattr(item.config, '_better_report_enabled', None):
|
|
216
|
-
return
|
|
217
|
-
|
|
218
|
-
test_full_name = get_test_full_name(item=item)
|
|
219
|
-
test_item = test_results[test_full_name]
|
|
220
|
-
if not test_item:
|
|
221
|
-
logger.warning(f"Test {test_full_name} missing in test_results during teardown")
|
|
222
|
-
return
|
|
223
|
-
|
|
224
|
-
test_item.test_end_time = datetime.now(timezone.utc).isoformat()
|
|
225
|
-
if test_item.test_start_time: # Add test duration only if start time is set
|
|
226
|
-
try:
|
|
227
|
-
start_obj = datetime.fromisoformat(test_item.test_start_time)
|
|
228
|
-
end_obj = datetime.fromisoformat(test_item.test_end_time)
|
|
229
|
-
test_item.test_duration_sec = (end_obj - start_obj).total_seconds()
|
|
230
|
-
except Exception as e:
|
|
231
|
-
logger.error(f"Error computing test duration for {test_full_name}: {e}")
|
|
232
|
-
|
|
233
|
-
|
|
234
214
|
@pytest.hookimpl(hookwrapper=True, tryfirst=True)
|
|
235
215
|
def pytest_runtest_makereport(item: Function, call: Any) -> Generator[None, Any, None]:
|
|
216
|
+
if call.when == "setup":
|
|
217
|
+
test_full_name = get_test_full_name(item=item)
|
|
218
|
+
test_results[test_full_name].test_start_time = datetime.now(timezone.utc).isoformat()
|
|
219
|
+
|
|
236
220
|
outcome = yield
|
|
237
221
|
report = outcome.get_result()
|
|
238
222
|
|
|
@@ -270,6 +254,26 @@ def pytest_runtest_makereport(item: Function, call: Any) -> Generator[None, Any,
|
|
|
270
254
|
else:
|
|
271
255
|
test_item.exception_message = None
|
|
272
256
|
|
|
257
|
+
|
|
258
|
+
def pytest_runtest_teardown(item: Function) -> None:
|
|
259
|
+
if not getattr(item.config, '_better_report_enabled', None):
|
|
260
|
+
return
|
|
261
|
+
|
|
262
|
+
test_full_name = get_test_full_name(item=item)
|
|
263
|
+
test_item = test_results[test_full_name]
|
|
264
|
+
if not test_item:
|
|
265
|
+
logger.warning(f"Test {test_full_name} missing in test_results during teardown")
|
|
266
|
+
return
|
|
267
|
+
|
|
268
|
+
test_item.test_end_time = datetime.now(timezone.utc).isoformat()
|
|
269
|
+
if test_item.test_start_time: # Add test duration only if start time is set
|
|
270
|
+
try:
|
|
271
|
+
start_obj = datetime.fromisoformat(test_item.test_start_time)
|
|
272
|
+
end_obj = datetime.fromisoformat(test_item.test_end_time)
|
|
273
|
+
test_item.test_duration_sec = (end_obj - start_obj).total_seconds()
|
|
274
|
+
except Exception as e:
|
|
275
|
+
logger.error(f"Error computing test duration for {test_full_name}: {e}")
|
|
276
|
+
|
|
273
277
|
log_test_results(item=item, test_results=test_results)
|
|
274
278
|
|
|
275
279
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|