66 lines
1.9 KiB
Python
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
|