MCPcopy Create free account
hub / github.com/microsoft/debugpy / test_unobserved

Function test_unobserved

tests/tests/test_timeline.py:455–513  ·  view source on GitHub ↗
(make_timeline, daemon)

Source from the content-addressed store, hash-verified

453
454@pytest.mark.timeout(3)
455def test_unobserved(make_timeline, daemon):
456 timeline, initial_history = make_timeline()
457
458 worker_can_proceed = threading.Event()
459
460 @daemon
461 def worker():
462 messages = MessageFactory()
463
464 worker_can_proceed.wait()
465 worker_can_proceed.clear()
466 timeline.record_event(messages.event("dum", {}))
467 log.debug("dum")
468
469 worker_can_proceed.wait()
470 timeline.record_event(messages.event("dee", {}))
471 log.debug("dee")
472
473 timeline.record_event(messages.event("dum", {}))
474 log.debug("dum")
475
476 timeline.freeze()
477 assert timeline.is_frozen
478
479 timeline.proceed()
480 assert not timeline.is_frozen
481 worker_can_proceed.set()
482
483 dum = timeline.wait_for_next(Event("dum"))
484 assert timeline.is_frozen
485 assert dum.observed
486
487 # Should be fine since we observed 'dum' by waiting for it.
488 timeline.proceed()
489 assert not timeline.is_frozen
490
491 worker_can_proceed.set()
492 worker.join()
493
494 dum2 = timeline.wait_for_next(Event("dum"), freeze=False)
495 assert not timeline.is_frozen
496 assert dum2.observed
497
498 timeline.wait_until_realized(Event("dum") >> Event("dum"), freeze=True)
499 assert timeline.is_frozen
500
501 dee = dum.next
502 assert not dee.observed
503
504 # Should complain since 'dee' is unobserved.
505 with pytest.raises(Exception):
506 timeline.proceed()
507
508 # Observe it!
509 timeline.expect_realized(Event("dee"))
510 assert dee.observed
511
512 # Should be good now.

Callers

nothing calls this directly

Calls 8

EventFunction · 0.90
make_timelineFunction · 0.85
freezeMethod · 0.80
proceedMethod · 0.80
wait_for_nextMethod · 0.80
expect_realizedMethod · 0.80
joinMethod · 0.45
wait_until_realizedMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…