feat(mazenet): repo methods for topology/LAN/decky/edge/status events
Adds topology CRUD to BaseRepository (NotImplementedError defaults) and implements them in SQLModelRepository: create/get/list/delete topologies, add/update/list LANs and TopologyDeckies, add/list edges, plus an atomic update_topology_status that appends a TopologyStatusEvent in the same transaction. Cascade delete sweeps children before the topology row. Covered by tests/topology/test_repo.py (roundtrip, per-topology name uniqueness, status event log, cascade delete, status filter) and an extension to tests/test_base_repo.py for the NotImplementedError surface.
This commit is contained in:
@@ -88,6 +88,20 @@ async def test_base_repo_coverage():
|
||||
(dr.upsert_decky_shard, ({},)),
|
||||
(dr.list_decky_shards, ()),
|
||||
(dr.delete_decky_shards_for_host, ("u",)),
|
||||
(dr.create_topology, ({},)),
|
||||
(dr.get_topology, ("t",)),
|
||||
(dr.list_topologies, ()),
|
||||
(dr.update_topology_status, ("t", "active")),
|
||||
(dr.delete_topology_cascade, ("t",)),
|
||||
(dr.add_lan, ({},)),
|
||||
(dr.update_lan, ("l", {})),
|
||||
(dr.list_lans_for_topology, ("t",)),
|
||||
(dr.add_topology_decky, ({},)),
|
||||
(dr.update_topology_decky, ("d", {})),
|
||||
(dr.list_topology_deckies, ("t",)),
|
||||
(dr.add_topology_edge, ({},)),
|
||||
(dr.list_topology_edges, ("t",)),
|
||||
(dr.list_topology_status_events, ("t",)),
|
||||
]:
|
||||
with pytest.raises(NotImplementedError):
|
||||
await coro(*args)
|
||||
|
||||
Reference in New Issue
Block a user