From cbabd5da3cc5b4d3166245b16eb8ab1c47dd4d82 Mon Sep 17 00:00:00 2001 From: Jack Case Date: Wed, 26 Nov 2025 21:43:18 +0000 Subject: [PATCH] testing top offenders query --- slopserver/db.py | 9 ++++++--- slopserver/test/test_db.py | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/slopserver/db.py b/slopserver/db.py index d9d3aef..9aded74 100644 --- a/slopserver/db.py +++ b/slopserver/db.py @@ -12,9 +12,12 @@ def select_slop(urls: list[ParseResult], engine: Engine) -> Iterable[Domain]: rows = session.scalars(query).all() return rows -def top_offenders(limit: int|None = None, engine: Engine) -> Iterable[Domain]: - query = select(Domain).join(Path).group_by(Domain.id).order_by(func.count(Path.id).desc()) - top_offenders +def top_offenders(engine: Engine, limit: int|None = None) -> Iterable[Domain]: + query = select(Domain.domain_name, func.count(Path.id)).join(Path).group_by(Domain.id).order_by(func.count(Path.id).desc()) + if limit: query = query.limit(limit) + with Session(engine) as session: + top_offenders = session.execute(query).all() + return top_offenders def insert_slop(urls: list[ParseResult], engine: Engine, user: User | None = None): domain_dict: dict[str. set[str]] = dict() diff --git a/slopserver/test/test_db.py b/slopserver/test/test_db.py index 60a5a2d..034abd1 100644 --- a/slopserver/test/test_db.py +++ b/slopserver/test/test_db.py @@ -7,9 +7,12 @@ import unittest class TestDBFuncs(unittest.TestCase): test_db_url = settings.db_url - engine = None def setUp(self): - engine = create_engine(self.test_db_url) + self.engine = create_engine(self.test_db_url) + + def test_get_top_offenders(self): + items = top_offenders(self.engine) + print(items) + self.assertEqual(items[0][0], "moogle.com") - \ No newline at end of file