def create_notes(self): notes = [ Note.create(user=self.admin, message='admin'), Note.create(user=self.normal, message='normal'), ] self.admin_note, self.normal_note = notes return notes
def test_model_admin_index_pagination(self): users = self.create_users() notes = {} for user in users: notes[user] = [Note.create(user=user, message='test-%d' % i) for i in range(20)] with self.flask_app.test_client() as c: self.login(c) # test a simple lookup resp = c.get('/admin/note/?ordering=id') self.assertEqual(resp.status_code, 200) query = self.get_context('query') self.assertEqual(list(query.get_list()), notes[users[0]]) resp = c.get('/admin/note/?ordering=id&page=2') self.assertEqual(resp.status_code, 200) query = self.get_context('query') self.assertEqual(list(query.get_list()), notes[users[1]]) resp = c.get('/admin/note/?ordering=id&page=1&user=%d&user=%d' % (users[1].id, users[2].id)) self.assertEqual(resp.status_code, 200) query = self.get_context('query') self.assertEqual(list(query.get_list()), notes[users[1]]) resp = c.get('/admin/note/?ordering=id&page=2&user=%d&user=%d' % (users[1].id, users[2].id)) self.assertEqual(resp.status_code, 200) query = self.get_context('query') self.assertEqual(list(query.get_list()), notes[users[2]])
def get_users_and_notes(self): users = self.create_users() notes = [] for i in range(10): for user in users: notes.append(Note.create(user=user, message='%s-%s' % (user.username, i))) return users, notes
def test_model_admin_index_filters(self): users = self.create_users() notes = {} for user in users: notes[user] = [Note.create(user=user, message='test-%d' % i) for i in range(3)] with self.flask_app.test_client() as c: self.login(c) # test a simple lookup resp = c.get('/admin/user/?username=admin') self.assertEqual(resp.status_code, 200) self.assertContext('user', self.admin) self.assertContext('model_admin', admin._registry['user']) self.assertContext('ordering', '') self.assertContext('filters', [('username', 'admin')]) query = self.get_context('query') self.assertEqual(list(query.get_list()), [ self.admin, ]) # test a lookup using multiple values resp = c.get('/admin/user/?username=admin&username=normal&ordering=-username') self.assertEqual(resp.status_code, 200) self.assertContext('filters', [('username__in', ['admin', 'normal'])]) query = self.get_context('query') self.assertEqual(list(query.get_list()), [ self.normal, self.admin, ]) # test a lookup spanning a relation resp = c.get('/admin/note/?user=%d' % self.normal.id) self.assertEqual(resp.status_code, 200) self.assertContext('model_admin', admin._registry['note']) self.assertContext('filters', [('user', str(self.normal.id))]) query = self.get_context('query') self.assertEqual(list(query.get_list()), notes[self.normal])