test_db.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. from __future__ import print_function
  2. import tempfile
  3. import os
  4. from gevent import monkey
  5. monkey.patch_all(subprocess=True)
  6. import pytest
  7. from larigira.event import EventModel
  8. @pytest.yield_fixture
  9. def db():
  10. fname = tempfile.mktemp(suffix='.json', prefix='larigira-test')
  11. yield EventModel(uri=fname)
  12. os.unlink(fname)
  13. def test_empty(db):
  14. assert len(db.get_all_alarms()) == 0
  15. def test_add_basic(db):
  16. assert len(db.get_all_alarms()) == 0
  17. alarm_id = db.add_event(dict(kind='frequency', interval=60*3, start=1),
  18. [dict(kind='mpd', paths=['foo.mp3'], howmany=1)])
  19. assert len(db.get_all_alarms()) == 1
  20. assert db.get_alarm_by_id(alarm_id) is not None
  21. assert len(tuple(db.get_actions_by_alarm(
  22. db.get_alarm_by_id(alarm_id)))) == 1
  23. def test_add_multiple_alarms(db):
  24. assert len(db.get_all_alarms()) == 0
  25. alarm_id = db.add_event(dict(kind='frequency', interval=60*3, start=1),
  26. [dict(kind='mpd', paths=['foo.mp3'], howmany=1),
  27. dict(kind='foo', a=3)])
  28. assert len(db.get_all_alarms()) == 1
  29. assert db.get_alarm_by_id(alarm_id) is not None
  30. assert len(db.actions.all()) == 2
  31. assert len(tuple(db.get_actions_by_alarm(
  32. db.get_alarm_by_id(alarm_id)))) == 2