36 lines
1.5 KiB
Python
36 lines
1.5 KiB
Python
from sqlmodel import Session, SQLModel, create_engine
|
|
|
|
|
|
def test_safety_signature_ignores_identical_discovery_history(tmp_path):
|
|
from backend.app.db.models import DiscoveredContainer, DiscoveryRun
|
|
from backend.app.services import inventory_discovery, safety_center_service
|
|
|
|
engine = create_engine(f"sqlite:///{tmp_path / 'safety-signature.db'}")
|
|
SQLModel.metadata.create_all(engine)
|
|
|
|
with Session(engine) as session:
|
|
session.add(DiscoveryRun(id="disc-1", status="success", containers_found=1))
|
|
session.add(DiscoveredContainer(
|
|
id="dc-1", discovery_run_id="disc-1", container_id="container-1",
|
|
name="AppOps", image="appops:test", state="running", status="running",
|
|
import_status="managed", matched_app_id="appops",
|
|
))
|
|
session.commit()
|
|
inventory_discovery.invalidate_discovery_cache()
|
|
with Session(engine) as session:
|
|
first = safety_center_service._source_signature(session)
|
|
|
|
with Session(engine) as session:
|
|
session.add(DiscoveryRun(id="disc-2", status="success", containers_found=1))
|
|
session.add(DiscoveredContainer(
|
|
id="dc-2", discovery_run_id="disc-2", container_id="container-1",
|
|
name="AppOps", image="appops:test", state="running", status="running",
|
|
import_status="managed", matched_app_id="appops",
|
|
))
|
|
session.commit()
|
|
inventory_discovery.invalidate_discovery_cache()
|
|
with Session(engine) as session:
|
|
second = safety_center_service._source_signature(session)
|
|
|
|
assert second == first
|