def test_time_based_query(): events_1 = Event.query(start_after=300) events_2 = Event.query(start_before=300) events_3 = Event.query(start_after=200, start_before=400) self.assertTrue(events_1.count() * 10 == cnt_all * 4) self.assertTrue(events_2.count() * 10 == cnt_all * 6) self.assertTrue(events_3.count() * 10 == cnt_all * 4)
def test_query(self): all_event = Event.query() cnt_all = all_event.count() def test_time_based_query(): events_1 = Event.query(start_after=300) events_2 = Event.query(start_before=300) events_3 = Event.query(start_after=200, start_before=400) self.assertTrue(events_1.count() * 10 == cnt_all * 4) self.assertTrue(events_2.count() * 10 == cnt_all * 6) self.assertTrue(events_3.count() * 10 == cnt_all * 4) test_time_based_query() query_by_name = Event.query(name=self.names[0]) query_by_entity = Event.query(entity=self.entities[0]) self.assertTrue(query_by_name.count() == query_by_entity.count())
def get_events(): args = request.args name = args.get('name', None) entity = args.get('entity', None) tags = json.loads(args.get('tags', '{}')) state = args.get('state', None) start_before = args.get('startBefore', None) start_after = args.get('startAfter', None) limit = args.get('limit', 100) events = Event.query(name=name, entity=entity, tags=tags, state=state, start_before=start_before and int(start_before), start_after=start_after and int(start_after)) events = events.limit(limit).order_by('-start') return json.dumps(events.as_pymongo())