#36937: Add missing positive test cases for @permission_required in test_client
-------------------------------------+-------------------------------------
               Reporter:             |          Owner:  saishmungase
  saishmungase                       |
                   Type:             |         Status:  assigned
  Cleanup/optimization               |
              Component:  Testing    |        Version:  dev
  framework                          |
               Severity:  Normal     |       Keywords:  test_client
           Triage Stage:             |      Has patch:  1
  Unreviewed                         |
    Needs documentation:  0          |    Needs tests:  0
Patch needs improvement:  0          |  Easy pickings:  1
                  UI/UX:  0          |
-------------------------------------+-------------------------------------
 In `tests/test_client/tests.py`, the `test_view_with_permissions` and
 `test_view_with_method_permissions` methods contain `TODO` comments
 indicating missing positive test coverage. The tests successfully verify
 the negative paths (302 redirects for unauthorized users) but fail to
 verify the 200 OK path for authorized users.

 Upon implementing the positive test cases, it became clear that the dummy
 views in `tests/test_client/views.py` were decorated with a malformed
 permission string (`"permission_not_granted"`). Because this string lacks
 a standard `app_label.codename` format, Django's standard `ModelBackend`
 fails to parse it during the `has_perm()` check. This made it impossible
 to test standard permission assignment properly without relying on
 workarounds like the `is_superuser` flag.

 This patch:
 1. Updates the dummy views in `tests/test_client/views.py` to use a
 standard, valid permission string (`"auth.add_user"`).
 2. Resolves the `TODO` comments in `tests/test_client/tests.py` by
 assigning the real `auth.add_user` permission to the test user and
 asserting the successful 200 OK response.

 I have the patch ready and will submit a Pull Request shortly.
-- 
Ticket URL: <https://code.djangoproject.com/ticket/36937>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/django-updates/0107019c766f47dc-a098883f-33b4-4551-9e60-4a034a38246e-000000%40eu-central-1.amazonses.com.

Reply via email to