junitxml: add timezone to testsuite timestamp (#12491)

Signed-off-by: joseph-sentry <joseph.sawaya@sentry.io>
Co-authored-by: Ronny Pfannschmidt <opensource@ronnypfannschmidt.de>
This commit is contained in:
joseph-sentry 2024-06-27 08:41:02 -04:00 committed by GitHub
parent f74e947c1f
commit 0ed2d79457
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 10 additions and 4 deletions

View File

@ -213,6 +213,7 @@ Jordan Guymon
Jordan Moldow
Jordan Speicher
Joseph Hunkeler
Joseph Sawaya
Josh Karpel
Joshua Bronson
Jurko Gospodnetić

View File

@ -0,0 +1 @@
Added timezone information to the testsuite timestamp in the JUnit XML report.

View File

@ -11,6 +11,7 @@ https://github.com/jenkinsci/xunit-plugin/blob/master/src/main/resources/org/jen
from __future__ import annotations
from datetime import datetime
from datetime import timezone
import functools
import os
import platform
@ -664,7 +665,9 @@ class LogXML:
skipped=str(self.stats["skipped"]),
tests=str(numtests),
time=f"{suite_time_delta:.3f}",
timestamp=datetime.fromtimestamp(self.suite_start_time).isoformat(),
timestamp=datetime.fromtimestamp(self.suite_start_time, timezone.utc)
.astimezone()
.isoformat(),
hostname=platform.node(),
)
global_properties = self._get_global_properties_node()

View File

@ -2,6 +2,7 @@
from __future__ import annotations
from datetime import datetime
from datetime import timezone
import os
from pathlib import Path
import platform
@ -218,11 +219,11 @@ class TestPython:
pass
"""
)
start_time = datetime.now()
start_time = datetime.now(timezone.utc)
result, dom = run_and_parse(family=xunit_family)
node = dom.find_first_by_tag("testsuite")
timestamp = datetime.strptime(node["timestamp"], "%Y-%m-%dT%H:%M:%S.%f")
assert start_time <= timestamp < datetime.now()
timestamp = datetime.strptime(node["timestamp"], "%Y-%m-%dT%H:%M:%S.%f%z")
assert start_time <= timestamp < datetime.now(timezone.utc)
def test_timing_function(
self, pytester: Pytester, run_and_parse: RunAndParse, mock_timing