diff --git a/src/node/mod.rs b/src/node/mod.rs index 62861e3..a352743 100644 --- a/src/node/mod.rs +++ b/src/node/mod.rs @@ -629,4 +629,39 @@ mod node_tests { assert_eq!(params, expected); } + + #[test] + fn test_render_n3() { + let r = Reclass::new( + "./tests/inventory/nodes", + "./tests/inventory/classes", + false, + ); + let mut n = Node::parse(&r, "n3").unwrap(); + n.render(&r).unwrap(); + let params: Value = n.parameters.into(); + + let expected = r#" + cluster: + name: c-test-cluster-1234 + openshift: + infraID: c-test-cluster-1234-xlk3f + clusterID: 2888efd2-8a1b-4846-82ec-3a99506e2c70 + baseDomain: c-test-cluster-1234.example.org + appsDomain: apps.c-test-cluster-1234.example.org + apiURL: api.c-test-cluster-1234.example.org + ssh_key: "" + _reclass_: + environment: base + name: + short: n3 + parts: ["n3"] + full: n3 + path: n3 + "#; + let mut expected: Value = Mapping::from_str(expected).unwrap().into(); + expected.render(&Mapping::new()).unwrap(); + + assert_eq!(params, expected); + } } diff --git a/tests/inventory/classes/cls3.yml b/tests/inventory/classes/cls3.yml new file mode 100644 index 0000000..e2d3033 --- /dev/null +++ b/tests/inventory/classes/cls3.yml @@ -0,0 +1,4 @@ +classes: + - cls4 + - cls5 + - cls6 diff --git a/tests/inventory/classes/cls4.yml b/tests/inventory/classes/cls4.yml new file mode 100644 index 0000000..6b708c8 --- /dev/null +++ b/tests/inventory/classes/cls4.yml @@ -0,0 +1,3 @@ +parameters: + cluster: + name: c-test-cluster-1234 diff --git a/tests/inventory/classes/cls5.yml b/tests/inventory/classes/cls5.yml new file mode 100644 index 0000000..1f4e492 --- /dev/null +++ b/tests/inventory/classes/cls5.yml @@ -0,0 +1,6 @@ +parameters: + openshift: + baseDomain: ${cluster:name}.example.com + appsDomain: apps.${openshift:baseDomain} + apiURL: api.${openshift:baseDomain} + ssh_key: "" diff --git a/tests/inventory/classes/cls6.yml b/tests/inventory/classes/cls6.yml new file mode 100644 index 0000000..fe45903 --- /dev/null +++ b/tests/inventory/classes/cls6.yml @@ -0,0 +1,6 @@ +parameters: + openshift: + infraID: c-test-cluster-1234-xlk3f + clusterID: 2888efd2-8a1b-4846-82ec-3a99506e2c70 + baseDomain: c-test-cluster-1234.example.org + appsDomain: apps.${openshift:baseDomain} diff --git a/tests/inventory/nodes/n3.yml b/tests/inventory/nodes/n3.yml new file mode 100644 index 0000000..07e18c6 --- /dev/null +++ b/tests/inventory/nodes/n3.yml @@ -0,0 +1,2 @@ +classes: + - cls3 diff --git a/tests/test_nodeinfo.py b/tests/test_nodeinfo.py index 39c2bae..daa0555 100644 --- a/tests/test_nodeinfo.py +++ b/tests/test_nodeinfo.py @@ -43,3 +43,32 @@ def test_nodeinfo_n2(): "foo": {"foo": "nested.cls1", "bar": "n2"}, "bar": "bar", } + + +def test_nodeinfo_n3(): + r = reclass_rs.Reclass( + nodes_path="./tests/inventory/nodes", classes_path="./tests/inventory/classes" + ) + n = r.nodeinfo("n3") + assert n.applications == [] + assert n.classes == ["cls4", "cls5", "cls6", "cls3"] + assert n.parameters == { + "_reclass_": { + "environment": "base", + "name": { + "full": "n3", + "parts": ["n3"], + "path": "n3", + "short": "n3", + }, + }, + "cluster": {"name": "c-test-cluster-1234"}, + "openshift": { + "infraID": "c-test-cluster-1234-xlk3f", + "clusterID": "2888efd2-8a1b-4846-82ec-3a99506e2c70", + "baseDomain": "c-test-cluster-1234.example.org", + "appsDomain": "apps.c-test-cluster-1234.example.org", + "apiURL": "api.c-test-cluster-1234.example.org", + "ssh_key": "", + }, + }