Пример #1
0
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
Пример #2
0
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
Пример #3
0
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'
Пример #4
0
    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'
Пример #6
0
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'
Пример #7
0
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
Пример #8
0
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'
Пример #9
0
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/'
Пример #14
0
 def custom_update(self, request, pk):
     opts = self.model._meta
     self.message_user(request, 'action called')
     return HttpResponseRedirect(reverse(admin_urlname(opts, 'changelist')))
Пример #15
0
 def custom_path(self, request):
     opts = self.model._meta
     self.message_user(request, 'refresh called')
     return HttpResponseRedirect(reverse(admin_urlname(opts, 'changelist')))