Update for differences from py3 in the backported code
In py3 dicts are not predictable, make sure the keys are sorted so that the tests are useful. Use StringIO.StringIO instead of io.StringIO which requires unicode text. kickstart timezone.ntpservers is a set() so adjust the test for it. Related: rhbz#1718473
This commit is contained in:
parent
406dddafef
commit
8e650d1d07
@ -202,7 +202,7 @@ def pretty_dict(d):
|
|||||||
key="str", key="str1,str2", ...
|
key="str", key="str1,str2", ...
|
||||||
"""
|
"""
|
||||||
result = []
|
result = []
|
||||||
for k in d:
|
for k in sorted(d.keys()):
|
||||||
if type(d[k]) == type(""):
|
if type(d[k]) == type(""):
|
||||||
result.append('%s="%s"' % (k, d[k]))
|
result.append('%s="%s"' % (k, d[k]))
|
||||||
elif type(d[k]) == type([]) and type(d[k][0]) == type(""):
|
elif type(d[k]) == type([]) and type(d[k][0]) == type(""):
|
||||||
|
@ -36,7 +36,7 @@ log = logging.getLogger("lorax-composer")
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
from glob import glob
|
from glob import glob
|
||||||
from io import StringIO
|
from StringIO import StringIO
|
||||||
from math import ceil
|
from math import ceil
|
||||||
import pytoml as toml
|
import pytoml as toml
|
||||||
import shutil
|
import shutil
|
||||||
@ -448,7 +448,7 @@ def customize_ks_template(ks_template, recipe):
|
|||||||
|
|
||||||
output = StringIO()
|
output = StringIO()
|
||||||
for line in ks_template.splitlines():
|
for line in ks_template.splitlines():
|
||||||
for cmd in commands:
|
for cmd in sorted(commands.keys()):
|
||||||
(new_command, value, default, replace) = commands[cmd]
|
(new_command, value, default, replace) = commands[cmd]
|
||||||
if line.startswith(cmd):
|
if line.startswith(cmd):
|
||||||
found[cmd] = True
|
found[cmd] = True
|
||||||
@ -466,7 +466,7 @@ def customize_ks_template(ks_template, recipe):
|
|||||||
# Write out defaults for the ones not found
|
# Write out defaults for the ones not found
|
||||||
# These must go FIRST because the template still needs to have the packages added
|
# These must go FIRST because the template still needs to have the packages added
|
||||||
defaults = StringIO()
|
defaults = StringIO()
|
||||||
for cmd in commands:
|
for cmd in sorted(commands.keys()):
|
||||||
if cmd in found:
|
if cmd in found:
|
||||||
continue
|
continue
|
||||||
(new_command, value, default, _) = commands[cmd]
|
(new_command, value, default, _) = commands[cmd]
|
||||||
|
@ -636,7 +636,7 @@ version = "*"
|
|||||||
self.assertEqual(sum([1 for l in result.splitlines() if l.startswith("bootloader")]), 1)
|
self.assertEqual(sum([1 for l in result.splitlines() if l.startswith("bootloader")]), 1)
|
||||||
self.assertTrue(self._checkBootloader(result, "none", line_limit=2))
|
self.assertTrue(self._checkBootloader(result, "none", line_limit=2))
|
||||||
self.assertEqual(sum([1 for l in result.splitlines() if l.startswith("timezone")]), 1)
|
self.assertEqual(sum([1 for l in result.splitlines() if l.startswith("timezone")]), 1)
|
||||||
self.assertTrue(self._checkTimezone(result, {"timezone": "UTC", "ntpservers": []}, line_limit=2))
|
self.assertTrue(self._checkTimezone(result, {"timezone": "UTC", "ntpservers": []}, line_limit=5))
|
||||||
self.assertTrue("services" not in result)
|
self.assertTrue("services" not in result)
|
||||||
|
|
||||||
# Make sure that a kickstart with a bootloader, and no timezone has timezone added to the top
|
# Make sure that a kickstart with a bootloader, and no timezone has timezone added to the top
|
||||||
@ -645,7 +645,7 @@ version = "*"
|
|||||||
self.assertEqual(sum([1 for l in result.splitlines() if l.startswith("bootloader")]), 1)
|
self.assertEqual(sum([1 for l in result.splitlines() if l.startswith("bootloader")]), 1)
|
||||||
self.assertTrue(self._checkBootloader(result, "mbr"))
|
self.assertTrue(self._checkBootloader(result, "mbr"))
|
||||||
self.assertEqual(sum([1 for l in result.splitlines() if l.startswith("timezone")]), 1)
|
self.assertEqual(sum([1 for l in result.splitlines() if l.startswith("timezone")]), 1)
|
||||||
self.assertTrue(self._checkTimezone(result, {"timezone": "UTC", "ntpservers": []}, line_limit=1))
|
self.assertTrue(self._checkTimezone(result, {"timezone": "UTC", "ntpservers": []}, line_limit=5))
|
||||||
self.assertTrue("services" not in result)
|
self.assertTrue("services" not in result)
|
||||||
|
|
||||||
# Make sure that a kickstart with a bootloader and timezone has neither added
|
# Make sure that a kickstart with a bootloader and timezone has neither added
|
||||||
@ -690,13 +690,14 @@ disabled = ["postfix", "telnetd"]
|
|||||||
|
|
||||||
# Test against a kickstart without bootloader
|
# Test against a kickstart without bootloader
|
||||||
result = customize_ks_template("firewall --enabled\n", recipe)
|
result = customize_ks_template("firewall --enabled\n", recipe)
|
||||||
|
print(result)
|
||||||
self.assertTrue(self._checkBootloader(result, "nosmt=force", line_limit=2))
|
self.assertTrue(self._checkBootloader(result, "nosmt=force", line_limit=2))
|
||||||
self.assertEqual(sum([1 for l in result.splitlines() if l.startswith("bootloader")]), 1)
|
self.assertEqual(sum([1 for l in result.splitlines() if l.startswith("bootloader")]), 1)
|
||||||
self.assertTrue(self._checkTimezone(result, tz_dict, line_limit=2))
|
self.assertTrue(self._checkTimezone(result, tz_dict, line_limit=5))
|
||||||
self.assertEqual(sum([1 for l in result.splitlines() if l.startswith("timezone")]), 1)
|
self.assertEqual(sum([1 for l in result.splitlines() if l.startswith("timezone")]), 1)
|
||||||
self.assertTrue(self._checkLang(result, ["en_CA.utf8", "en_HK.utf8"], line_limit=4))
|
self.assertTrue(self._checkLang(result, ["en_CA.utf8", "en_HK.utf8"], line_limit=4))
|
||||||
self.assertEqual(sum([1 for l in result.splitlines() if l.startswith("lang")]), 1)
|
self.assertEqual(sum([1 for l in result.splitlines() if l.startswith("lang")]), 1)
|
||||||
self.assertTrue(self._checkKeyboard(result, "de (dvorak)", line_limit=4))
|
self.assertTrue(self._checkKeyboard(result, "de (dvorak)", line_limit=3))
|
||||||
self.assertEqual(sum([1 for l in result.splitlines() if l.startswith("keyboard")]), 1)
|
self.assertEqual(sum([1 for l in result.splitlines() if l.startswith("keyboard")]), 1)
|
||||||
self.assertTrue(self._checkFirewall(result,
|
self.assertTrue(self._checkFirewall(result,
|
||||||
{"ports": ["22:tcp", "80:tcp", "imap:tcp", "53:tcp", "53:udp"],
|
{"ports": ["22:tcp", "80:tcp", "imap:tcp", "53:tcp", "53:udp"],
|
||||||
@ -704,13 +705,14 @@ disabled = ["postfix", "telnetd"]
|
|||||||
self.assertEqual(sum([1 for l in result.splitlines() if l.startswith("firewall")]), 1)
|
self.assertEqual(sum([1 for l in result.splitlines() if l.startswith("firewall")]), 1)
|
||||||
self.assertTrue(self._checkServices(result,
|
self.assertTrue(self._checkServices(result,
|
||||||
{"enabled": ["cockpit.socket", "httpd", "sshd"], "disabled": ["postfix", "telnetd"]},
|
{"enabled": ["cockpit.socket", "httpd", "sshd"], "disabled": ["postfix", "telnetd"]},
|
||||||
line_limit=8))
|
line_limit=6))
|
||||||
self.assertEqual(sum([1 for l in result.splitlines() if l.startswith("services")]), 1)
|
self.assertEqual(sum([1 for l in result.splitlines() if l.startswith("services")]), 1)
|
||||||
|
|
||||||
# Test against a kickstart with a bootloader line
|
# Test against a kickstart with a bootloader line
|
||||||
result = customize_ks_template("firewall --enabled\nbootloader --location=mbr\n", recipe)
|
result = customize_ks_template("firewall --enabled\nbootloader --location=mbr\n", recipe)
|
||||||
|
print(result)
|
||||||
self.assertTrue(self._checkBootloader(result, "nosmt=force"))
|
self.assertTrue(self._checkBootloader(result, "nosmt=force"))
|
||||||
self.assertTrue(self._checkTimezone(result, tz_dict, line_limit=2))
|
self.assertTrue(self._checkTimezone(result, tz_dict, line_limit=5))
|
||||||
|
|
||||||
# Test against all of the available templates
|
# Test against all of the available templates
|
||||||
share_dir = "./share/"
|
share_dir = "./share/"
|
||||||
|
@ -804,7 +804,7 @@ ntpservers = ["1.north-america.pool.ntp.org"]
|
|||||||
"""
|
"""
|
||||||
ks = self._blueprint_to_ks(blueprint_data)
|
ks = self._blueprint_to_ks(blueprint_data)
|
||||||
self.assertEqual(ks.handler.timezone.timezone, "US/Samoa")
|
self.assertEqual(ks.handler.timezone.timezone, "US/Samoa")
|
||||||
self.assertEqual(ks.handler.timezone.ntpservers, ["1.north-america.pool.ntp.org"])
|
self.assertEqual(ks.handler.timezone.ntpservers, set(["1.north-america.pool.ntp.org"]))
|
||||||
|
|
||||||
def test_locale_languages(self):
|
def test_locale_languages(self):
|
||||||
blueprint_data = """name = "test-locale"
|
blueprint_data = """name = "test-locale"
|
||||||
@ -1078,4 +1078,4 @@ ntpservers = ["0.north-america.pool.ntp.org", "1.north-america.pool.ntp.org"]
|
|||||||
self.assertEqual(studentsGroup.name, "students")
|
self.assertEqual(studentsGroup.name, "students")
|
||||||
|
|
||||||
self.assertEqual(ks.handler.timezone.timezone, "US/Samoa")
|
self.assertEqual(ks.handler.timezone.timezone, "US/Samoa")
|
||||||
self.assertEqual(ks.handler.timezone.ntpservers, ["0.north-america.pool.ntp.org", "1.north-america.pool.ntp.org"])
|
self.assertEqual(ks.handler.timezone.ntpservers, set(["0.north-america.pool.ntp.org", "1.north-america.pool.ntp.org"]))
|
||||||
|
Loading…
Reference in New Issue
Block a user