-
-
Notifications
You must be signed in to change notification settings - Fork 199
/
Copy pathtest_omegaconf.py
74 lines (59 loc) · 2.53 KB
/
test_omegaconf.py
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/usr/bin/env python3
# Copyright 2019 The Kapitan Authors
# SPDX-FileCopyrightText: 2020 The Kapitan Authors <[email protected]>
#
# SPDX-License-Identifier: Apache-2.0
"inventory tests"
import logging
import os
import shutil
import tempfile
import unittest
from kapitan.inventory import get_inventory_backend
logger = logging.getLogger(__name__)
TEST_PWD = os.getcwd()
TEST_KUBERNETES_INVENTORY = os.path.join(TEST_PWD, "examples/kubernetes/")
class InventoryTestOmegaConf(unittest.TestCase):
temp_dir = tempfile.mkdtemp()
def setUp(self) -> None:
shutil.copytree(TEST_KUBERNETES_INVENTORY, self.temp_dir, dirs_exist_ok=True)
inventory_backend = get_inventory_backend("omegaconf")
self.inventory_path = self.temp_dir
self.extraArgv = ["--inventory-backend=omegaconf"]
from kapitan.inventory.backends.omegaconf import migrate
inventory_path = os.path.join(self.temp_dir, "inventory")
migrate(inventory_path)
self.inventory_backend = inventory_backend(inventory_path=inventory_path, initialise=False)
def test_load_and_resolve_single_target(self):
target_name = "minikube"
target_kapitan_metadata = dict(
{
"_kapitan_": {
"name": {
"short": "minikube",
"full": "minikube",
"path": "minikube-es",
"parts": ["minikube"],
}
}
}
)
# Load inventory but does not initialises targets
inventory = self.inventory_backend
# Manually create a new Target
target = inventory.target_class(name=target_name, path="minikube-es.yml")
logger.error(f"Loading target {target_name} from {target.path}")
logger.error(target.parameters)
# Adds target to Inventory
inventory.targets.update({target_name: target})
# Loads the target using the inventory
inventory.load_target(target)
# Check if the target is loaded correctly
metadata = target.parameters.model_dump(by_alias=True)["_kapitan_"]
self.assertDictEqual(target_kapitan_metadata["_kapitan_"], metadata)
self.assertEqual(metadata["name"]["short"], "minikube")
self.assertEqual(target.parameters.target_name, "minikube-es")
self.assertEqual(target.parameters.kubectl["insecure_skip_tls_verify"], False)
def tearDown(self) -> None:
shutil.rmtree(self.temp_dir)
return super().tearDown()