11import concurrent .futures
22import io
3+ import json
34import logging
45import random
56from datetime import datetime , timedelta
6- from typing import BinaryIO
77from functools import partial
8+ from typing import BinaryIO
89
910from src .testsolar_testtool_sdk .model .load import LoadResult , LoadError
1011from src .testsolar_testtool_sdk .model .test import TestCase
2223logger .setLevel (logging .DEBUG )
2324
2425
25- def _format_datetime (t : datetime ) -> str :
26- return t .strftime ("%Y-%m-%dT%H:%M:%S.%f" )[:- 3 ] + "Z"
27-
28-
2926def generate_demo_load_result () -> LoadResult :
3027 r : LoadResult = LoadResult (Tests = [], LoadErrors = [])
3128
@@ -62,8 +59,8 @@ def generate_test_result(index: int) -> TestResult:
6259 start : datetime = datetime .utcnow () - timedelta (seconds = 40 )
6360 _tr = TestResult (
6461 Test = TestCase (Name = f"mumu/mu.py/test_case_name_{ index } _p1" , Attributes = {}),
65- StartTime = _format_datetime ( start ) ,
66- EndTime = _format_datetime ( datetime .utcnow () ),
62+ StartTime = start ,
63+ EndTime = datetime .utcnow (),
6764 ResultType = ResultType .SUCCEED ,
6865 Message = "ファイルが見つかりません。ファイルパスを確認して、もう一度試してください。" ,
6966 Steps = [generate_testcase_step (f"{ index } _{ x } " ) for x in range (10 )],
@@ -76,7 +73,7 @@ def generate_testcase_log(index: str) -> TestCaseLog:
7673 start : datetime = datetime .utcnow () - timedelta (seconds = 15 )
7774
7875 return TestCaseLog (
79- Time = _format_datetime ( start ) ,
76+ Time = start ,
8077 Level = LogLevel .INFO ,
8178 Attachments = [
8279 # Attachment(
@@ -95,8 +92,8 @@ def generate_testcase_log(index: str) -> TestCaseLog:
9592def generate_testcase_step (index : str ) -> TestCaseStep :
9693 start : datetime = datetime .utcnow () - timedelta (seconds = 10 )
9794 return TestCaseStep (
98- StartTime = _format_datetime ( start ) ,
99- EndTime = _format_datetime ( datetime .utcnow () ),
95+ StartTime = start ,
96+ EndTime = datetime .utcnow (),
10097 Title = get_random_unicode (100 ),
10198 Logs = [generate_testcase_log (f"{ index } _{ x } " ) for x in range (100 )],
10299 )
@@ -156,6 +153,19 @@ def send_test_result(pipe_io: BinaryIO):
156153 reporter .report_run_case_result (run_case_result )
157154
158155
156+ def test_datetime_formatted ():
157+ run_case_result = generate_test_result (0 )
158+ data = run_case_result .model_dump_json (by_alias = True , indent = 2 )
159+ tr = json .loads (data )
160+ assert tr ['StartTime' ].endswith ("Z" )
161+ assert tr ['EndTime' ].endswith ("Z" )
162+
163+ assert tr ['Steps' ][0 ]['StartTime' ].endswith ("Z" )
164+ assert tr ['Steps' ][0 ]['EndTime' ].endswith ("Z" )
165+
166+ assert tr ['Steps' ][0 ]['Logs' ][0 ]['Time' ].endswith ("Z" )
167+
168+
159169def test_report_run_case_result ():
160170 # 创建一个Reporter实例
161171 pipe_io = io .BytesIO ()
0 commit comments