def test_find_updated_nonexistent_data(self): ''' Test whether added data for a query that would originally result in NXDOMAIN works ''' 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(ZoneFinder.NXDOMAIN, None, 0) # Sanity check self.__check_find_call(diff.find_updated, self.__rrset3, ZoneFinder.NXDOMAIN) self.__check_find_call(diff.find, self.__rrset3, ZoneFinder.NXDOMAIN) # Add data and see it is returned diff.add_data(self.__rrset3) self.__check_find_call(diff.find_updated, self.__rrset3, ZoneFinder.SUCCESS, self.__rrset3.get_rdata()) self.__check_find_call(diff.find, self.__rrset3, ZoneFinder.NXDOMAIN) # Add unrelated data, result should be the same diff.add_data(self.__rrset2) self.__check_find_call(diff.find_updated, self.__rrset3, ZoneFinder.SUCCESS, self.__rrset3.get_rdata()) self.__check_find_call(diff.find, self.__rrset3, ZoneFinder.NXDOMAIN) # Remove, result should now be NXDOMAIN again diff.delete_data(self.__rrset3) result, rrset, _ = diff.find_updated(self.__rrset3.get_name(), self.__rrset3.get_type()) self.__check_find_call(diff.find_updated, self.__rrset3, ZoneFinder.NXDOMAIN) self.__check_find_call(diff.find, self.__rrset3, ZoneFinder.NXDOMAIN)