mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Fixed #21037 -- Made MigrationWriter raise a ValueError when serializing lambda functions.
This commit is contained in:
		| @@ -152,10 +152,12 @@ class MigrationWriter(object): | ||||
|                 klass = value.im_class | ||||
|                 module = klass.__module__ | ||||
|                 return "%s.%s.%s" % (module, klass.__name__, value.__name__), set(["import %s" % module]) | ||||
|             elif value.__name__ == '<lambda>': | ||||
|                 raise ValueError("Cannot serialize function: lambda") | ||||
|             elif value.__module__ is None: | ||||
|                 raise ValueError("Cannot serialize function %r: No module" % value) | ||||
|             else: | ||||
|                 module = value.__module__ | ||||
|                 if module is None: | ||||
|                     raise ValueError("Cannot serialize function %r: No module" % value) | ||||
|                 return "%s.%s" % (module, value.__name__), set(["import %s" % module]) | ||||
|         # Classes | ||||
|         elif isinstance(value, type): | ||||
|   | ||||
| @@ -60,6 +60,9 @@ class WriterTests(TestCase): | ||||
|         self.assertSerializedEqual(set([2, 3, "eighty"])) | ||||
|         self.assertSerializedEqual({"lalalala": ["yeah", "no", "maybe"]}) | ||||
|         self.assertSerializedEqual(_('Hello')) | ||||
|         # Functions | ||||
|         with six.assertRaisesRegex(self, ValueError, 'Cannot serialize function: lambda'): | ||||
|             self.assertSerializedEqual(lambda x: 42) | ||||
|         # Datetime stuff | ||||
|         self.assertSerializedEqual(datetime.datetime.utcnow()) | ||||
|         self.assertSerializedEqual(datetime.datetime.utcnow) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user