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