From: Ben Darnell Date: Sun, 29 Dec 2013 01:11:20 +0000 (-0500) Subject: Disable the "bad_host" tests on CaresResolver X-Git-Tag: v3.2.0b1~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9d57a0cdfc5bd738017fc74891720f0bd03e28e3;p=thirdparty%2Ftornado.git Disable the "bad_host" tests on CaresResolver This is an unfortunate hack, but c-ares doesn't handle fake NXDOMAIN responses in the same way as other resolvers. --- diff --git a/tornado/test/netutil_test.py b/tornado/test/netutil_test.py index 777fb4257..27f57fb2f 100644 --- a/tornado/test/netutil_test.py +++ b/tornado/test/netutil_test.py @@ -32,6 +32,13 @@ else: class _ResolverTestMixin(object): + def skipOnCares(self): + # Some DNS-hijacking ISPs (e.g. Time Warner) return non-empty results + # with an NXDOMAIN status code. Most resolvers treat this as an error; + # C-ares returns the results, making the "bad_host" tests unreliable. + if self.resolver.__class__.__name__ == 'CaresResolver': + self.skipTest("CaresResolver doesn't recognize fake NXDOMAIN") + def test_localhost(self): self.resolver.resolve('localhost', 80, callback=self.stop) result = self.wait() @@ -45,6 +52,7 @@ class _ResolverTestMixin(object): addrinfo) def test_bad_host(self): + self.skipOnCares() def handler(exc_typ, exc_val, exc_tb): self.stop(exc_val) return True # Halt propagation. @@ -57,6 +65,7 @@ class _ResolverTestMixin(object): @gen_test def test_future_interface_bad_host(self): + self.skipOnCares() with self.assertRaises(Exception): yield self.resolver.resolve('doesntexist', 80, socket.AF_UNSPEC)