summaryrefslogtreecommitdiff
path: root/tests/utils_tests/test_deconstruct.py
diff options
context:
space:
mode:
authorAllen Jonathan David <allenajdjonathan@gmail.com>2022-01-01 18:38:27 +0530
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-01-04 13:15:29 +0100
commit205f67cd5bea242fac6b0380fa26570505d07dcb (patch)
tree824ebd134a63bd3f8908287b258819fc71071885 /tests/utils_tests/test_deconstruct.py
parent194ca77092a2507a57c288c35b279eb2cb4a64fb (diff)
Refs #33216 -- Made @deconstructible do not change path for subclasses.
Diffstat (limited to 'tests/utils_tests/test_deconstruct.py')
-rw-r--r--tests/utils_tests/test_deconstruct.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/utils_tests/test_deconstruct.py b/tests/utils_tests/test_deconstruct.py
index 590e9b3811..f384ab8288 100644
--- a/tests/utils_tests/test_deconstruct.py
+++ b/tests/utils_tests/test_deconstruct.py
@@ -19,6 +19,10 @@ class DeconstructibleWithPathClass:
pass
+class DeconstructibleWithPathChildClass(DeconstructibleWithPathClass):
+ pass
+
+
@deconstructible(
path='utils_tests.deconstructible_classes.DeconstructibleInvalidPathClass',
)
@@ -26,6 +30,10 @@ class DeconstructibleInvalidPathClass:
pass
+class DeconstructibleInvalidPathChildClass(DeconstructibleInvalidPathClass):
+ pass
+
+
class DeconstructibleTests(SimpleTestCase):
def test_deconstruct(self):
obj = DeconstructibleClass('arg', key='value')
@@ -51,6 +59,16 @@ class DeconstructibleTests(SimpleTestCase):
self.assertEqual(args, ('arg',))
self.assertEqual(kwargs, {'key': 'value'})
+ def test_deconstruct_child_with_path(self):
+ obj = DeconstructibleWithPathChildClass('arg', key='value')
+ path, args, kwargs = obj.deconstruct()
+ self.assertEqual(
+ path,
+ 'utils_tests.test_deconstruct.DeconstructibleWithPathChildClass',
+ )
+ self.assertEqual(args, ('arg',))
+ self.assertEqual(kwargs, {'key': 'value'})
+
def test_invalid_path(self):
obj = DeconstructibleInvalidPathClass()
docs_version = get_docs_version()
@@ -66,3 +84,13 @@ class DeconstructibleTests(SimpleTestCase):
)
with self.assertRaisesMessage(ValueError, msg):
obj.deconstruct()
+
+ def test_parent_invalid_path(self):
+ obj = DeconstructibleInvalidPathChildClass('arg', key='value')
+ path, args, kwargs = obj.deconstruct()
+ self.assertEqual(
+ path,
+ 'utils_tests.test_deconstruct.DeconstructibleInvalidPathChildClass',
+ )
+ self.assertEqual(args, ('arg',))
+ self.assertEqual(kwargs, {'key': 'value'})