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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
"""Test SDNC node creation using NETCONF-API."""
# Copyright 2023 Deutsche Telekom AG
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from unittest import mock
from onapsdk.sdnc.topology import Node
SDNC_NODE = {
"network-topology:node": [
{
"node-id": "test-node",
"netconf-node-topology:host": "100.70.0.5",
"netconf-node-topology:port": 830,
"netconf-node-topology:keepalive-delay": 100,
"netconf-node-topology:tcp-only": False,
"netconf-node-topology:username": "root",
"netconf-node-topology:password": "password"
}
]
}
SDNC_TOPOLOGY_ID = "topology-netconf"
def test_sdnc_netconf_api_node_init():
node = Node(node_id=SDNC_NODE["network-topology:node"][0]["node-id"],
host=SDNC_NODE["network-topology:node"][0]["netconf-node-topology:host"],
port=SDNC_NODE["network-topology:node"][0]["netconf-node-topology:port"],
username=SDNC_NODE["network-topology:node"][0]["netconf-node-topology:username"],
password=SDNC_NODE["network-topology:node"][0]["netconf-node-topology:password"],
)
assert type(node.node_id) is str
@mock.patch.object(Node, "send_message")
def test_sdnc_netconf_api_node_create(mock_send_message):
node = Node(node_id="test-node-02",
host="100.70.0.102",
port=830,
username="admin",
password="2345",
topology_id="topology-netconf"
)
node.create()
mock_send_message.assert_called_once()
method, description, url = mock_send_message.call_args[0]
assert method == "POST"
assert description == "Add a node element into the topology at SDNC using NETCONF-API"
assert url == (f"{Node.base_url}/rests/data/"
f"network-topology:network-topology/topology={node.topology_id}")
@mock.patch.object(Node, "send_message")
def test_sdnc_netconf_api_node_delete(mock_send_message):
node = Node(node_id="test-node-02",
host="100.70.0.102",
port=830,
username="admin",
password="2345",
topology_id="topology-netconf"
)
node.delete()
mock_send_message.assert_called_once()
method, description, url = mock_send_message.call_args[0]
assert method == "DELETE"
assert description == "Delete a Node element from the topology using NETCONF-API"
assert url == (f"{Node.base_url}/rests/data/"
f"network-topology:network-topology/topology={node.topology_id}"
f"/node={node.node_id}")
@mock.patch.object(Node, "send_message")
def test_sdnc_netconf_api_node_update(mock_send_message):
node = Node(node_id="test-node-02",
host="100.70.0.102",
port=830,
username="admin",
password="2345",
topology_id="topology-netconf"
)
node.update()
mock_send_message.assert_called_once()
method, description, url = mock_send_message.call_args[0]
assert method == "PUT"
assert description == "Add a Node element into the topology using NETCONF-API"
assert url == (f"{Node.base_url}/rests/data/"
f"network-topology:network-topology/topology={node.topology_id}"
f"/node={node.node_id}")
|