diff --git a/pattern_library/monkey_utils.py b/pattern_library/monkey_utils.py index 12eeb3e8..691383ca 100644 --- a/pattern_library/monkey_utils.py +++ b/pattern_library/monkey_utils.py @@ -15,7 +15,7 @@ def override_tag( register: django.template.Library, name: str, - default_html: typing.Optional[typing.Any] = UNSPECIFIED, + default_html: typing.Optional[typing.Any] = None, ): """ An utility that helps you override original tags for use in your pattern library. @@ -95,14 +95,15 @@ def node_render(context): Warning, ) else: - raise TypeError( + warnings.warn( 'default_html argument to override_tag must be a string (line %s in "%s")' % (trace.lineno, trace.filename) ) + return "" # Render provided default; # if no stub data supplied. - return default_html + return default_html or "" else: logger.warning( 'No default or stub data defined for the "%s" tag in the "%s" template', diff --git a/tests/tests/test_tags.py b/tests/tests/test_tags.py index 6d34f0a1..1187841f 100644 --- a/tests/tests/test_tags.py +++ b/tests/tests/test_tags.py @@ -51,7 +51,7 @@ def test_falsey_default_html_overide(self): class TagsTestFailCase(SimpleTestCase): - def test_bad_default_html_warning(self): + def test_bad_default_html_warning_on_older_django_versions(self): """ Test that the library raises a warning when passing a non-string `default_html` argument to `override_tag` in Django < 4.0 @@ -79,13 +79,13 @@ def test_bad_default_html_warning(self): str(cm.warnings[0]), ) - def test_bad_default_html_error(self): + def test_bad_default_html_warning_on_newer_django_versions(self): """ - Test that the library raises a TypeError when passing a non-string `default_html` argument to `override_tag` + Test that the library raises a warning when passing a non-string `default_html` argument to `override_tag` in Django >= 4.0 """ with patch("django.VERSION", (4, 2, 0, "final", 0)): - with self.assertRaises(TypeError) as cm: + with self.assertWarns(Warning) as cm: template_name = ( "patterns/atoms/tags_test_atom/invalid_tags_test_atom.html.fail" ) @@ -97,5 +97,5 @@ def test_bad_default_html_error(self): ) self.assertIn( "default_html argument to override_tag must be a string", - str(cm.exception), + str(cm.warnings[0]), )