@@ -173,7 +173,8 @@ def sample(
173
173
forced : Optional [int ] = None ,
174
174
fake_forced : bool = False ,
175
175
) -> int :
176
- data .start_example (SAMPLE_IN_SAMPLER_LABEL )
176
+ if self .observe :
177
+ data .start_example (SAMPLE_IN_SAMPLER_LABEL )
177
178
forced_choice = ( # pragma: no branch # https://github.com/nedbat/coveragepy/issues/1617
178
179
None
179
180
if forced is None
@@ -203,7 +204,8 @@ def sample(
203
204
fake_forced = fake_forced ,
204
205
observe = self .observe ,
205
206
)
206
- data .stop_example ()
207
+ if self .observe :
208
+ data .stop_example ()
207
209
if use_alternate :
208
210
assert forced is None or alternate == forced , (forced , alternate )
209
211
return alternate
@@ -254,15 +256,23 @@ def __init__(
254
256
self .rejected = False
255
257
self .observe = observe
256
258
259
+ def stop_example (self ):
260
+ if self .observe :
261
+ self .data .stop_example ()
262
+
263
+ def start_example (self , label ):
264
+ if self .observe :
265
+ self .data .start_example (label )
266
+
257
267
def more (self ) -> bool :
258
268
"""Should I draw another element to add to the collection?"""
259
269
if self .drawn :
260
- self .data . stop_example ()
270
+ self .stop_example ()
261
271
262
272
self .drawn = True
263
273
self .rejected = False
264
274
265
- self .data . start_example (ONE_FROM_MANY_LABEL )
275
+ self .start_example (ONE_FROM_MANY_LABEL )
266
276
if self .min_size == self .max_size :
267
277
# if we have to hit an exact size, draw unconditionally until that
268
278
# point, and no further.
@@ -291,7 +301,7 @@ def more(self) -> bool:
291
301
self .count += 1
292
302
return True
293
303
else :
294
- self .data . stop_example ()
304
+ self .stop_example ()
295
305
return False
296
306
297
307
def reject (self , why : Optional [str ] = None ) -> None :
0 commit comments