Skip to content

Commit

Permalink
Add test case for partially working DNS resolver conf
Browse files Browse the repository at this point in the history
  • Loading branch information
jacksontj committed Mar 24, 2015
1 parent 55c1289 commit 1cfc9ae
Showing 1 changed file with 33 additions and 5 deletions.
38 changes: 33 additions & 5 deletions ci/new_tsqa/tests/test_hostdb.py
Expand Up @@ -27,29 +27,57 @@
import tsqa.test_cases


class TestHostDBFailedDNS(tsqa.test_cases.DynamicHTTPEndpointCase, helpers.EnvironmentCase):
class TestHostDBPartiallyFailedDNS(helpers.EnvironmentCase):
'''
Tests for how hostdb handles when there is no reachable resolver
Tests for how hostdb handles when there is one failed and one working resolver
'''
@classmethod
def setUpEnv(cls, env):
cls.configs['remap.config'].add_line('map / http://some_nonexistant_domain:{0}/'.format(cls.http_endpoint.address[1]))
resolv_conf_path = os.path.join(env.layout.prefix, 'resolv.conf')

cls.configs['records.config']['CONFIG'].update({
'proxy.config.http.response_server_enabled': 2, # only add server headers when there weren't any
'proxy.config.hostdb.lookup_timeout': 1,
'proxy.config.dns.resolv_conf': resolv_conf_path,
'proxy.config.url_remap.remap_required': 0,

})

with open(resolv_conf_path, 'w') as fh:
fh.write('nameserver 1.1.1.0\n') # some non-existant nameserver
fh.write('nameserver 8.8.8.8\n') # some REAL nameserver

def test_working(self):
start = time.time()
ret = requests.get('http://trafficserver.readthedocs.org',
proxies=self.proxies,
)
self.assertLess(time.time() - start, self.configs['records.config']['CONFIG']['proxy.config.hostdb.lookup_timeout'])
self.assertEqual(ret.status_code, 200)


class TestHostDBFailedDNS(helpers.EnvironmentCase):
'''
Tests for how hostdb handles when there is no reachable resolver
'''
@classmethod
def setUpEnv(cls, env):
resolv_conf_path = os.path.join(env.layout.prefix, 'resolv.conf')

cls.configs['records.config']['CONFIG'].update({
'proxy.config.http.response_server_enabled': 2, # only add server headers when there weren't any
'proxy.config.hostdb.lookup_timeout': 1,
'proxy.config.dns.resolv_conf': resolv_conf_path,
'proxy.config.url_remap.remap_required': 0,

})

with open(resolv_conf_path, 'w') as fh:
fh.write('nameserver 1.1.1.1\n') # some non-existant nameserver
fh.write('nameserver 1.1.1.0\n') # some non-existant nameserver

def test_lookup_timeout(self):
start = time.time()
ret = requests.get(self.endpoint_url('/test'),
ret = requests.get('http://some_nonexistant_domain',
proxies=self.proxies,
)
self.assertGreater(time.time() - start, self.configs['records.config']['CONFIG']['proxy.config.hostdb.lookup_timeout'])
Expand Down

0 comments on commit 1cfc9ae

Please sign in to comment.