Commit 5d23278e authored by Boxiang Sun's avatar Boxiang Sun

test_networkbench: Mock the return value of dns.resolve.query

parent ce634067
...@@ -30,8 +30,18 @@ import os.path ...@@ -30,8 +30,18 @@ import os.path
from slapos.networkbench import dnsbench from slapos.networkbench import dnsbench
from slapos.networkbench.ping import ping, ping6 from slapos.networkbench.ping import ping, ping6
from slapos.networkbench.http import request from slapos.networkbench.http import request
import dns
import mock
class MockIPAddress:
def __init__(self, ip_text):
self.ip = ip_text
def to_text(self):
return self.ip
MOCK_IP_ADDRESS_LIST = [MockIPAddress('161.97.166.226'), MockIPAddress('176.31.129.213')]
DNS_EXPECTED_LIST = ["161.97.166.226", "176.31.129.213"] DNS_EXPECTED_LIST = ["161.97.166.226", "176.31.129.213"]
class TestDNSBench(unittest.TestCase): class TestDNSBench(unittest.TestCase):
...@@ -40,17 +50,20 @@ class TestDNSBench(unittest.TestCase): ...@@ -40,17 +50,20 @@ class TestDNSBench(unittest.TestCase):
""" """
Test dns resolution Test dns resolution
""" """
info = dnsbench.resolve( with mock.patch.object(dns.resolver, "query") as query:
"eu.web.vifib.com", DNS_EXPECTED_LIST) query.return_value = MOCK_IP_ADDRESS_LIST
self.assertEqual(info[0], 'DNS')
self.assertEqual(info[1], 'eu.web.vifib.com')
self.assertEqual(info[2], 200)
self.assertLess(info[3], 30) info = dnsbench.resolve(
self.assertEqual(info[4], 'OK', "eu.web.vifib.com", DNS_EXPECTED_LIST)
"%s != OK, full info: %s" % (info[4], info) )
self.assertEqual(set(info[5]), set([u'161.97.166.226', u'176.31.129.213']), self.assertEqual(info[0], 'DNS')
self.assertEqual(info[1], 'eu.web.vifib.com')
self.assertEqual(info[2], 200)
self.assertLess(info[3], 30)
self.assertEqual(info[4], 'OK',
"%s != OK, full info: %s" % (info[4], info) )
self.assertEqual(set(info[5]), set([u'161.97.166.226', u'176.31.129.213']),
"%s != set([u'161.97.166.226', u'176.31.129.213']), full info: %s" % (set(info[5]), info)) "%s != set([u'161.97.166.226', u'176.31.129.213']), full info: %s" % (set(info[5]), info))
def test_dnsbench_fail(self): def test_dnsbench_fail(self):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment