def __init__(self, request, db): """Extract filters etc. information from http request.""" self.db = db self.sort = sort_from_request(request) self.pg = pagination_from_request(request) self.ss = samples_selection_from_request(request, db) self.fc = variant_filters_from_request(request, db, self.ss) self.stats = stats_service(db)
def test_pagination_from_request(self): """Offsetting by N, then taking the first M should return M elements, the first of which should be the Nth of the original list.""" N = 10; M = 30 request = self.rf.get('', {'offset':str(N), 'limit':str(M)}) pagination = pagination_from_request(request) var = list(pagination.paginate(self.variants)) self.assertEqual(len(var), M) self.assertEqual(var[0].variant_id, self.variants[N].variant_id)
def test_pagination_from_request(self): """Offsetting by N, then taking the first M should return M elements, the first of which should be the Nth of the original list.""" N = 10 M = 30 request = self.rf.get('', {'offset': str(N), 'limit': str(M)}) pagination = pagination_from_request(request) var = list(pagination.paginate(self.variants)) self.assertEqual(len(var), M) self.assertEqual(var[0].variant_id, self.variants[N].variant_id)
def test_pagination_from_request_offset(self): """If no limit argument is passed, lim shall be set to None""" request = self.rf.get('/', {'offset': '30'}) pagination = pagination_from_request(request) self.assertEqual(pagination.lim, None) self.assertEqual(pagination.off, 30)
def test_pagination_from_request_limit(self): """Default offset shall be 0""" request = self.rf.get('/', {'limit': '10'}) pagination = pagination_from_request(request) self.assertEqual(pagination.off, 0)
def test_pagination_from_request_fullparams(self): """Both lim+offset are passed""" request = self.rf.get('/', {'limit': '10', 'offset': 30}) pagination = pagination_from_request(request) self.assertEqual(pagination.off, 30) self.assertEqual(pagination.lim, 10)
def test_pagination_from_request_offset(self): """If no limit argument is passed, lim shall be set to None""" request = self.rf.get('/', {'offset':'30'}) pagination = pagination_from_request(request) self.assertEqual(pagination.lim, None) self.assertEqual(pagination.off, 30)
def test_pagination_from_request_limit(self): """Default offset shall be 0""" request = self.rf.get('/', {'limit':'10'}) pagination = pagination_from_request(request) self.assertEqual(pagination.off, 0)
def test_pagination_from_request_fullparams(self): """Both lim+offset are passed""" request = self.rf.get('/', {'limit':'10', 'offset':30}) pagination = pagination_from_request(request) self.assertEqual(pagination.off, 30) self.assertEqual(pagination.lim, 10)