summaryrefslogtreecommitdiff
path: root/tests/unit/modules/test_vyos_configure.py
blob: af1b325afc3ed91923cb07f86f24b0d312e6fa9b (plain)
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
# -*- coding: utf-8 -*-
from __future__ import absolute_import, division, print_function


__metaclass__ = type

import unittest

from ansible_collections.vyos.rest.plugins.modules.vyos_configure import (
    _parse_command,
)


class TestVyOSConfigureParseCommand(unittest.TestCase):

    def test_set_simple(self):
        result = _parse_command("set system host-name vyos")
        self.assertEqual(result, ("set", ["system", "host-name", "vyos"]))

    def test_set_with_address(self):
        result = _parse_command("set interfaces loopback lo address 20.1.1.1/32")
        self.assertEqual(
            result,
            ("set", ["interfaces", "loopback", "lo", "address", "20.1.1.1/32"]),
        )

    def test_delete_simple(self):
        result = _parse_command("delete service snmp")
        self.assertEqual(result, ("delete", ["service", "snmp"]))

    def test_delete_with_path(self):
        result = _parse_command("delete interfaces loopback lo address 20.1.1.1/32")
        self.assertEqual(
            result,
            ("delete", ["interfaces", "loopback", "lo", "address", "20.1.1.1/32"]),
        )

    def test_strips_leading_whitespace(self):
        result = _parse_command("  set system host-name vyos")
        self.assertEqual(result, ("set", ["system", "host-name", "vyos"]))

    def test_invalid_command_returns_none(self):
        result = _parse_command("commit")
        self.assertIsNone(result)

    def test_empty_string_returns_none(self):
        result = _parse_command("")
        self.assertIsNone(result)

    def test_unknown_op_returns_none(self):
        result = _parse_command("show interfaces")
        self.assertIsNone(result)

    def test_set_single_token_path(self):
        result = _parse_command("set service")
        self.assertEqual(result, ("set", ["service"]))

    def test_delete_single_token_path(self):
        result = _parse_command("delete service")
        self.assertEqual(result, ("delete", ["service"]))


if __name__ == "__main__":
    unittest.main()