@@ -786,7 +786,6 @@ def __init__(self, stuff, test, settings, random, wrapped_test):
786
786
self .explain_traces = defaultdict (set )
787
787
self ._start_timestamp = time .time ()
788
788
self ._string_repr = ""
789
- self ._jsonable_arguments = {}
790
789
self ._timing_features = {}
791
790
792
791
@property
@@ -913,7 +912,7 @@ def run(data):
913
912
),
914
913
)
915
914
self ._string_repr = printer .getvalue ()
916
- self . _jsonable_arguments = {
915
+ data . _observability_arguments = {
917
916
** dict (enumerate (map (to_jsonable , args ))),
918
917
** {k : to_jsonable (v ) for k , v in kwargs .items ()},
919
918
}
@@ -1085,19 +1084,23 @@ def _execute_once_for_engine(self, data: ConjectureData) -> None:
1085
1084
# Conditional here so we can save some time constructing the payload; in
1086
1085
# other cases (without coverage) it's cheap enough to do that regardless.
1087
1086
if TESTCASE_CALLBACKS :
1088
- if self .failed_normally or self .failed_due_to_deadline :
1089
- phase = "shrink"
1090
- elif runner := getattr (self , "_runner" , None ):
1087
+ if runner := getattr (self , "_runner" , None ):
1091
1088
phase = runner ._current_phase
1089
+ elif self .failed_normally or self .failed_due_to_deadline :
1090
+ phase = "shrink"
1092
1091
else : # pragma: no cover # in case of messing with internals
1093
1092
phase = "unknown"
1093
+ backend_desc = f", using backend={ self .settings .backend !r} " * (
1094
+ self .settings .backend != "hypothesis"
1095
+ and not getattr (runner , "_switch_to_hypothesis_provider" , False )
1096
+ )
1094
1097
tc = make_testcase (
1095
1098
start_timestamp = self ._start_timestamp ,
1096
1099
test_name_or_nodeid = self .test_identifier ,
1097
1100
data = data ,
1098
- how_generated = f"generated during { phase } phase" ,
1101
+ how_generated = f"during { phase } phase{ backend_desc } " ,
1099
1102
string_repr = self ._string_repr ,
1100
- arguments = { ** self . _jsonable_arguments , ** data ._observability_args } ,
1103
+ arguments = data ._observability_args ,
1101
1104
timing = self ._timing_features ,
1102
1105
coverage = tractable_coverage_report (trace ) or None ,
1103
1106
phase = phase ,
@@ -1217,7 +1220,7 @@ def run_engine(self):
1217
1220
"status" : "passed" if sys .exc_info ()[0 ] else "failed" ,
1218
1221
"status_reason" : str (origin or "unexpected/flaky pass" ),
1219
1222
"representation" : self ._string_repr ,
1220
- "arguments" : self . _jsonable_arguments ,
1223
+ "arguments" : ran_example . _observability_args ,
1221
1224
"how_generated" : "minimal failing example" ,
1222
1225
"features" : {
1223
1226
** {
0 commit comments