diff --git a/backend/app/services/advanced_metrics_service.py b/backend/app/services/advanced_metrics_service.py index 40a669b..31bb2f4 100644 --- a/backend/app/services/advanced_metrics_service.py +++ b/backend/app/services/advanced_metrics_service.py @@ -51,13 +51,17 @@ def get_coverage_by_tactic(db: Session) -> list[dict]: def get_never_tested_techniques(db: Session) -> list[dict]: """Techniques that have never had a test created.""" - tested_technique_ids = db.query(Test.technique_id).distinct().subquery() - techniques = ( - db.query(Technique) - .filter(~Technique.id.in_(db.query(tested_technique_ids))) - .order_by(Technique.mitre_id) + tested_ids = [ + row[0] + for row in db.query(Test.technique_id) + .filter(Test.technique_id.isnot(None)) + .distinct() .all() - ) + ] + query = db.query(Technique) + if tested_ids: + query = query.filter(~Technique.id.in_(tested_ids)) + techniques = query.order_by(Technique.mitre_id).all() return [ { "mitre_id": t.mitre_id,