feat(S5): pet rule CRUD query functions
This commit is contained in:
36
tests/unit/test_pet_rules_queries.py
Normal file
36
tests/unit/test_pet_rules_queries.py
Normal file
@@ -0,0 +1,36 @@
|
||||
import json
|
||||
import pytest
|
||||
from vigilar.storage.queries import (
|
||||
count_pet_rules, delete_pet_rule, get_all_enabled_rules,
|
||||
get_pet_rules, insert_pet_rule, update_pet_rule,
|
||||
)
|
||||
|
||||
def test_insert_and_get(test_db):
|
||||
rid = insert_pet_rule(test_db, "pet1", "Outdoor timer",
|
||||
json.dumps([{"type": "in_zone_longer_than", "zone": "EXTERIOR", "minutes": 45}]),
|
||||
"push_notify", "{pet_name} outside", 30, 0)
|
||||
assert rid > 0
|
||||
rules = get_pet_rules(test_db, "pet1")
|
||||
assert len(rules) == 1
|
||||
assert rules[0]["name"] == "Outdoor timer"
|
||||
|
||||
def test_get_all_enabled(test_db):
|
||||
insert_pet_rule(test_db, "pet1", "A", json.dumps([]), "push_notify", "", 30, 0)
|
||||
insert_pet_rule(test_db, "pet2", "B", json.dumps([]), "log_event", "", 60, 0)
|
||||
assert len(get_all_enabled_rules(test_db)) == 2
|
||||
|
||||
def test_update(test_db):
|
||||
rid = insert_pet_rule(test_db, "pet1", "Test", json.dumps([]), "push_notify", "", 30, 0)
|
||||
update_pet_rule(test_db, rid, name="Updated", cooldown_minutes=60)
|
||||
rules = get_pet_rules(test_db, "pet1")
|
||||
assert rules[0]["name"] == "Updated"
|
||||
|
||||
def test_delete(test_db):
|
||||
rid = insert_pet_rule(test_db, "pet1", "Test", json.dumps([]), "push_notify", "", 30, 0)
|
||||
delete_pet_rule(test_db, rid)
|
||||
assert len(get_pet_rules(test_db, "pet1")) == 0
|
||||
|
||||
def test_count(test_db):
|
||||
for i in range(5):
|
||||
insert_pet_rule(test_db, "pet1", f"Rule {i}", json.dumps([]), "push_notify", "", 30, i)
|
||||
assert count_pet_rules(test_db, "pet1") == 5
|
||||
Reference in New Issue
Block a user