Arthur 1 day ago
parent
commit
c69c6c4ca1

+ 6 - 9
netbox/utilities/testing/api.py

@@ -254,7 +254,7 @@ class APIViewTestCases:
                     action=ObjectChangeActionChoices.ACTION_CREATE,
                     action=ObjectChangeActionChoices.ACTION_CREATE,
                 )
                 )
                 self.assertEqual(objectchange.message, data['changelog_message'])
                 self.assertEqual(objectchange.message, data['changelog_message'])
-                self.assertObjectChangeData(objectchange, prechange_data=None, postchange_data=True)
+                self.assertObjectChangeData(objectchange, prechange_is_none=True, postchange_is_none=False)
 
 
         def test_bulk_create_objects(self):
         def test_bulk_create_objects(self):
             """
             """
@@ -308,8 +308,7 @@ class APIViewTestCases:
                 self.assertEqual(len(objectchanges), len(self.create_data))
                 self.assertEqual(len(objectchanges), len(self.create_data))
                 for oc in objectchanges:
                 for oc in objectchanges:
                     self.assertEqual(oc.message, changelog_message)
                     self.assertEqual(oc.message, changelog_message)
-                    self.assertIsNone(oc.prechange_data)
-                    self.assertIsNotNone(oc.postchange_data)
+                    self.assertObjectChangeData(oc, prechange_is_none=True, postchange_is_none=False)
 
 
     class UpdateObjectViewTestCase(APITestCase):
     class UpdateObjectViewTestCase(APITestCase):
         update_data = {}
         update_data = {}
@@ -369,7 +368,7 @@ class APIViewTestCases:
                 )
                 )
                 self.assertEqual(objectchange.action, ObjectChangeActionChoices.ACTION_UPDATE)
                 self.assertEqual(objectchange.action, ObjectChangeActionChoices.ACTION_UPDATE)
                 self.assertEqual(objectchange.message, data['changelog_message'])
                 self.assertEqual(objectchange.message, data['changelog_message'])
-                self.assertObjectChangeData(objectchange, prechange_data=True, postchange_data=True)
+                self.assertObjectChangeData(objectchange, prechange_is_none=False, postchange_is_none=False)
                 self.assertNotEqual(objectchange.prechange_data, objectchange.postchange_data)
                 self.assertNotEqual(objectchange.prechange_data, objectchange.postchange_data)
 
 
         def test_bulk_update_objects(self):
         def test_bulk_update_objects(self):
@@ -421,8 +420,7 @@ class APIViewTestCases:
                 for oc in objectchanges:
                 for oc in objectchanges:
                     self.assertEqual(oc.action, ObjectChangeActionChoices.ACTION_UPDATE)
                     self.assertEqual(oc.action, ObjectChangeActionChoices.ACTION_UPDATE)
                     self.assertEqual(oc.message, changelog_message)
                     self.assertEqual(oc.message, changelog_message)
-                    self.assertIsNotNone(oc.prechange_data)
-                    self.assertIsNotNone(oc.postchange_data)
+                    self.assertObjectChangeData(oc, prechange_is_none=False, postchange_is_none=False)
                     self.assertNotEqual(oc.prechange_data, oc.postchange_data)
                     self.assertNotEqual(oc.prechange_data, oc.postchange_data)
 
 
     class DeleteObjectViewTestCase(APITestCase):
     class DeleteObjectViewTestCase(APITestCase):
@@ -472,7 +470,7 @@ class APIViewTestCases:
                 )
                 )
                 self.assertEqual(objectchange.action, ObjectChangeActionChoices.ACTION_DELETE)
                 self.assertEqual(objectchange.action, ObjectChangeActionChoices.ACTION_DELETE)
                 self.assertEqual(objectchange.message, data['changelog_message'])
                 self.assertEqual(objectchange.message, data['changelog_message'])
-                self.assertObjectChangeData(objectchange, prechange_data=True, postchange_data=None)
+                self.assertObjectChangeData(objectchange, prechange_is_none=False, postchange_is_none=True)
 
 
         def test_bulk_delete_objects(self):
         def test_bulk_delete_objects(self):
             """
             """
@@ -514,8 +512,7 @@ class APIViewTestCases:
                 for oc in objectchanges:
                 for oc in objectchanges:
                     self.assertEqual(oc.action, ObjectChangeActionChoices.ACTION_DELETE)
                     self.assertEqual(oc.action, ObjectChangeActionChoices.ACTION_DELETE)
                     self.assertEqual(oc.message, changelog_message)
                     self.assertEqual(oc.message, changelog_message)
-                    self.assertIsNotNone(oc.prechange_data)
-                    self.assertIsNone(oc.postchange_data)
+                    self.assertObjectChangeData(oc, prechange_is_none=False, postchange_is_none=True)
 
 
     class GraphQLTestCase(APITestCase):
     class GraphQLTestCase(APITestCase):
 
 

+ 4 - 4
netbox/utilities/testing/base.py

@@ -83,16 +83,16 @@ class TestCase(_TestCase):
     # Custom assertions
     # Custom assertions
     #
     #
 
 
-    def assertObjectChangeData(self, objectchange, prechange_data, postchange_data):
+    def assertObjectChangeData(self, objectchange, *, prechange_is_none: bool, postchange_is_none: bool):
         """
         """
         Assert that an ObjectChange record has the expected prechange_data and postchange_data.
         Assert that an ObjectChange record has the expected prechange_data and postchange_data.
-        Pass None to assert the field is null; pass any non-None value to assert it is populated.
+        Set prechange_is_none=True to assert the field is null, False to assert it is populated.
         """
         """
-        if prechange_data is None:
+        if prechange_is_none:
             self.assertIsNone(objectchange.prechange_data, "Expected prechange_data to be None")
             self.assertIsNone(objectchange.prechange_data, "Expected prechange_data to be None")
         else:
         else:
             self.assertIsNotNone(objectchange.prechange_data, "Expected prechange_data to be populated")
             self.assertIsNotNone(objectchange.prechange_data, "Expected prechange_data to be populated")
-        if postchange_data is None:
+        if postchange_is_none:
             self.assertIsNone(objectchange.postchange_data, "Expected postchange_data to be None")
             self.assertIsNone(objectchange.postchange_data, "Expected postchange_data to be None")
         else:
         else:
             self.assertIsNotNone(objectchange.postchange_data, "Expected postchange_data to be populated")
             self.assertIsNotNone(objectchange.postchange_data, "Expected postchange_data to be populated")

+ 6 - 9
netbox/utilities/testing/views.py

@@ -194,7 +194,7 @@ class ViewTestCases:
                 self.assertEqual(len(objectchanges), 1)
                 self.assertEqual(len(objectchanges), 1)
                 self.assertEqual(objectchanges[0].action, ObjectChangeActionChoices.ACTION_CREATE)
                 self.assertEqual(objectchanges[0].action, ObjectChangeActionChoices.ACTION_CREATE)
                 self.assertEqual(objectchanges[0].message, self.form_data['changelog_message'])
                 self.assertEqual(objectchanges[0].message, self.form_data['changelog_message'])
-                self.assertObjectChangeData(objectchanges[0], prechange_data=None, postchange_data=True)
+                self.assertObjectChangeData(objectchanges[0], prechange_is_none=True, postchange_is_none=False)
 
 
         @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'], EXEMPT_EXCLUDE_MODELS=[])
         @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'], EXEMPT_EXCLUDE_MODELS=[])
         def test_create_object_with_constrained_permission(self):
         def test_create_object_with_constrained_permission(self):
@@ -302,7 +302,7 @@ class ViewTestCases:
                 self.assertEqual(len(objectchanges), 1)
                 self.assertEqual(len(objectchanges), 1)
                 self.assertEqual(objectchanges[0].action, ObjectChangeActionChoices.ACTION_UPDATE)
                 self.assertEqual(objectchanges[0].action, ObjectChangeActionChoices.ACTION_UPDATE)
                 self.assertEqual(objectchanges[0].message, self.form_data['changelog_message'])
                 self.assertEqual(objectchanges[0].message, self.form_data['changelog_message'])
-                self.assertObjectChangeData(objectchanges[0], prechange_data=True, postchange_data=True)
+                self.assertObjectChangeData(objectchanges[0], prechange_is_none=False, postchange_is_none=False)
                 self.assertNotEqual(objectchanges[0].prechange_data, objectchanges[0].postchange_data)
                 self.assertNotEqual(objectchanges[0].prechange_data, objectchanges[0].postchange_data)
 
 
         @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'], EXEMPT_EXCLUDE_MODELS=[])
         @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'], EXEMPT_EXCLUDE_MODELS=[])
@@ -399,7 +399,7 @@ class ViewTestCases:
                 self.assertEqual(len(objectchanges), 1)
                 self.assertEqual(len(objectchanges), 1)
                 self.assertEqual(objectchanges[0].action, ObjectChangeActionChoices.ACTION_DELETE)
                 self.assertEqual(objectchanges[0].action, ObjectChangeActionChoices.ACTION_DELETE)
                 self.assertEqual(objectchanges[0].message, form_data['changelog_message'])
                 self.assertEqual(objectchanges[0].message, form_data['changelog_message'])
-                self.assertObjectChangeData(objectchanges[0], prechange_data=True, postchange_data=None)
+                self.assertObjectChangeData(objectchanges[0], prechange_is_none=False, postchange_is_none=True)
 
 
         @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'])
         @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'])
         def test_delete_object_with_constrained_permission(self):
         def test_delete_object_with_constrained_permission(self):
@@ -721,8 +721,7 @@ class ViewTestCases:
 
 
                 for oc in objectchanges:
                 for oc in objectchanges:
                     self.assertEqual(oc.message, data['changelog_message'])
                     self.assertEqual(oc.message, data['changelog_message'])
-                    self.assertIsNone(oc.prechange_data)
-                    self.assertIsNotNone(oc.postchange_data)
+                    self.assertObjectChangeData(oc, prechange_is_none=True, postchange_is_none=False)
 
 
         @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'])
         @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'])
         def test_bulk_update_objects_with_permission(self):
         def test_bulk_update_objects_with_permission(self):
@@ -876,8 +875,7 @@ class ViewTestCases:
                 for oc in objectchanges:
                 for oc in objectchanges:
                     self.assertEqual(oc.action, ObjectChangeActionChoices.ACTION_UPDATE)
                     self.assertEqual(oc.action, ObjectChangeActionChoices.ACTION_UPDATE)
                     self.assertEqual(oc.message, data['changelog_message'])
                     self.assertEqual(oc.message, data['changelog_message'])
-                    self.assertIsNotNone(oc.prechange_data)
-                    self.assertIsNotNone(oc.postchange_data)
+                    self.assertObjectChangeData(oc, prechange_is_none=False, postchange_is_none=False)
                     self.assertNotEqual(oc.prechange_data, oc.postchange_data)
                     self.assertNotEqual(oc.prechange_data, oc.postchange_data)
 
 
         @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'], EXEMPT_EXCLUDE_MODELS=[])
         @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'], EXEMPT_EXCLUDE_MODELS=[])
@@ -975,8 +973,7 @@ class ViewTestCases:
                 for oc in objectchanges:
                 for oc in objectchanges:
                     self.assertEqual(oc.action, ObjectChangeActionChoices.ACTION_DELETE)
                     self.assertEqual(oc.action, ObjectChangeActionChoices.ACTION_DELETE)
                     self.assertEqual(oc.message, data['changelog_message'])
                     self.assertEqual(oc.message, data['changelog_message'])
-                    self.assertIsNotNone(oc.prechange_data)
-                    self.assertIsNone(oc.postchange_data)
+                    self.assertObjectChangeData(oc, prechange_is_none=False, postchange_is_none=True)
 
 
         def test_bulk_delete_objects_with_constrained_permission(self):
         def test_bulk_delete_objects_with_constrained_permission(self):
             pk_list = self._get_queryset().values_list('pk', flat=True)
             pk_list = self._get_queryset().values_list('pk', flat=True)