1. from django.core.signing import b64_decode
    
  2. from django.test import TestCase, override_settings
    
  3. from django.urls import reverse
    
  4. 
    
  5. from .models import SomeObject
    
  6. from .urls import ContactFormViewWithMsg, DeleteFormViewWithMsg
    
  7. 
    
  8. 
    
  9. @override_settings(ROOT_URLCONF="messages_tests.urls")
    
  10. class SuccessMessageMixinTests(TestCase):
    
  11.     def test_set_messages_success(self):
    
  12.         author = {"name": "John Doe", "slug": "success-msg"}
    
  13.         add_url = reverse("add_success_msg")
    
  14.         req = self.client.post(add_url, author)
    
  15.         # Uncompressed message is stored in the cookie.
    
  16.         value = b64_decode(
    
  17.             req.cookies["messages"].value.split(":")[0].encode(),
    
  18.         ).decode()
    
  19.         self.assertIn(ContactFormViewWithMsg.success_message % author, value)
    
  20. 
    
  21.     def test_set_messages_success_on_delete(self):
    
  22.         object_to_delete = SomeObject.objects.create(name="MyObject")
    
  23.         delete_url = reverse("success_msg_on_delete", args=[object_to_delete.pk])
    
  24.         response = self.client.post(delete_url, follow=True)
    
  25.         self.assertContains(response, DeleteFormViewWithMsg.success_message)