def test_find_all_existing_data(self): diff = Diff(self, Name('example.org'), single_update_mode=True) diff.add_data(self.__rrset_soa) diff.delete_data(self.__rrset_soa) # override the actual find method self.__create_find_all(ZoneFinder.SUCCESS, [ self.__rrset3 ], 0) # Sanity check result, rrsets, _ = diff.find_all_updated(self.__rrset3.get_name()) self.assertEqual(ZoneFinder.SUCCESS, result) self.assertEqual([self.__rrset3], rrsets) self.__check_find_all_call(diff.find_all_updated, self.__rrset3, ZoneFinder.SUCCESS, [self.__rrset3]) self.__check_find_all_call(diff.find_all, self.__rrset3, ZoneFinder.SUCCESS, [self.__rrset3]) # Add a second rr with different type at same name add_rrset = RRset(self.__rrset3.get_name(), self.__rrclass, RRType.A(), self.__ttl) add_rrset.add_rdata(Rdata(RRType.A(), self.__rrclass, "192.0.2.2")) diff.add_data(add_rrset) self.__check_find_all_call(diff.find_all_updated, self.__rrset3, ZoneFinder.SUCCESS, [self.__rrset3, add_rrset]) self.__check_find_all_call(diff.find_all, self.__rrset3, ZoneFinder.SUCCESS, [self.__rrset3]) # Remove original one diff.delete_data(self.__rrset3) self.__check_find_all_call(diff.find_all_updated, self.__rrset3, ZoneFinder.SUCCESS, [add_rrset]) self.__check_find_all_call(diff.find_all, self.__rrset3, ZoneFinder.SUCCESS, [self.__rrset3]) # And remove new one, result should then become NXDOMAIN diff.delete_data(add_rrset) result, rrsets, _ = diff.find_all_updated(self.__rrset3.get_name()) self.assertEqual(ZoneFinder.NXDOMAIN, result) self.assertEqual([ ], rrsets) self.__check_find_all_call(diff.find_all_updated, self.__rrset3, ZoneFinder.NXDOMAIN) self.__check_find_all_call(diff.find_all, self.__rrset3, ZoneFinder.SUCCESS, [self.__rrset3])