summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrançois Freitag <mail@franek.fr>2023-08-23 17:27:03 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-08-24 11:06:13 +0200
commit7bba231b67996fce294f257e1316748cc4ef299a (patch)
tree8aef7ff245dcc3fed15699f67a7ba5dc0d01a96b
parent95b844915822daa41247ae56d2ccd5cf36c881e1 (diff)
Refs #24121 -- Added __repr__() to Message.
-rw-r--r--django/contrib/messages/storage/base.py4
-rw-r--r--tests/messages_tests/tests.py29
2 files changed, 33 insertions, 0 deletions
diff --git a/django/contrib/messages/storage/base.py b/django/contrib/messages/storage/base.py
index 61c5758aab..124049a5e2 100644
--- a/django/contrib/messages/storage/base.py
+++ b/django/contrib/messages/storage/base.py
@@ -32,6 +32,10 @@ class Message:
def __str__(self):
return str(self.message)
+ def __repr__(self):
+ extra_tags = f", extra_tags={self.extra_tags!r}" if self.extra_tags else ""
+ return f"Message(level={self.level}, message={self.message!r}{extra_tags})"
+
@property
def tags(self):
return " ".join(tag for tag in [self.extra_tags, self.level_tag] if tag)
diff --git a/tests/messages_tests/tests.py b/tests/messages_tests/tests.py
index d16854a89a..2aa8935474 100644
--- a/tests/messages_tests/tests.py
+++ b/tests/messages_tests/tests.py
@@ -17,6 +17,35 @@ class MessageTests(SimpleTestCase):
self.assertNotEqual(msg_1, msg_3)
self.assertNotEqual(msg_2, msg_3)
+ @override_settings(
+ MESSAGE_TAGS={
+ constants.WARNING: "caution",
+ constants.ERROR: "",
+ 12: "custom",
+ }
+ )
+ def test_repr(self):
+ tests = [
+ (constants.INFO, "thing", "", "Message(level=20, message='thing')"),
+ (
+ constants.WARNING,
+ "careful",
+ "tag1 tag2",
+ "Message(level=30, message='careful', extra_tags='tag1 tag2')",
+ ),
+ (
+ constants.ERROR,
+ "oops",
+ "tag",
+ "Message(level=40, message='oops', extra_tags='tag')",
+ ),
+ (12, "custom", "", "Message(level=12, message='custom')"),
+ ]
+ for level, message, extra_tags, expected in tests:
+ with self.subTest(level=level, message=message):
+ msg = Message(level, message, extra_tags=extra_tags)
+ self.assertEqual(repr(msg), expected)
+
class TestLevelTags(SimpleTestCase):
message_tags = {