From 1c9f405ea95bf691afa00dba7f7fcfe2d55fbc39 Mon Sep 17 00:00:00 2001 From: Holger Frey Date: Fri, 17 Apr 2020 18:22:56 +0200 Subject: [PATCH] fixed tests for consumables --- ordr3/repo.py | 4 +++- ordr3/services.py | 6 +++--- ordr3/views/root.py | 4 ++-- tests/test_services.py | 6 ++++++ 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/ordr3/repo.py b/ordr3/repo.py index a009576..a0b7861 100644 --- a/ordr3/repo.py +++ b/ordr3/repo.py @@ -123,11 +123,13 @@ class SqlAlchemyRepository(AbstractOrderRepository): .all() ) - def list_consumables(self, limit_date, statuses): + def list_consumable_candidates(self, limit_date, statuses): + """ list orders that might be consumables """ return ( self.session.query(models.OrderItem) .filter(models.OrderItem.created_on > limit_date) .filter(models.OrderItem.status.in_(statuses)) + .order_by(models.OrderItem.created_on.desc()) .all() ) diff --git a/ordr3/services.py b/ordr3/services.py index a88fb9c..2cac71a 100644 --- a/ordr3/services.py +++ b/ordr3/services.py @@ -35,13 +35,13 @@ MSG_PWNED_PASSWORD = events.FlashMessage.warning( def find_consumables(repo, repeat=3, days=365 * 2): """ search for orders that are requested often """ unsorted = _find_consumables(repo, repeat, days) - return sorted(unsorted, key=lambda x: x.cas_description) + return sorted(unsorted, key=lambda o: o.cas_description) def _find_consumables(repo, repeat=3, days=365 * 2): """ helper function for find_consumables() implementation """ - limit_date = datetime.now() - timedelta(days=days) - relevant = repo.list_consumables(limit_date, CONSUMABLE_STATI) + limit_date = datetime.utcnow() - timedelta(days=days) + relevant = repo.list_consumable_candidates(limit_date, CONSUMABLE_STATI) counter = {} for order in relevant: item = counter.setdefault( diff --git a/ordr3/views/root.py b/ordr3/views/root.py index 47fa1de..9cc1d76 100644 --- a/ordr3/views/root.py +++ b/ordr3/views/root.py @@ -9,8 +9,8 @@ from pyramid.view import ( from pyramid.httpexceptions import HTTPFound -# @forbidden_view_config() -# @notfound_view_config() +@forbidden_view_config() +@notfound_view_config() @view_config( context="ordr3:resources.Root", permission="view", ) diff --git a/tests/test_services.py b/tests/test_services.py index cda6a46..46e4e25 100644 --- a/tests/test_services.py +++ b/tests/test_services.py @@ -30,6 +30,12 @@ class FakeOrderRepository(AbstractOrderRepository): """ list orders, sorted by descending creation date """ return sorted(self._orders, reverse=True, key=lambda x: x.created_on) + def list_consumable_candidates(self, limit_date, statuses): + """ list orders, sorted by descending creation date """ + newer_orders = (o for o in self._orders if o.created_on > limit_date) + valid_orders = (o for o in newer_orders if o.status in statuses) + return sorted(valid_orders, reverse=True, key=lambda x: x.created_on) + def add_user(self, user): """ add a user to the datastore """ self._users.add(user)