From bc87a56cb71ed55c8894c6578294a726a3b1349b Mon Sep 17 00:00:00 2001 From: Petr Spacek Date: Fri, 27 Mar 2015 15:51:24 +0100 Subject: [PATCH] Add response to NoAnswer exception. Only question section is returned from str(NoAnswer). Whole response variable is intended for application debug logs and is not returned from str(). --- dns/resolver.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/dns/resolver.py b/dns/resolver.py index aaf60813..3d26e2f8 100644 --- a/dns/resolver.py +++ b/dns/resolver.py @@ -73,9 +73,12 @@ Timeout = dns.exception.Timeout class NoAnswer(dns.exception.DNSException): """The DNS response does not contain an answer to the question.""" - fmt = '%s: {question}' % __doc__[:-1] - supp_kwargs = set(['question']) + fmt = '%s: {query}' % __doc__[:-1] + supp_kwargs = set(['response']) + def _fmt_kwargs(self, **kwargs): + return super(NoAnswer, self)._fmt_kwargs( + query=kwargs['response'].question) class NoNameservers(dns.exception.DNSException): """No non-broken nameservers are available to answer the query.""" @@ -166,11 +169,11 @@ class Answer(object): continue except KeyError: if raise_on_no_answer: - raise NoAnswer(question=response.question) + raise NoAnswer(response=response) if raise_on_no_answer: - raise NoAnswer(question=response.question) + raise NoAnswer(response=response) if rrset is None and raise_on_no_answer: - raise NoAnswer(question=request.question) + raise NoAnswer(response=response) self.canonical_name = qname self.rrset = rrset if rrset is None: -- 2.47.3