core-extra/daemon/tests/test_utils.py

66 lines
1.9 KiB
Python

import netaddr
import pytest
from core import utils
from core.errors import CoreError
class TestUtils:
def test_make_tuple_fromstr(self):
# given
no_args = "()"
one_arg = "('one',)"
two_args = "('one', 'two')"
unicode_args = u"('one', 'two', 'three')"
# when
no_args = utils.make_tuple_fromstr(no_args, str)
one_arg = utils.make_tuple_fromstr(one_arg, str)
two_args = utils.make_tuple_fromstr(two_args, str)
unicode_args = utils.make_tuple_fromstr(unicode_args, str)
# then
assert no_args == ()
assert len(one_arg) == 1
assert len(two_args) == 2
assert len(unicode_args) == 3
@pytest.mark.parametrize(
"data,expected",
[
("127", "127.0.0.0/32"),
("10.0.0.1/24", "10.0.0.1/24"),
("2001::", "2001::/128"),
("2001::/64", "2001::/64"),
],
)
def test_validate_ip(self, data, expected):
value = utils.validate_ip(data)
assert value == expected
@pytest.mark.parametrize("data", ["256", "1270.0.0.1", "127.0.0.0.1"])
def test_validate_ip_exception(self, data):
with pytest.raises(CoreError):
utils.validate_ip("")
@pytest.mark.parametrize(
"data,expected",
[
("AA-AA-AA-FF-FF-FF", "aa:aa:aa:ff:ff:ff"),
("AA:AA:AA:FF:FF:FF", "aa:aa:aa:ff:ff:ff"),
],
)
def test_validate_mac(self, data, expected):
value = utils.validate_mac(data)
assert value == expected
@pytest.mark.parametrize(
"data", ["AAA:AA:AA:FF:FF:FF", "AA:AA:AA:FF:FF", "AA/AA/AA/FF/FF/FF"]
)
def test_validate_mac_exception(self, data):
with pytest.raises(CoreError):
utils.validate_mac(data)
def test_random_mac(self):
value = utils.random_mac()
assert netaddr.EUI(value) is not None