test_daemon.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. """Tests for the daemon's transcription backlog warning."""
  2. import logging
  3. from stt_daemon.config import Config
  4. from stt_daemon.daemon import Daemon
  5. def _daemon(threshold=2, queue_size=10):
  6. cfg = Config()
  7. cfg.daemon.backlog_warn_at = threshold
  8. cfg.daemon.queue_size = queue_size
  9. return Daemon(cfg)
  10. def test_queue_size_comes_from_config():
  11. daemon = _daemon(queue_size=7)
  12. assert daemon.segment_queue.maxsize == 7
  13. def test_backlog_warning_is_edge_triggered(caplog):
  14. daemon = _daemon(threshold=2)
  15. with caplog.at_level(logging.WARNING, logger="stt_daemon"):
  16. daemon.segment_queue.put("a")
  17. daemon._check_backlog()
  18. assert "backlog" not in caplog.text.lower()
  19. daemon.segment_queue.put("b")
  20. daemon._check_backlog()
  21. assert caplog.text.lower().count("backlog") == 1
  22. daemon._check_backlog()
  23. assert caplog.text.lower().count("backlog") == 1
  24. daemon.segment_queue.get()
  25. daemon.segment_queue.get()
  26. daemon._check_backlog()
  27. assert daemon._backlog_warned is False
  28. daemon.segment_queue.put("c")
  29. daemon.segment_queue.put("d")
  30. daemon._check_backlog()
  31. assert caplog.text.lower().count("backlog") == 2