mirror of
https://github.com/django/django.git
synced 2024-12-01 15:42:04 +01:00
Refs #32508 -- Raised ValueError instead of using "assert" in lazy().
This commit is contained in:
parent
2cd0ccef04
commit
775b796d8d
@ -119,8 +119,10 @@ def lazy(func, *resultclasses):
|
||||
setattr(cls, method_name, meth)
|
||||
cls._delegate_bytes = bytes in resultclasses
|
||||
cls._delegate_text = str in resultclasses
|
||||
assert not (cls._delegate_bytes and cls._delegate_text), (
|
||||
"Cannot call lazy() with both bytes and text return types.")
|
||||
if cls._delegate_bytes and cls._delegate_text:
|
||||
raise ValueError(
|
||||
'Cannot call lazy() with both bytes and text return types.'
|
||||
)
|
||||
if cls._delegate_text:
|
||||
cls.__str__ = cls.__text_cast
|
||||
elif cls._delegate_bytes:
|
||||
|
@ -224,6 +224,12 @@ class FunctionalTests(SimpleTestCase):
|
||||
lazified()
|
||||
mocked.assert_not_called()
|
||||
|
||||
def test_lazy_bytes_and_str_result_classes(self):
|
||||
lazy_obj = lazy(lambda: 'test', str, bytes)
|
||||
msg = 'Cannot call lazy() with both bytes and text return types.'
|
||||
with self.assertRaisesMessage(ValueError, msg):
|
||||
lazy_obj()
|
||||
|
||||
def test_classproperty_getter(self):
|
||||
class Foo:
|
||||
foo_attr = 123
|
||||
|
Loading…
Reference in New Issue
Block a user