Browse Source

[1455] refactor tests

share duplicate test code, remove now unnecessary helpers
Jelte Jansen 13 years ago
parent
commit
d8f2ae1c3e
1 changed files with 66 additions and 217 deletions
  1. 66 217
      src/lib/python/isc/ddns/tests/session_tests.py

+ 66 - 217
src/lib/python/isc/ddns/tests/session_tests.py

@@ -150,195 +150,158 @@ class SessionTest(unittest.TestCase):
         # zone class doesn't match
         # zone class doesn't match
         self.check_notauth(Name('example.org'), RRClass.CH())
         self.check_notauth(Name('example.org'), RRClass.CH())
 
 
-    def __check_prerequisite_exists(self, expected, client, rrset):
-        '''helper method for test_check_prerequisite_exists. This function
-           does nothing but call __check_prerequisite_exists, and checks
-           the result value.
-           expected is either True or False.
-           (since the check_prerequisite is a 'private' method, and calling
-           it is a bit ugly, this helper method helps keeping the actual
-           test code cleaner).
+    def __prereq_helper(self, method, expected, rrset):
+        '''Calls the given method with self.__datasrc_client
+           and the given rrset, and compares the return value.
+           Function does not do much but makes the code look nicer'''
+        self.assertEqual(expected, method(self.__datasrc_client, rrset))
+
+    def __check_prerequisite_exists_combined(self, method, expected):
+        '''shared code for the checks for the very similar (but reversed
+           in behaviour) methods __prereq_rrset_exists and
+           __prereq_rrset_does_not_exist.
         '''
         '''
-        self.assertEqual(expected,
-            self.__session._UpdateSession__prereq_rrset_exists(
-                            client, rrset))
-
-    def __check_prerequisite_exists_value(self, expected, client, rrset):
-        '''Similar to __check_prerequisite_exists(), but for checking
-           the result of __check_prerequisite_rrset_exists_value().
-        '''
-        self.assertEqual(expected,
-            self.__session.
-                 _UpdateSession__prereq_rrset_exists_value(client, rrset))
-
-    def __check_prerequisite_does_not_exist(self, expected, client, rrset):
-        '''Similar to __check_prerequisite_exists(), but for checking
-           the result of __check_prerequisite_rrset_does_not_exist().
-        '''
-        self.assertEqual(expected,
-            self.__session.
-                _UpdateSession__prereq_rrset_does_not_exist(client, rrset))
-
-    def __check_prerequisite_name_in_use(self, expected, client, rrset):
-        '''Similar to __check_prerequisite_exists(), but for checking
-           the result of __check_prerequisite_name_in_use().
-        '''
-        self.assertEqual(expected,
-            self.__session.
-                 _UpdateSession__prereq_name_in_use(client, rrset))
-
-    def __check_prerequisite_name_not_in_use(self, expected, client, rrset):
-        '''Similar to __check_prerequisite_exists(), but for checking
-           the result of __check_prerequisite_name_in_use().
-        '''
-        self.assertEqual(expected,
-            self.__session.
-                 _UpdateSession__prereq_name_not_in_use(client, rrset))
 
 
-    def test_check_prerequisite_exists(self):
         # Basic existence checks
         # Basic existence checks
         # www.example.org should have an A, but not an MX
         # www.example.org should have an A, but not an MX
         rrset = isc.dns.RRset(isc.dns.Name("www.example.org"),
         rrset = isc.dns.RRset(isc.dns.Name("www.example.org"),
                               isc.dns.RRClass.IN(), isc.dns.RRType.A(),
                               isc.dns.RRClass.IN(), isc.dns.RRType.A(),
                               isc.dns.RRTTL(0))
                               isc.dns.RRTTL(0))
-        self.__check_prerequisite_exists(True, self.__datasrc_client, rrset)
+        self.__prereq_helper(method, expected, rrset)
         rrset = isc.dns.RRset(isc.dns.Name("www.example.org"),
         rrset = isc.dns.RRset(isc.dns.Name("www.example.org"),
                               isc.dns.RRClass.IN(), isc.dns.RRType.MX(),
                               isc.dns.RRClass.IN(), isc.dns.RRType.MX(),
                               isc.dns.RRTTL(0))
                               isc.dns.RRTTL(0))
-        self.__check_prerequisite_exists(False, self.__datasrc_client, rrset)
+        self.__prereq_helper(method, not expected, rrset)
 
 
         # example.org should have an MX, but not an A
         # example.org should have an MX, but not an A
         rrset = isc.dns.RRset(isc.dns.Name("example.org"),
         rrset = isc.dns.RRset(isc.dns.Name("example.org"),
                               isc.dns.RRClass.IN(), isc.dns.RRType.MX(),
                               isc.dns.RRClass.IN(), isc.dns.RRType.MX(),
                               isc.dns.RRTTL(0))
                               isc.dns.RRTTL(0))
-        self.__check_prerequisite_exists(True, self.__datasrc_client, rrset)
+        self.__prereq_helper(method, expected, rrset)
         rrset = isc.dns.RRset(isc.dns.Name("example.org"),
         rrset = isc.dns.RRset(isc.dns.Name("example.org"),
                               isc.dns.RRClass.IN(), isc.dns.RRType.A(),
                               isc.dns.RRClass.IN(), isc.dns.RRType.A(),
                               isc.dns.RRTTL(0))
                               isc.dns.RRTTL(0))
-        self.__check_prerequisite_exists(False, self.__datasrc_client, rrset)
+        self.__prereq_helper(method, not expected, rrset)
 
 
         # Also check the case where the name does not even exist
         # Also check the case where the name does not even exist
         rrset = isc.dns.RRset(isc.dns.Name("doesnotexist.example.org"),
         rrset = isc.dns.RRset(isc.dns.Name("doesnotexist.example.org"),
                               isc.dns.RRClass.IN(), isc.dns.RRType.A(),
                               isc.dns.RRClass.IN(), isc.dns.RRType.A(),
                               isc.dns.RRTTL(0))
                               isc.dns.RRTTL(0))
-        self.__check_prerequisite_exists(False, self.__datasrc_client, rrset)
+        self.__prereq_helper(method, not expected, rrset)
 
 
         # Wildcard expansion should not be applied, but literal matches
         # Wildcard expansion should not be applied, but literal matches
         # should work
         # should work
         rrset = isc.dns.RRset(isc.dns.Name("foo.wildcard.example.org"),
         rrset = isc.dns.RRset(isc.dns.Name("foo.wildcard.example.org"),
                               isc.dns.RRClass.IN(), isc.dns.RRType.A(),
                               isc.dns.RRClass.IN(), isc.dns.RRType.A(),
                               isc.dns.RRTTL(0))
                               isc.dns.RRTTL(0))
-        self.__check_prerequisite_exists(False, self.__datasrc_client, rrset)
+        self.__prereq_helper(method, not expected, rrset)
 
 
         rrset = isc.dns.RRset(isc.dns.Name("*.wildcard.example.org"),
         rrset = isc.dns.RRset(isc.dns.Name("*.wildcard.example.org"),
                               isc.dns.RRClass.IN(), isc.dns.RRType.A(),
                               isc.dns.RRClass.IN(), isc.dns.RRType.A(),
                               isc.dns.RRTTL(0))
                               isc.dns.RRTTL(0))
-        self.__check_prerequisite_exists(True, self.__datasrc_client, rrset)
+        self.__prereq_helper(method, expected, rrset)
 
 
         # Likewise, CNAME directly should match, but what it points to should
         # Likewise, CNAME directly should match, but what it points to should
         # not
         # not
         rrset = isc.dns.RRset(isc.dns.Name("cname.example.org"),
         rrset = isc.dns.RRset(isc.dns.Name("cname.example.org"),
                               isc.dns.RRClass.IN(), isc.dns.RRType.A(),
                               isc.dns.RRClass.IN(), isc.dns.RRType.A(),
                               isc.dns.RRTTL(0))
                               isc.dns.RRTTL(0))
-        self.__check_prerequisite_exists(False, self.__datasrc_client, rrset)
+        self.__prereq_helper(method, not expected, rrset)
 
 
         rrset = isc.dns.RRset(isc.dns.Name("cname.example.org"),
         rrset = isc.dns.RRset(isc.dns.Name("cname.example.org"),
                               isc.dns.RRClass.IN(), isc.dns.RRType.CNAME(),
                               isc.dns.RRClass.IN(), isc.dns.RRType.CNAME(),
                               isc.dns.RRTTL(0))
                               isc.dns.RRTTL(0))
-        self.__check_prerequisite_exists(True, self.__datasrc_client, rrset)
+        self.__prereq_helper(method, expected, rrset)
 
 
         # And also make sure a delegation (itself) is not treated as existing
         # And also make sure a delegation (itself) is not treated as existing
         # data
         # data
         rrset = isc.dns.RRset(isc.dns.Name("foo.sub.example.org"),
         rrset = isc.dns.RRset(isc.dns.Name("foo.sub.example.org"),
                               isc.dns.RRClass.IN(), isc.dns.RRType.A(),
                               isc.dns.RRClass.IN(), isc.dns.RRType.A(),
                               isc.dns.RRTTL(0))
                               isc.dns.RRTTL(0))
-        self.__check_prerequisite_exists(False, self.__datasrc_client, rrset)
+        self.__prereq_helper(method, not expected, rrset)
         # But the delegation data itself should match
         # But the delegation data itself should match
         rrset = isc.dns.RRset(isc.dns.Name("sub.example.org"),
         rrset = isc.dns.RRset(isc.dns.Name("sub.example.org"),
                               isc.dns.RRClass.IN(), isc.dns.RRType.NS(),
                               isc.dns.RRClass.IN(), isc.dns.RRType.NS(),
                               isc.dns.RRTTL(0))
                               isc.dns.RRTTL(0))
-        self.__check_prerequisite_exists(True, self.__datasrc_client, rrset)
+        self.__prereq_helper(method, expected, rrset)
         # As should glue
         # As should glue
         rrset = isc.dns.RRset(isc.dns.Name("ns.sub.example.org"),
         rrset = isc.dns.RRset(isc.dns.Name("ns.sub.example.org"),
                               isc.dns.RRClass.IN(), isc.dns.RRType.A(),
                               isc.dns.RRClass.IN(), isc.dns.RRType.A(),
                               isc.dns.RRTTL(0))
                               isc.dns.RRTTL(0))
-        self.__check_prerequisite_exists(True, self.__datasrc_client, rrset)
+        self.__prereq_helper(method, expected, rrset)
+
+    def test_check_prerequisite_exists(self):
+        method = self.__session._UpdateSession__prereq_rrset_exists
+        self.__check_prerequisite_exists_combined(method, True)
+
+    def test_check_prerequisite_does_not_exist(self):
+        method = self.__session._UpdateSession__prereq_rrset_does_not_exist
+        self.__check_prerequisite_exists_combined(method, False)
 
 
     def test_check_prerequisite_exists_value(self):
     def test_check_prerequisite_exists_value(self):
+        method = self.__session._UpdateSession__prereq_rrset_exists_value
+        
         rrset = isc.dns.RRset(isc.dns.Name("www.example.org"),
         rrset = isc.dns.RRset(isc.dns.Name("www.example.org"),
                               isc.dns.RRClass.IN(), isc.dns.RRType.A(),
                               isc.dns.RRClass.IN(), isc.dns.RRType.A(),
                               isc.dns.RRTTL(0))
                               isc.dns.RRTTL(0))
         # empty one should not match
         # empty one should not match
-        self.__check_prerequisite_exists_value(False, self.__datasrc_client,
-                                               rrset)
+        self.__prereq_helper(method, False, rrset)
 
 
         # When the rdata is added, it should match
         # When the rdata is added, it should match
         rrset.add_rdata(isc.dns.Rdata(isc.dns.RRType.A(),
         rrset.add_rdata(isc.dns.Rdata(isc.dns.RRType.A(),
                                       isc.dns.RRClass.IN(),
                                       isc.dns.RRClass.IN(),
                                       "192.0.2.1"))
                                       "192.0.2.1"))
-        self.__check_prerequisite_exists_value(True, self.__datasrc_client,
-                                               rrset)
+        self.__prereq_helper(method, True, rrset)
 
 
         # But adding more should not
         # But adding more should not
         rrset.add_rdata(isc.dns.Rdata(isc.dns.RRType.A(),
         rrset.add_rdata(isc.dns.Rdata(isc.dns.RRType.A(),
                                       isc.dns.RRClass.IN(),
                                       isc.dns.RRClass.IN(),
                                       "192.0.2.2"))
                                       "192.0.2.2"))
-        self.__check_prerequisite_exists_value(False, self.__datasrc_client,
-                                               rrset)
+        self.__prereq_helper(method, False, rrset)
 
 
         # Also test one with more than one RR
         # Also test one with more than one RR
         rrset = isc.dns.RRset(isc.dns.Name("example.org"),
         rrset = isc.dns.RRset(isc.dns.Name("example.org"),
                               isc.dns.RRClass.IN(), isc.dns.RRType.NS(),
                               isc.dns.RRClass.IN(), isc.dns.RRType.NS(),
                               isc.dns.RRTTL(0))
                               isc.dns.RRTTL(0))
-        self.__check_prerequisite_exists_value(False, self.__datasrc_client,
-                                               rrset)
+        self.__prereq_helper(method, False, rrset)
         rrset.add_rdata(isc.dns.Rdata(isc.dns.RRType.NS(),
         rrset.add_rdata(isc.dns.Rdata(isc.dns.RRType.NS(),
                                       isc.dns.RRClass.IN(),
                                       isc.dns.RRClass.IN(),
                                       "ns1.example.org."))
                                       "ns1.example.org."))
-        self.__check_prerequisite_exists_value(False, self.__datasrc_client,
-                                               rrset)
+        self.__prereq_helper(method, False, rrset)
         rrset.add_rdata(isc.dns.Rdata(isc.dns.RRType.NS(),
         rrset.add_rdata(isc.dns.Rdata(isc.dns.RRType.NS(),
                                       isc.dns.RRClass.IN(),
                                       isc.dns.RRClass.IN(),
                                       "ns2.example.org."))
                                       "ns2.example.org."))
-        self.__check_prerequisite_exists_value(False, self.__datasrc_client,
-                                               rrset)
+        self.__prereq_helper(method, False, rrset)
         rrset.add_rdata(isc.dns.Rdata(isc.dns.RRType.NS(),
         rrset.add_rdata(isc.dns.Rdata(isc.dns.RRType.NS(),
                                       isc.dns.RRClass.IN(),
                                       isc.dns.RRClass.IN(),
                                       "ns3.example.org."))
                                       "ns3.example.org."))
-        self.__check_prerequisite_exists_value(True, self.__datasrc_client,
-                                               rrset)
+        self.__prereq_helper(method, True, rrset)
         rrset.add_rdata(isc.dns.Rdata(isc.dns.RRType.NS(),
         rrset.add_rdata(isc.dns.Rdata(isc.dns.RRType.NS(),
                                       isc.dns.RRClass.IN(),
                                       isc.dns.RRClass.IN(),
                                       "ns4.example.org."))
                                       "ns4.example.org."))
-        self.__check_prerequisite_exists_value(False, self.__datasrc_client,
-                                               rrset)
+        self.__prereq_helper(method, False, rrset)
 
 
         # Repeat that, but try a different order of Rdata addition
         # Repeat that, but try a different order of Rdata addition
         rrset = isc.dns.RRset(isc.dns.Name("example.org"),
         rrset = isc.dns.RRset(isc.dns.Name("example.org"),
                               isc.dns.RRClass.IN(), isc.dns.RRType.NS(),
                               isc.dns.RRClass.IN(), isc.dns.RRType.NS(),
                               isc.dns.RRTTL(0))
                               isc.dns.RRTTL(0))
-        self.__check_prerequisite_exists_value(False, self.__datasrc_client,
-                                               rrset)
+        self.__prereq_helper(method, False, rrset)
         rrset.add_rdata(isc.dns.Rdata(isc.dns.RRType.NS(),
         rrset.add_rdata(isc.dns.Rdata(isc.dns.RRType.NS(),
                                       isc.dns.RRClass.IN(),
                                       isc.dns.RRClass.IN(),
                                       "ns3.example.org."))
                                       "ns3.example.org."))
-        self.__check_prerequisite_exists_value(False, self.__datasrc_client,
-                                               rrset)
+        self.__prereq_helper(method, False, rrset)
         rrset.add_rdata(isc.dns.Rdata(isc.dns.RRType.NS(),
         rrset.add_rdata(isc.dns.Rdata(isc.dns.RRType.NS(),
                                       isc.dns.RRClass.IN(),
                                       isc.dns.RRClass.IN(),
                                       "ns2.example.org."))
                                       "ns2.example.org."))
-        self.__check_prerequisite_exists_value(False, self.__datasrc_client,
-                                               rrset)
+        self.__prereq_helper(method, False, rrset)
         rrset.add_rdata(isc.dns.Rdata(isc.dns.RRType.NS(),
         rrset.add_rdata(isc.dns.Rdata(isc.dns.RRType.NS(),
                                       isc.dns.RRClass.IN(),
                                       isc.dns.RRClass.IN(),
                                       "ns1.example.org."))
                                       "ns1.example.org."))
-        self.__check_prerequisite_exists_value(True, self.__datasrc_client,
-                                               rrset)
+        self.__prereq_helper(method, True, rrset)
         rrset.add_rdata(isc.dns.Rdata(isc.dns.RRType.NS(),
         rrset.add_rdata(isc.dns.Rdata(isc.dns.RRType.NS(),
                                       isc.dns.RRClass.IN(),
                                       isc.dns.RRClass.IN(),
                                       "ns4.example.org."))
                                       "ns4.example.org."))
-        self.__check_prerequisite_exists_value(False, self.__datasrc_client,
-                                               rrset)
+        self.__prereq_helper(method, False, rrset)
 
 
         # and test one where the name does not even exist
         # and test one where the name does not even exist
         rrset = isc.dns.RRset(isc.dns.Name("doesnotexist.example.org"),
         rrset = isc.dns.RRset(isc.dns.Name("doesnotexist.example.org"),
@@ -347,169 +310,55 @@ class SessionTest(unittest.TestCase):
         rrset.add_rdata(isc.dns.Rdata(isc.dns.RRType.A(),
         rrset.add_rdata(isc.dns.Rdata(isc.dns.RRType.A(),
                                       isc.dns.RRClass.IN(),
                                       isc.dns.RRClass.IN(),
                                       "192.0.2.1"))
                                       "192.0.2.1"))
-        self.__check_prerequisite_exists_value(False, self.__datasrc_client,
-                                               rrset)
+        self.__prereq_helper(method, False, rrset)
 
 
-    def test_check_prerequisite_does_not_exist(self):
-        # This is essentially the same as test_check_prerequisite_exists(),
-        # but with the opposite resulting values
-        # www.example.org should have an A, but not an MX
-        rrset = isc.dns.RRset(isc.dns.Name("www.example.org"),
-                              isc.dns.RRClass.IN(), isc.dns.RRType.A(),
-                              isc.dns.RRTTL(0))
-        self.__check_prerequisite_does_not_exist(False, self.__datasrc_client,
-                                                 rrset)
-        rrset = isc.dns.RRset(isc.dns.Name("www.example.org"),
-                              isc.dns.RRClass.IN(), isc.dns.RRType.MX(),
-                              isc.dns.RRTTL(0))
-        self.__check_prerequisite_does_not_exist(True, self.__datasrc_client,
-                                                 rrset)
-
-        # example.org should have an MX, but not an A
-        rrset = isc.dns.RRset(isc.dns.Name("example.org"),
-                              isc.dns.RRClass.IN(), isc.dns.RRType.MX(),
-                              isc.dns.RRTTL(0))
-        self.__check_prerequisite_does_not_exist(False, self.__datasrc_client,
-                                                 rrset)
-        rrset = isc.dns.RRset(isc.dns.Name("example.org"),
-                              isc.dns.RRClass.IN(), isc.dns.RRType.A(),
-                              isc.dns.RRTTL(0))
-        self.__check_prerequisite_does_not_exist(True, self.__datasrc_client,
-                                                 rrset)
-
-        # Wildcard expansion should not be applied, but literal matches
-        # should work
-        rrset = isc.dns.RRset(isc.dns.Name("foo.wildcard.example.org"),
-                              isc.dns.RRClass.IN(), isc.dns.RRType.A(),
-                              isc.dns.RRTTL(0))
-        self.__check_prerequisite_does_not_exist(True, self.__datasrc_client,
-                                                 rrset)
-
-        rrset = isc.dns.RRset(isc.dns.Name("*.wildcard.example.org"),
-                              isc.dns.RRClass.IN(), isc.dns.RRType.A(),
-                              isc.dns.RRTTL(0))
-        self.__check_prerequisite_does_not_exist(False, self.__datasrc_client,
-                                                 rrset)
-
-        # Likewise, CNAME directly should match, but what it points to should
-        # not
-        rrset = isc.dns.RRset(isc.dns.Name("cname.example.org"),
-                              isc.dns.RRClass.IN(), isc.dns.RRType.A(),
-                              isc.dns.RRTTL(0))
-        self.__check_prerequisite_does_not_exist(True, self.__datasrc_client,
-                                                 rrset)
-
-        rrset = isc.dns.RRset(isc.dns.Name("cname.example.org"),
-                              isc.dns.RRClass.IN(), isc.dns.RRType.CNAME(),
-                              isc.dns.RRTTL(0))
-        self.__check_prerequisite_does_not_exist(False, self.__datasrc_client,
-                                                 rrset)
-
-        # And also make sure a delegation (itself) is not treated as existing
-        # data
-        rrset = isc.dns.RRset(isc.dns.Name("foo.sub.example.org"),
-                              isc.dns.RRClass.IN(), isc.dns.RRType.A(),
-                              isc.dns.RRTTL(0))
-        self.__check_prerequisite_does_not_exist(True, self.__datasrc_client,
-                                                 rrset)
-        # But the delegation data itself should match
-        rrset = isc.dns.RRset(isc.dns.Name("sub.example.org"),
-                              isc.dns.RRClass.IN(), isc.dns.RRType.NS(),
-                              isc.dns.RRTTL(0))
-        self.__check_prerequisite_does_not_exist(False, self.__datasrc_client,
-                                                 rrset)
-        # As should glue
-        rrset = isc.dns.RRset(isc.dns.Name("ns.sub.example.org"),
-                              isc.dns.RRClass.IN(), isc.dns.RRType.A(),
-                              isc.dns.RRTTL(0))
-        self.__check_prerequisite_does_not_exist(False, self.__datasrc_client,
-                                                 rrset)
-
-    def test_check_prerequisite_name_in_use(self):
-        rrset = isc.dns.RRset(isc.dns.Name("example.org"),
-                              isc.dns.RRClass.ANY(), isc.dns.RRType.ANY(),
-                              isc.dns.RRTTL(0))
-        self.__check_prerequisite_name_in_use(True, self.__datasrc_client,
-                                              rrset)
-
-        rrset = isc.dns.RRset(isc.dns.Name("www.example.org"),
-                              isc.dns.RRClass.ANY(), isc.dns.RRType.ANY(),
-                              isc.dns.RRTTL(0))
-        self.__check_prerequisite_name_in_use(True, self.__datasrc_client,
-                                              rrset)
-
-        rrset = isc.dns.RRset(isc.dns.Name("doesnotexist.example.org"),
-                              isc.dns.RRClass.ANY(), isc.dns.RRType.ANY(),
-                              isc.dns.RRTTL(0))
-        self.__check_prerequisite_name_in_use(False, self.__datasrc_client,
-                                              rrset)
-
-        rrset = isc.dns.RRset(isc.dns.Name("belowdelegation.sub.example.org"),
-                              isc.dns.RRClass.ANY(), isc.dns.RRType.ANY(),
-                              isc.dns.RRTTL(0))
-        self.__check_prerequisite_name_in_use(False, self.__datasrc_client,
-                                              rrset)
-
-        rrset = isc.dns.RRset(isc.dns.Name("foo.wildcard.example.org"),
-                              isc.dns.RRClass.ANY(), isc.dns.RRType.ANY(),
-                              isc.dns.RRTTL(0))
-        self.__check_prerequisite_name_in_use(False, self.__datasrc_client,
-                                              rrset)
-
-        # empty nonterminal should not match
-        rrset = isc.dns.RRset(isc.dns.Name("nonterminal.example.org"),
-                              isc.dns.RRClass.ANY(), isc.dns.RRType.ANY(),
-                              isc.dns.RRTTL(0))
-        self.__check_prerequisite_name_in_use(False, self.__datasrc_client,
-                                              rrset)
-        rrset = isc.dns.RRset(isc.dns.Name("empty.nonterminal.example.org"),
-                              isc.dns.RRClass.ANY(), isc.dns.RRType.ANY(),
-                              isc.dns.RRTTL(0))
-        self.__check_prerequisite_name_in_use(True, self.__datasrc_client,
-                                              rrset)
-
-    def test_check_prerequisite_name_not_in_use(self):
+    def __check_prerequisite_name_in_use_combined(self, method, expected):
+        '''shared code for the checks for the very similar (but reversed
+           in behaviour) methods __prereq_name_in_use and
+           __prereq_name_not_in_use
+        '''
         rrset = isc.dns.RRset(isc.dns.Name("example.org"),
         rrset = isc.dns.RRset(isc.dns.Name("example.org"),
                               isc.dns.RRClass.NONE(), isc.dns.RRType.ANY(),
                               isc.dns.RRClass.NONE(), isc.dns.RRType.ANY(),
                               isc.dns.RRTTL(0))
                               isc.dns.RRTTL(0))
-        self.__check_prerequisite_name_not_in_use(False, self.__datasrc_client,
-                                                  rrset)
+        self.__prereq_helper(method, expected, rrset)
 
 
         rrset = isc.dns.RRset(isc.dns.Name("www.example.org"),
         rrset = isc.dns.RRset(isc.dns.Name("www.example.org"),
                               isc.dns.RRClass.NONE(), isc.dns.RRType.ANY(),
                               isc.dns.RRClass.NONE(), isc.dns.RRType.ANY(),
                               isc.dns.RRTTL(0))
                               isc.dns.RRTTL(0))
-        self.__check_prerequisite_name_not_in_use(False, self.__datasrc_client,
-                                                  rrset)
+        self.__prereq_helper(method, expected, rrset)
 
 
         rrset = isc.dns.RRset(isc.dns.Name("doesnotexist.example.org"),
         rrset = isc.dns.RRset(isc.dns.Name("doesnotexist.example.org"),
                               isc.dns.RRClass.NONE(), isc.dns.RRType.ANY(),
                               isc.dns.RRClass.NONE(), isc.dns.RRType.ANY(),
                               isc.dns.RRTTL(0))
                               isc.dns.RRTTL(0))
-        self.__check_prerequisite_name_not_in_use(True, self.__datasrc_client,
-                                                  rrset)
+        self.__prereq_helper(method, not expected, rrset)
 
 
         rrset = isc.dns.RRset(isc.dns.Name("belowdelegation.sub.example.org"),
         rrset = isc.dns.RRset(isc.dns.Name("belowdelegation.sub.example.org"),
                               isc.dns.RRClass.NONE(), isc.dns.RRType.ANY(),
                               isc.dns.RRClass.NONE(), isc.dns.RRType.ANY(),
                               isc.dns.RRTTL(0))
                               isc.dns.RRTTL(0))
-        self.__check_prerequisite_name_not_in_use(True, self.__datasrc_client,
-                                                  rrset)
+        self.__prereq_helper(method, not expected, rrset)
 
 
         rrset = isc.dns.RRset(isc.dns.Name("foo.wildcard.example.org"),
         rrset = isc.dns.RRset(isc.dns.Name("foo.wildcard.example.org"),
                               isc.dns.RRClass.NONE(), isc.dns.RRType.ANY(),
                               isc.dns.RRClass.NONE(), isc.dns.RRType.ANY(),
                               isc.dns.RRTTL(0))
                               isc.dns.RRTTL(0))
-        self.__check_prerequisite_name_not_in_use(True, self.__datasrc_client,
-                                                  rrset)
+        self.__prereq_helper(method, not expected, rrset)
 
 
         # empty nonterminal should not match
         # empty nonterminal should not match
         rrset = isc.dns.RRset(isc.dns.Name("nonterminal.example.org"),
         rrset = isc.dns.RRset(isc.dns.Name("nonterminal.example.org"),
                               isc.dns.RRClass.NONE(), isc.dns.RRType.ANY(),
                               isc.dns.RRClass.NONE(), isc.dns.RRType.ANY(),
                               isc.dns.RRTTL(0))
                               isc.dns.RRTTL(0))
-        self.__check_prerequisite_name_not_in_use(True, self.__datasrc_client,
-                                                  rrset)
+        self.__prereq_helper(method, not expected, rrset)
         rrset = isc.dns.RRset(isc.dns.Name("empty.nonterminal.example.org"),
         rrset = isc.dns.RRset(isc.dns.Name("empty.nonterminal.example.org"),
                               isc.dns.RRClass.NONE(), isc.dns.RRType.ANY(),
                               isc.dns.RRClass.NONE(), isc.dns.RRType.ANY(),
                               isc.dns.RRTTL(0))
                               isc.dns.RRTTL(0))
-        self.__check_prerequisite_name_not_in_use(False, self.__datasrc_client,
-                                                  rrset)
+        self.__prereq_helper(method, expected, rrset)
+
+    def test_check_prerequisite_name_in_use(self):
+        method = self.__session._UpdateSession__prereq_name_in_use
+        self.__check_prerequisite_name_in_use_combined(method, True)
+
+    def test_check_prerequisite_name_not_in_use(self):
+        method = self.__session._UpdateSession__prereq_name_not_in_use
+        self.__check_prerequisite_name_in_use_combined(method, False)
 
 
     def check_prerequisite_result(self, expected, prerequisites):
     def check_prerequisite_result(self, expected, prerequisites):
         '''Helper method for checking the result of a prerequisite check;
         '''Helper method for checking the result of a prerequisite check;