def test_link_permission_callable(app, staff_user): perms = Permission.objects.filter(codename__in=['change_demomodel1']) staff_user.user_permissions.add(*perms) url = reverse('admin:demo_demomodel1_changelist') res = app.get(url, user=staff_user) assert not res.pyquery('#btn-refresh-callable') url = reverse('admin:demo_demomodel1_refresh_callable') res = app.get(url, user=staff_user, expect_errors=True) assert res.status_code == 403
def test_action_permission_callable(app, staff_user): obj = G(DemoModel2) perms = Permission.objects.filter(codename__in=['change_demomodel2']) staff_user.user_permissions.add(*perms) url = reverse('admin:demo_demomodel2_change', args=[obj.pk]) res = app.get(url, user=staff_user) assert not res.pyquery('#btn-update-callable-permission') url = reverse('admin:demo_demomodel2_update_callable_permission', args=[obj.pk]) res = app.get(url, user=staff_user, expect_errors=True) assert res.status_code == 403
def test_action_noresponse(app, demomodel2, admin_user): url = reverse('admin:demo_demomodel2_change', args=[demomodel2.pk]) res = app.get(url, user=admin_user) res = res.click(r'No Response').follow() assert str( res.context['messages']._loaded_messages[0].message) == 'No_response'
def upload(self, request): opts = self.model._meta context = dict( self.admin_site.each_context(request), opts=opts, help_text=self.upload_handler.__doc__, app_label=opts.app_label, ) if request.method == 'POST': if 'file' in request.FILES: try: f = request.FILES['file'] rows, updated, created = self.upload_handler(f) msg = "Loaded {}. Parsed:{} " \ "updated:{} created:{}".format(f.name, rows, updated, created) self.message_user(request, msg, messages.SUCCESS) return HttpResponseRedirect( reverse(admin_urlname(opts, 'changelist'))) except Exception as e: self.message_user(request, str(e), messages.ERROR) return TemplateResponse(request, self.get_upload_form_template(request), context)
def test_link_reverse(django_app, staff_user): perms = Permission.objects.filter( codename__in=['add_demomodel1', 'change_demomodel1']) staff_user.user_permissions.add(*perms) url = reverse('admin:demo_demomodel1_refresh') res = django_app.get(url, user=staff_user).follow() assert str(res.context['messages']._loaded_messages[0].message ) == 'refresh called'
def test_confirm(django_app, admin_user): url = reverse('admin:demo_demomodel1_changelist') res = django_app.get(url, user=admin_user) res = res.click('Confirm') assert str(res.content).find("Confirm action") res = res.form.submit().follow() assert str(res.context['messages']._loaded_messages[0].message ) == 'Successfully executed'
def test_upload(app, admin_user): url = reverse('admin:demo_demomodel4_changelist') res = app.get(url, user=admin_user) res = res.click('Upload') form = res.forms[0] form['file'] = ('file', "abc".encode('utf8')) res = form.submit() assert res.status_code == 302
def test_action_preserve_filters(django_app, admin_user): a, b, c = G(DemoModel2, n=3) base_url = reverse('admin:demo_demomodel2_changelist') url = "%s?filter=on" % base_url res = django_app.get(url, user=admin_user) res = res.click('DemoModel2 #%s' % a.pk) link = res.pyquery('#btn-update')[0] assert link.get( 'href' ) == '/admin/demo/demomodel2/update/1/?_changelist_filters=filter%3Don'
def test_link_preserve_filters(django_app, staff_user): perms = Permission.objects.filter( codename__in=['add_demomodel1', 'change_demomodel1']) staff_user.user_permissions.add(*perms) base_url = reverse('admin:demo_demomodel1_changelist') url = "%s?filter=on" % base_url res = django_app.get(url, user=staff_user) link = res.pyquery('#btn-refresh')[0] assert link.get( 'href' ) == '/admin/demo/demomodel1/refresh/?_changelist_filters=filter%3Don'
def test_upload(app, admin_user): url = reverse('admin:demo_demomodel4_changelist') res = app.get(url, user=admin_user) res = res.click('Upload') form = res.forms[0] form.submit()
def test_default_httpresponseaction(app, admin_user): url = reverse('admin:demo_demomodel1_changelist') res = app.get(url, user=admin_user) res = res.click('No Response').follow() assert str( res.context['messages']._loaded_messages[0].message) == 'No_response'
def test_action(app, demomodel2, admin_user): url = reverse('admin:demo_demomodel2_change', args=[demomodel2.pk]) res = app.get(url, user=admin_user) res = res.click(r'Update', index=1).follow() assert str( res.context['messages']._loaded_messages[0].message) == 'action called'
def test_link_custom_path_reverse(django_app, admin_user): url = reverse('admin:demo_demomodel1_custom_path') assert url == '/admin/demo/demomodel1/a/b/'
def custom_update(self, request, pk): opts = self.model._meta self.message_user(request, 'action called') return HttpResponseRedirect(reverse(admin_urlname(opts, 'changelist')))
def custom_path(self, request): opts = self.model._meta self.message_user(request, 'refresh called') return HttpResponseRedirect(reverse(admin_urlname(opts, 'changelist')))