I have a view that can redirect to /admin/common/region/add/ but that
url (being an admin page) should require login (right?).  My test that
logs-in works as expected.

However, when I try to do an assertRedirects() without logging in
first, the assertRedirects() doesn't seem to follow through to the
login URL.

    def test_no_region_not_logged_in(self):
        # if we have no regions and attempt to visit
        # the "home" page, the site has been misconfigured so
        # it should redirect to the admin page (via login)
        # where a new region can be created.

        url = reverse("home") # the URL that
        # should redirect to /admin/common/region/add/
        # via the login page

        # self.client is instantiated in setUp()
        response = self.client.get(url, follow=True)

        # print repr(response.redirect_chain)
        # the redirect_chain contains just has one entry
        # rather than the two I'd expect

        add_region_url = reverse("admin:common_region_add")
        login_url = reverse("login")
        expected_url = "%s?next=%s" % (
            login_url,
            quote(add_region_url)
            )
        self.assertRedirects(response, expected_url)

However my test fails with:

  AssertionError: Response redirected to
  'http://testserver/admin/common/region/add/', expected
  'http://testserver/accounts/login/?next=/admin/common/region/add/'

Where am I going wrong?  Do admin pages not have @login_required as I
expect?  Does the test-client not fully follow when follow=True?

For what it's worth, this is Django 1.6.7 (I need something pre-1.7
because my hosting-provider's target environment only has Python 2.6,
not 2.7)

Thanks for any hints you might be able to offer.

-tkc



-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/20141127201514.09a0b667%40bigbox.christie.dr.
For more options, visit https://groups.google.com/d/optout.

Reply via email to