]> git.ipfire.org Git - thirdparty/dnspython.git/commitdiff
Add response to NoAnswer exception.
authorPetr Spacek <pspacek@redhat.com>
Fri, 27 Mar 2015 14:51:24 +0000 (15:51 +0100)
committerPetr Spacek <pspacek@redhat.com>
Fri, 27 Mar 2015 14:56:25 +0000 (15:56 +0100)
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

index aaf60813002ff42237986b8e3001a79c465a431a..3d26e2f8b6d87eede60e555997df946950bdb971 100644 (file)
@@ -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: