Merge pull request #1748 from dbungert/mantic-ci-regression

network: fix NETPLAN_CONFIG_ROOT_READ_ONLY tests
This commit is contained in:
Dan Bungert 2023-08-01 21:25:12 -06:00 committed by GitHub
commit cb37d581b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 29 additions and 12 deletions

View File

@ -22,6 +22,8 @@ from unittest import mock
import yaml import yaml
from cloudinit.config.schema import SchemaValidationError from cloudinit.config.schema import SchemaValidationError
from subiquitycore.tests.parameterized import parameterized
try: try:
from cloudinit.config.schema import SchemaProblem from cloudinit.config.schema import SchemaProblem
except ImportError: except ImportError:
@ -185,18 +187,33 @@ class TestSubiquityModel(unittest.IsolatedAsyncioTestCase):
config = model.render() config = model.render()
self.assertConfigHasVal(config, "storage.version", 1) self.assertConfigHasVal(config, "storage.version", 1)
def test_write_netplan(self): @parameterized.expand(
model = self.make_model() [
config = model.render() [{}, True],
netplan_content = None [{"NETPLAN_CONFIG_ROOT_READ_ONLY": False}, True],
for fspec in config["write_files"].values(): [{"NETPLAN_CONFIG_ROOT_READ_ONLY": True}, False],
if fspec["path"].startswith("etc/netplan"): ]
if netplan_content is not None: )
self.fail("writing two files to netplan?") def test_write_netplan(self, features, np_content_expected):
netplan_content = fspec["content"] with mock.patch(
self.assertIsNot(netplan_content, None) "subiquity.cloudinit.open",
netplan = yaml.safe_load(netplan_content) mock.mock_open(read_data=json.dumps({"features": features})),
self.assertConfigHasVal(netplan, "network.version", 2) ):
model = self.make_model()
config = model.render()
netplan_content = None
for fspec in config["write_files"].values():
if fspec["path"].startswith("etc/netplan"):
if netplan_content is not None:
self.fail("writing two files to netplan?")
netplan_content = fspec["content"]
if np_content_expected:
self.assertIsNotNone(netplan_content)
netplan = yaml.safe_load(netplan_content)
self.assertConfigHasVal(netplan, "network.version", 2)
else:
self.assertIsNone(netplan_content)
def test_sources(self): def test_sources(self):
model = self.make_model() model = self.make_model()