mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Fixed #34822 -- Added support for serializing functions decorated with functools.lru_cache in migrations.
`@functools.cache` and `@functools.lru_cache` return an object of type `functools._lru_cache_wrapper` which prevented the migrations serializer from working. Simply using the existing `FunctionTypeSerializer` for this additional type works as expected.
This commit is contained in:
@@ -90,6 +90,16 @@ def function_with_decorator():
|
||||
pass
|
||||
|
||||
|
||||
@functools.cache
|
||||
def function_with_cache():
|
||||
pass
|
||||
|
||||
|
||||
@functools.lru_cache(maxsize=10)
|
||||
def function_with_lru_cache():
|
||||
pass
|
||||
|
||||
|
||||
class OperationWriterTests(SimpleTestCase):
|
||||
def test_empty_signature(self):
|
||||
operation = custom_migration_operations.operations.TestOperation()
|
||||
@@ -581,6 +591,8 @@ class WriterTests(SimpleTestCase):
|
||||
|
||||
def test_serialize_decorated_functions(self):
|
||||
self.assertSerializedEqual(function_with_decorator)
|
||||
self.assertSerializedEqual(function_with_cache)
|
||||
self.assertSerializedEqual(function_with_lru_cache)
|
||||
|
||||
def test_serialize_datetime(self):
|
||||
self.assertSerializedEqual(datetime.datetime.now())
|
||||
|
||||
Reference in New Issue
Block a user