def test_success(self): with user_grant_permission(self.user, ['auth.change_user', 'auth.adminactions_export_user']): res = self.app.get('/', user='******') res = res.click('Users') form = res.forms['changelist-form'] form['action'] = self.action_name #form.set('_selected_action', True, 0) #form.set('_selected_action', True, 1) #form.set('_selected_action', True, 2) self._select_rows(form) res = form.submit() #res.showbrowser() res.form['header'] = 1 res.form['columns'] = ['id', 'username', 'first_name' ''] res = res.form.submit('apply') io = StringIO.StringIO(res.body) io.seek(0) w = xlrd.open_workbook(file_contents=io.read()) sheet = w.sheet_by_index(0) self.assertEquals(sheet.cell_value(0, 0), u'#') self.assertEquals(sheet.cell_value(0, 1), u'ID') self.assertEquals(sheet.cell_value(0, 2), u'username') self.assertEquals(sheet.cell_value(0, 3), u'first name') self.assertEquals(sheet.cell_value(1, 1), 1.0) self.assertEquals(sheet.cell_value(1, 2), u'sax') self.assertEquals(sheet.cell_value(2, 2), u'user')
def test_swap(self): with user_grant_permission(self.user, ['auth.change_user', 'auth.adminactions_merge_user']): #removed = User.objects.get(pk=self._selected_rows[0]) #preserved = User.objects.get(pk=self._selected_rows[1]) res = self.app.get('/', user='******') res = res.click('Users') form = res.forms['changelist-form'] form['action'] = 'merge' self._select_rows(form, [1, 2]) res = form.submit() removed = User.objects.get(pk=self._selected_values[0]) preserved = User.objects.get(pk=self._selected_values[1]) # steps = 2: res.form['master_pk'] = self._selected_values[1] res.form['other_pk'] = self._selected_values[0] res.form['username'] = res.form['form-0-username'].value res.form['email'] = res.form['form-0-email'].value res.form['last_login'] = res.form['form-1-last_login'].value res.form['date_joined'] = res.form['form-1-date_joined'].value res = res.form.submit('preview') # steps = 3: res = res.form.submit('apply') preserved_after = User.objects.get(pk=self._selected_values[1]) self.assertFalse(User.objects.filter(pk=removed.pk).exists()) self.assertTrue(User.objects.filter(pk=preserved.pk).exists()) self.assertEqual(preserved_after.email, removed.email) self.assertFalse(LogEntry.objects.filter(pk=removed.pk).exists())
def test_no_permission(self): with user_grant_permission(self.user, ['auth.change_user']): res = self.app.get('/', user='******') res = res.click('Users') form = res.forms['changelist-form'] form['action'] = 'mass_update' form.set('_selected_action', True, 0) res = form.submit().follow() assert 'Sorry you do not have rights to execute this action' in res.body
def test_error_if_too_many_records(self): with user_grant_permission(self.user, ['auth.change_user', 'auth.adminactions_merge_user']): res = self.app.get('/', user='******') res = res.click('Users') form = res.forms['changelist-form'] form['action'] = 'merge' self._select_rows(form, [1, 2, 3]) res = form.submit().follow() self.assertContains(res, 'Please select exactly 2 records')
def test_success(self): with user_grant_permission(self.user, ['auth.change_user', 'auth.adminactions_export_user']): res = self.app.get('/', user='******') res = res.click('Users') form = res.forms['changelist-form'] form['action'] = self.action_name self._select_rows(form, [0, 1]) res = form.submit() res.form['use_natural_key'] = True res = res.form.submit('apply') assert res.json[0]['pk'] == 1
def _run_action(self, steps=2): with user_grant_permission(self.user, ['auth.change_user', 'auth.adminactions_export_user']): res = self.app.get('/', user='******') res = res.click('Users') if steps >= 1: form = res.forms['changelist-form'] form['action'] = self.action_name self._select_rows(form) res = form.submit() if steps >= 2: res = res.form.submit('apply') return res
def test_add_foreign_keys(self): with user_grant_permission(self.user, ['auth.change_user', 'auth.adminactions_export_user']): res = self.app.get('/', user='******') res = res.click('Users') form = res.forms['changelist-form'] form['action'] = self.action_name form.set('_selected_action', True, 0) form.set('_selected_action', True, 1) res = form.submit() res.form['use_natural_key'] = True res.form['add_foreign_keys'] = True res = res.form.submit('apply') assert res.json[0]['pk'] == 1
def _run_action(self, steps=2): with user_grant_permission(self.user, ['auth.change_user']): res = self.app.get('/', user='******') res = res.click('Users') if steps>=1: form = res.forms['changelist-form'] form['action'] = 'graph_queryset' self._select_rows(form) #form.set('_selected_action', True, 0) #form.set('_selected_action', True, 1) res = form.submit() if steps>=2: res.form['axes_x'] = 'username' res = res.form.submit('apply') return res
def test_success(self): with user_grant_permission(self.user, ['auth.change_user', 'auth.adminactions_export_user']): res = self.app.get('/', user='******') res = res.click('Users') form = res.forms['changelist-form'] form['action'] = self.action_name #form.set('_selected_action', True, 1) self._select_rows(form) res = form.submit() res = res.form.submit('apply') io = StringIO.StringIO(res.body) csv_reader = csv.reader(io) rows = 0 for c in csv_reader: rows += 1 self.assertEqual(rows, 2)
def test_custom_filename(self): """ if the ModelAdmin has `get_export_as_csv_filename()` use that method to get the attachment filename """ with user_grant_permission(self.user, ['auth.change_user', 'auth.adminactions_export_user']): res = self.app.get('/', user='******') with admin_register(User) as md: with mock.patch.object(md, 'get_export_as_csv_filename', lambda r, q: 'new.test', create=True): res = res.click('Users') form = res.forms['changelist-form'] form['action'] = 'export_as_csv' form.set('_selected_action', True, 0) form['select_across'] = 1 res = form.submit() res = res.form.submit('apply') self.assertEqual(res.content_disposition, u'attachment;filename="new.test"')
def _run_action(self, steps=2, **kwargs): with user_grant_permission(self.user, ['auth.change_user', 'auth.adminactions_massupdate_user']): res = self.app.get('/', user='******') res = res.click('Users') if steps >= 1: form = res.forms['changelist-form'] form['action'] = 'mass_update' self._select_rows(form) res = form.submit() if steps >= 2: for k, v in kwargs.items(): res.form[k] = v res.form['chk_id_username'].checked = True res.form['chk_id_last_name'].checked = True res.form['func_id_username'] = '******' res.form['func_id_last_name'] = 'set' res.form['last_name'] = 'LASTNAME' res = res.form.submit('apply') return res
def _run_action(self, steps=3, page_start=None): with user_grant_permission(self.user, ['auth.change_user', 'auth.adminactions_merge_user']): if isinstance(steps, int): steps = range(1, steps + 1) res = self.app.get('/', user='******') res = res.click('Users') else: res = page_start if 1 in steps: form = res.forms['changelist-form'] form['action'] = 'merge' self._select_rows(form) res = form.submit() if 2 in steps: res.form['username'] = res.form['form-1-username'].value res.form['email'] = res.form['form-1-email'].value res.form['last_login'] = res.form['form-1-last_login'].value res.form['date_joined'] = res.form['form-1-date_joined'].value res = res.form.submit('preview') if 3 in steps: res = res.form.submit('apply') return res