summaryrefslogtreecommitdiff
path: root/tests/unittests/test_distros/test_generic.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unittests/test_distros/test_generic.py')
-rw-r--r--tests/unittests/test_distros/test_generic.py65
1 files changed, 37 insertions, 28 deletions
diff --git a/tests/unittests/test_distros/test_generic.py b/tests/unittests/test_distros/test_generic.py
index 8ceb141a..3ca769b4 100644
--- a/tests/unittests/test_distros/test_generic.py
+++ b/tests/unittests/test_distros/test_generic.py
@@ -55,8 +55,7 @@ class TestGenericDistro(helpers.FilesystemMockingTestCase):
# Make a temp directoy for tests to use.
self.tmp = self.makeDir()
- def test_sudoers_ensure_rules(self):
- rules = 'ALL=(ALL:ALL) ALL'
+ def _write_load_sudoers(self, user, rules):
cls = distros.fetch("ubuntu")
d = cls("ubuntu", {}, None)
os.makedirs(os.path.join(self.tmp, "etc"))
@@ -66,38 +65,48 @@ class TestGenericDistro(helpers.FilesystemMockingTestCase):
d.write_sudo_rules("harlowja", rules)
contents = util.load_file(d.ci_sudoers_fn)
self.restore()
- lines = contents.splitlines()
+ return contents
+
+ def _count_in(self, lines_look_for, text_content):
found_amount = 0
- expected = ['harlowja ALL=(ALL:ALL) ALL']
- for e in expected:
- for line in lines:
+ for e in lines_look_for:
+ for line in text_content.splitlines():
line = line.strip()
if line == e:
found_amount += 1
- self.assertEquals(1, found_amount)
+ return found_amount
- def test_sudoers_ensure_rules_list(self):
- rules = ['ALL=(ALL:ALL) ALL']
- rules.append('B-ALL=(ALL:ALL) ALL')
- cls = distros.fetch("ubuntu")
- d = cls("ubuntu", {}, None)
- os.makedirs(os.path.join(self.tmp, "etc"))
- os.makedirs(os.path.join(self.tmp, "etc", 'sudoers.d'))
- self.patchOS(self.tmp)
- self.patchUtils(self.tmp)
- d.write_sudo_rules("harlowja", rules)
- contents = util.load_file(d.ci_sudoers_fn)
- self.restore()
- lines = contents.splitlines()
- found_amount = 0
+ def test_sudoers_ensure_rules(self):
+ rules = 'ALL=(ALL:ALL) ALL'
+ contents = self._write_load_sudoers('harlowja', rules)
expected = ['harlowja ALL=(ALL:ALL) ALL']
- expected.append('harlowja B-ALL=(ALL:ALL) ALL')
- for e in expected:
- for line in lines:
- line = line.strip()
- if line == e:
- found_amount += 1
- self.assertEquals(2, found_amount)
+ self.assertEquals(len(expected), self._count_in(expected, contents))
+ not_expected = [
+ 'harlowja A',
+ 'harlowja L',
+ 'harlowja L',
+ ]
+ self.assertEquals(0, self._count_in(not_expected, contents))
+
+ def test_sudoers_ensure_rules_list(self):
+ rules = [
+ 'ALL=(ALL:ALL) ALL',
+ 'B-ALL=(ALL:ALL) ALL',
+ 'C-ALL=(ALL:ALL) ALL',
+ ]
+ contents = self._write_load_sudoers('harlowja', rules)
+ expected = [
+ 'harlowja ALL=(ALL:ALL) ALL',
+ 'harlowja B-ALL=(ALL:ALL) ALL',
+ 'harlowja C-ALL=(ALL:ALL) ALL',
+ ]
+ self.assertEquals(len(expected), self._count_in(expected, contents))
+ not_expected = [
+ 'harlowja A',
+ 'harlowja L',
+ 'harlowja L',
+ ]
+ self.assertEquals(0, self._count_in(not_expected, contents))
def test_sudoers_ensure_new(self):
cls = distros.fetch("ubuntu")