Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 27 additions & 25 deletions tests/unittests/distros/test_resolv.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@

import re

import pytest

from cloudinit.distros.parsers import resolv_conf
from tests.unittests.helpers import TestCase

BASE_RESOLVE = """
; generated by /sbin/dhclient-script
Expand All @@ -14,54 +15,55 @@
BASE_RESOLVE = BASE_RESOLVE.strip()


class TestResolvHelper(TestCase):
class TestResolvHelper:
def test_parse_same(self):
rp = resolv_conf.ResolvConf(BASE_RESOLVE)
rp_r = str(rp).strip()
self.assertEqual(BASE_RESOLVE, rp_r)
assert BASE_RESOLVE == rp_r

def test_local_domain(self):
rp = resolv_conf.ResolvConf(BASE_RESOLVE)
self.assertIsNone(rp.local_domain)
assert rp.local_domain is None

rp.local_domain = "bob"
self.assertEqual("bob", rp.local_domain)
self.assertIn("domain bob", str(rp))
assert "bob" == rp.local_domain
assert "domain bob" in str(rp)

def test_nameservers(self):
rp = resolv_conf.ResolvConf(BASE_RESOLVE)

# Start with two nameservers that already appear in the configuration.
self.assertIn("10.15.44.14", rp.nameservers)
self.assertIn("10.15.30.92", rp.nameservers)
assert "10.15.44.14" in rp.nameservers
assert "10.15.30.92" in rp.nameservers

# Add a third nameserver and verify it appears in the resolv.conf.
rp.add_nameserver("10.2")
self.assertIn("10.2", rp.nameservers)
self.assertIn("nameserver 10.2", str(rp))
self.assertEqual(len(rp.nameservers), 3)
assert "10.2" in rp.nameservers
assert "nameserver 10.2" in str(rp)
assert len(rp.nameservers) == 3

# Add a fourth nameserver and verify it appears in the resolv.conf.
rp.add_nameserver("10.3")
self.assertIn("10.3", rp.nameservers)
self.assertIn("nameserver 10.3", str(rp))
self.assertEqual(len(rp.nameservers), 4)
assert "10.3" in rp.nameservers
assert "nameserver 10.3" in str(rp)
assert len(rp.nameservers) == 4

def test_search_domains(self):
rp = resolv_conf.ResolvConf(BASE_RESOLVE)
self.assertIn("yahoo.com", rp.search_domains)
self.assertIn("blah.yahoo.com", rp.search_domains)
assert "yahoo.com" in rp.search_domains
assert "blah.yahoo.com" in rp.search_domains
rp.add_search_domain("bbb.y.com")
self.assertIn("bbb.y.com", rp.search_domains)
self.assertTrue(re.search(r"search(.*)bbb.y.com(.*)", str(rp)))
self.assertIn("bbb.y.com", rp.search_domains)
assert "bbb.y.com" in rp.search_domains
assert re.search(r"search(.*)bbb.y.com(.*)", str(rp))
assert "bbb.y.com" in rp.search_domains
rp.add_search_domain("bbb.y.com")
self.assertEqual(len(rp.search_domains), 3)
assert len(rp.search_domains) == 3
rp.add_search_domain("bbb2.y.com")
self.assertEqual(len(rp.search_domains), 4)
assert len(rp.search_domains) == 4
rp.add_search_domain("bbb3.y.com")
self.assertEqual(len(rp.search_domains), 5)
assert len(rp.search_domains) == 5
rp.add_search_domain("bbb4.y.com")
self.assertEqual(len(rp.search_domains), 6)
self.assertRaises(ValueError, rp.add_search_domain, "bbb5.y.com")
self.assertEqual(len(rp.search_domains), 6)
assert len(rp.search_domains) == 6
with pytest.raises(ValueError):
rp.add_search_domain("bbb5.y.com")
assert len(rp.search_domains) == 6