blob: 28b0891d9f29bfd92c29ff88d1173a45abec35e5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
import os
from unittest import mock
import pytest
from cloudinit import util
from cloudinit.net import netplan
@pytest.fixture
def renderer(tmp_path):
config = {
"netplan_path": str(tmp_path / "netplan/50-cloud-init.yaml"),
"postcmds": True,
}
yield netplan.Renderer(config)
class TestNetplanRenderer:
@pytest.mark.parametrize("write_config", [True, False])
def test_skip_netplan_generate(self, renderer, write_config, mocker):
"""Check `netplan generate` is called if netplan config has changed."""
header = "\n"
content = "foo"
renderer_mocks = mocker.patch.multiple(
renderer,
_render_content=mocker.Mock(return_value=content),
_netplan_generate=mocker.DEFAULT,
_net_setup_link=mocker.DEFAULT,
)
if write_config:
util.ensure_dir(os.path.dirname(renderer.netplan_path))
with open(renderer.netplan_path, "w") as f:
f.write(header)
f.write(content)
renderer.render_network_state(mocker.Mock())
assert renderer_mocks["_netplan_generate"].call_args_list == [
mock.call(run=True, same_content=write_config)
]
|