diff --git a/examples/autoinstall.yaml b/examples/autoinstall.yaml index bc21a4fb..b35b5c40 100644 --- a/examples/autoinstall.yaml +++ b/examples/autoinstall.yaml @@ -3,6 +3,7 @@ early-commands: - echo a - sleep 1 - echo a +locale: en_UK.UTF-8 refresh-installer: update: yes channel: edge diff --git a/scripts/check-yaml-fields.py b/scripts/check-yaml-fields.py new file mode 100644 index 00000000..db8289b0 --- /dev/null +++ b/scripts/check-yaml-fields.py @@ -0,0 +1,20 @@ +#!/usr/bin/python3 +import sys + +import yaml + + +config = yaml.safe_load(open(sys.argv[1])) + + +def main(): + + for arg in sys.argv[2:]: + k, expected = arg.split('=', 1) + expected = yaml.safe_load(expected) + v = config + for part in k.split('.'): + v = v[part] + assert v == expected, "{!r} != {!r}".format(v, expected) + +main() diff --git a/scripts/runtests.sh b/scripts/runtests.sh index ef267ce9..a29c13ef 100755 --- a/scripts/runtests.sh +++ b/scripts/runtests.sh @@ -26,8 +26,11 @@ TTY=$(tty || true) timeout --foreground 60 sh -c "LANG=C.UTF-8 python3 -m subiquity.cmd.tui --autoinstall examples/autoinstall.yaml \ --dry-run --machine-config examples/simple.json \ --kernel-cmdline 'autoinstall console=\"${TTY#/dev/}\"'" -python3 scripts/validate-yaml.py .subiquity/subiquity-curtin-install.conf \ +python3 scripts/validate-yaml.py .subiquity/subiquity-curtin-install.conf +python3 scripts/check-yaml-fields.py .subiquity/subiquity-curtin-install.conf \ debconf_selections.subiquity='"eek"' +python3 scripts/check-yaml-fields.py .subiquity/var/lib/cloud/seed/nocloud-net/user-data \ + locale='"en_UK.UTF-8"' grep -q 'finish: subiquity/InstallProgress/postinstall/install_package1: SUCCESS: installing package1' \ .subiquity/subiquity-debug.log grep -q 'finish: subiquity/InstallProgress/postinstall/install_package2: SUCCESS: installing package2' \ diff --git a/scripts/validate-yaml.py b/scripts/validate-yaml.py index 54b975dc..fb88a6a5 100644 --- a/scripts/validate-yaml.py +++ b/scripts/validate-yaml.py @@ -96,12 +96,5 @@ def main(): storage_checker.final_checks() - for arg in sys.argv[2:]: - k, expected = arg.split('=', 1) - expected = yaml.safe_load(expected) - v = config - for part in k.split('.'): - v = v[part] - assert v == expected, "{!r} != {!r}".format(v, expected) main()