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
|
# -*- coding: utf-8 -*-
from __future__ import absolute_import, division, print_function
__metaclass__ = type
import unittest
from unittest.mock import MagicMock
from ansible_collections.vyos.rest.plugins.modules.vyos_facts import (
gather_bgp,
gather_hostname,
gather_interfaces,
gather_logging,
gather_users,
)
from .base import load_fixture
class TestVyOSFactsGather(unittest.TestCase):
def setUp(self):
self.mock_vyos = MagicMock()
self.system_fixture = load_fixture("facts_system.json")
self.interfaces_fixture = load_fixture("facts_interfaces.json")
def test_gather_hostname(self):
self.mock_vyos.get_config = MagicMock(return_value=self.system_fixture)
result = gather_hostname(self.mock_vyos)
self.assertEqual(result, "vyos-test")
def test_gather_hostname_empty(self):
self.mock_vyos.get_config = MagicMock(return_value={})
result = gather_hostname(self.mock_vyos)
self.assertEqual(result, "")
def test_gather_interfaces(self):
self.mock_vyos.get_config = MagicMock(return_value=self.interfaces_fixture)
result = gather_interfaces(self.mock_vyos)
self.assertIn("ethernet", result)
self.assertIn("eth0", result["ethernet"])
self.assertIn("eth1", result["ethernet"])
self.assertEqual(result["ethernet"]["eth1"]["description"], "uplink")
def test_gather_users(self):
self.mock_vyos.get_config = MagicMock(
return_value=self.system_fixture["login"],
)
result = gather_users(self.mock_vyos)
names = [u["name"] for u in result]
self.assertIn("vyos", names)
self.assertIn("alice", names)
alice = next(u for u in result if u["name"] == "alice")
self.assertEqual(alice["full_name"], "Alice Smith")
self.assertIn("alice-key", alice["public_keys"])
def test_gather_users_empty(self):
self.mock_vyos.get_config = MagicMock(return_value={})
result = gather_users(self.mock_vyos)
self.assertEqual(result, [])
def test_gather_users_none(self):
self.mock_vyos.get_config = MagicMock(return_value=None)
result = gather_users(self.mock_vyos)
self.assertEqual(result, [])
def test_gather_bgp(self):
data = {"system-as": "65000", "parameters": {"router-id": "192.0.1.1"}}
self.mock_vyos.get_config = MagicMock(return_value=data)
result = gather_bgp(self.mock_vyos)
self.assertEqual(result["system-as"], "65000")
self.assertEqual(result["parameters"]["router-id"], "192.0.1.1")
def test_gather_bgp_empty(self):
self.mock_vyos.get_config = MagicMock(return_value={})
result = gather_bgp(self.mock_vyos)
self.assertEqual(result, {})
def test_gather_logging(self):
self.mock_vyos.get_config = MagicMock(
return_value=self.system_fixture["syslog"],
)
result = gather_logging(self.mock_vyos)
self.assertIn("local", result)
self.assertIn("console", result)
if __name__ == "__main__":
unittest.main()
|