Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion tests/unittests/sources/test_opennebula.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@
import pwd
from unittest import mock

import jsonschema
import pytest

from cloudinit import atomic_helper
from cloudinit.config.schema import SchemaType, get_schema
from cloudinit.sources import DataSourceOpenNebula as ds
Comment thread
mcanevet marked this conversation as resolved.
from tests.unittests.helpers import populate_dir

Expand Down Expand Up @@ -370,9 +372,24 @@ def my_devs_with(criteria):

@mock.patch(DS_PATH + ".net.get_interfaces_by_mac", mock.Mock(return_value={}))
class TestOpenNebulaNetwork:

system_nics = ("eth0", "ens3")

@pytest.fixture(autouse=True)
def _validate_gen_conf_schema(self, monkeypatch):
"""Wrap gen_conf() to assert schema validity on every test."""
schema = get_schema(SchemaType.NETWORK_CONFIG_V2)
assert schema, "network-config-v2 schema must not be empty"
validator_cls = jsonschema.validators.validator_for(schema)
validator = validator_cls(schema)
original = ds.OpenNebulaNetwork.gen_conf

def validated(self_inner):
result = original(self_inner)
validator.validate(result)
return result

monkeypatch.setattr(ds.OpenNebulaNetwork, "gen_conf", validated)

def test_context_devname(self):
"""Verify context_devname correctly returns mac and name."""
context = {
Expand Down
Loading