Skip to content

Commit 475524f

Browse files
committed
fix: 'dict object' has no attribute 'iteritems'
Signed-off-by: Martin Styk <mart.styk@gmail.com>
1 parent 4f57dc6 commit 475524f

5 files changed

Lines changed: 96 additions & 10 deletions

File tree

LabController/src/bkr/labcontroller/pxemenu-templates/efi-grub-menu

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
{% for osmajor, osversions in osmajors.iteritems()|sort(reverse=True) %}
2-
{% for osversion, distro_trees in osversions.iteritems()|sort(reverse=True) %}
1+
{% for osmajor, osversions in osmajors.items()|sort(reverse=True) %}
2+
{% for osversion, distro_trees in osversions.items()|sort(reverse=True) %}
33
{% for distro_tree in distro_trees %}
44

55
title {{ distro_tree.distro_name }} {{ distro_tree.variant }} {{ distro_tree.arch }}

LabController/src/bkr/labcontroller/pxemenu-templates/grub2-menu

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ menuentry "Exit PXE" {
44
exit
55
}
66

7-
{% for osmajor, osversions in osmajors.iteritems()|sort(reverse=True) %}
7+
{% for osmajor, osversions in osmajors.items()|sort(reverse=True) %}
88
submenu "{{ osmajor }}" {
99

10-
{% for osversion, distro_trees in osversions.iteritems()|sort(reverse=True) %}
10+
{% for osversion, distro_trees in osversions.items()|sort(reverse=True) %}
1111
submenu "{{ osversion }}" {
1212

1313
{% for distro_tree in distro_trees %}

LabController/src/bkr/labcontroller/pxemenu-templates/ipxe-menu

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ chain /ipxe/${ip:hexraw} ||
55
:main_menu
66
menu Beaker
77
item local (local)
8-
{% for osmajor, osversions in osmajors.iteritems()|sort(reverse=True) %}
8+
{% for osmajor, osversions in osmajors.items()|sort(reverse=True) %}
99
item {{ osmajor }} {{ osmajor }} ->
1010
{% endfor %}
1111
choose --default local --timeout 600000 target && goto ${target} || goto local
@@ -16,16 +16,16 @@ iseq ${builtin/platform} pcbios && sanboot --no-describe --drive 0x80 ||
1616
# exit 1 generates an error message but req'd for some systems to fall through
1717
exit 1 || goto main_menu
1818

19-
{% for osmajor, osversions in osmajors.iteritems()|sort(reverse=True) %}
19+
{% for osmajor, osversions in osmajors.items()|sort(reverse=True) %}
2020
:{{ osmajor }}
2121
menu {{ osmajor }}
22-
{% for osversion, distro_trees in osversions.iteritems()|sort(reverse=True) %}
22+
{% for osversion, distro_trees in osversions.items()|sort(reverse=True) %}
2323
item {{ osversion }} {{ osversion }} ->
2424
{% endfor %}
2525
item main_menu back <-
2626
choose target && goto ${target} || goto main_menu
2727

28-
{% for osversion, distro_trees in osversions.iteritems()|sort(reverse=True) %}
28+
{% for osversion, distro_trees in osversions.items()|sort(reverse=True) %}
2929
:{{ osversion }}
3030
menu {{ osversion }}
3131
{% for distro_tree in distro_trees %}

LabController/src/bkr/labcontroller/pxemenu-templates/pxelinux-menu

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ label local
88
menu default
99
localboot 0
1010

11-
{% for osmajor, osversions in osmajors.iteritems()|sort(reverse=True) %}
11+
{% for osmajor, osversions in osmajors.items()|sort(reverse=True) %}
1212
menu begin
1313
menu title {{ osmajor }}
1414

15-
{% for osversion, distro_trees in osversions.iteritems()|sort(reverse=True) %}
15+
{% for osversion, distro_trees in osversions.items()|sort(reverse=True) %}
1616
menu begin
1717
menu title {{ osversion }}
1818

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# Copyright Contributors to the Beaker project.
2+
# SPDX-License-Identifier: GPL-2.0-or-later
3+
4+
import unittest
5+
6+
from bkr.labcontroller.pxemenu import template_env
7+
8+
9+
def _mock_osmajors():
10+
return {
11+
"RedHatEnterpriseLinux9": {
12+
"RedHatEnterpriseLinux9.2": [
13+
{
14+
"distro_tree_id": 100,
15+
"distro_osmajor": "RedHatEnterpriseLinux9",
16+
"distro_osversion": "RedHatEnterpriseLinux9.2",
17+
"distro_name": "RHEL-9.2.0-20230401.0",
18+
"variant": "BaseOS",
19+
"arch": "x86_64",
20+
"kernel_options": "",
21+
"available": [("lab1", "http://example.com/rhel9/")],
22+
"images": [
23+
("kernel", "pxeboot/vmlinuz"),
24+
("initrd", "pxeboot/initrd.img"),
25+
],
26+
},
27+
],
28+
},
29+
"Fedora42": {
30+
"Fedora42": [
31+
{
32+
"distro_tree_id": 200,
33+
"distro_osmajor": "Fedora42",
34+
"distro_osversion": "Fedora42",
35+
"distro_name": "Fedora-38-20230401.0",
36+
"variant": "Everything",
37+
"arch": "x86_64",
38+
"kernel_options": "",
39+
"available": [("lab1", "http://example.com/fedora42/")],
40+
"images": [
41+
("kernel", "pxeboot/vmlinuz"),
42+
("initrd", "pxeboot/initrd.img"),
43+
],
44+
},
45+
],
46+
},
47+
}
48+
49+
50+
class TestPxemenuTemplates(unittest.TestCase):
51+
def _render(self, template_name, osmajors=None):
52+
if osmajors is None:
53+
osmajors = _mock_osmajors()
54+
template = template_env.get_template(template_name)
55+
return template.render({"osmajors": osmajors})
56+
57+
def test_pxelinux_menu(self):
58+
output = self._render("pxelinux-menu")
59+
self.assertIn("RHEL-9.2.0-20230401.0", output)
60+
self.assertIn("Fedora-38-20230401.0", output)
61+
self.assertIn("/distrotrees/100/kernel", output)
62+
self.assertIn("/distrotrees/200/kernel", output)
63+
self.assertIn("menu title Beaker", output)
64+
65+
def test_efi_grub_menu(self):
66+
output = self._render("efi-grub-menu")
67+
self.assertIn("RHEL-9.2.0-20230401.0", output)
68+
self.assertIn("Fedora-38-20230401.0", output)
69+
self.assertIn("/distrotrees/100/kernel", output)
70+
self.assertIn("root (nd)", output)
71+
72+
def test_grub2_menu(self):
73+
output = self._render("grub2-menu")
74+
self.assertIn("RHEL-9.2.0-20230401.0", output)
75+
self.assertIn("Fedora-38-20230401.0", output)
76+
self.assertIn("menuentry", output)
77+
self.assertIn("/distrotrees/100/kernel", output)
78+
self.assertIn("submenu", output)
79+
80+
def test_ipxe_menu(self):
81+
output = self._render("ipxe-menu")
82+
self.assertIn("#!ipxe", output)
83+
self.assertIn("RHEL-9.2.0-20230401.0", output)
84+
self.assertIn("Fedora-38-20230401.0", output)
85+
self.assertIn("/distrotrees/100/kernel", output)
86+
self.assertIn("/distrotrees/200/kernel", output)

0 commit comments

Comments
 (0)