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')
Example #2
0
    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
Example #4
0
 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
Example #8
0
    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)
Example #10
0
 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
Example #12
0
 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