def test_count(self, m_connection): """Tests counting number of results.""" data = FakeRecords() data.append({'total': 13}) data = [data] m_connection.return_value = FakeConnection(data) q = Query('Environment') self.assertEquals(q.count(), 13)
def search(self, request): """Search objects by type, identity, and property filters.""" search = SearchSerializer(data=request.data) if not search.is_valid(): raise ValidationError(search.errors) vd = search.validated_data query = Query(vd.get('model')) \ .identity(vd.get('identity')) \ .time(vd.get('time')) for f in vd.get('filters', []): query.filter(f['prop'], f['operator'], f['value'], label=f['model']) for o in vd.get('orders', []): query.orderby(o['prop'], o['direction'], label=o['model']) count = query.count() records = query.page(page=vd['page'], pagesize=vd['pagesize'], index=vd.get('index')) serializer = GenericSerializer({ 'query': str(query), 'data': vd, 'params': query.params, 'count': count, 'pagesize': vd['pagesize'], 'page': vd['page'], 'records': records }) return Response(serializer.data)