import demistomock as demisto
import pytest
from hypothesis import HealthCheck, given, settings, strategies
from VerifyIPv6Indicator import is_valid_ipv6_address, main
@pytest.mark.parametrize(
"address, expected",
[
("12::34::56", False),
("1:2:3:4:5:6:7:8", True),
("1:2:3:4::5::7", False),
("1::3:4:5:6:7:8", True),
("1::2::3::4::5::6::7::8", False),
("1abc:2abc::4de:1", True),
],
)
def test_set_limit(address, expected):
ipv6_address = is_valid_ipv6_address(address)
assert ipv6_address == expected
@pytest.mark.parametrize(
"address, expected",
[
("00:16:45:00:46:91", ""),
('"1:2:3:4:5:6:7:8', "1:2:3:4:5:6:7:8"),
],
)
def test_main(mocker, address, expected):
"""
Given:
- MAC Address as input
When:
- Running the script
Then:
- Ensure the MAC address is caught as invalid IPv6 and returns array with empty string
"""
mocker.patch.object(demisto, "args", return_value={"input": address})
mocker.patch.object(demisto, "results")
main()
demisto.results.assert_called_with([expected])
@pytest.mark.skip(reason="Flaky test, issue #41552")
@settings(suppress_health_check=[HealthCheck.function_scoped_fixture])
@given(strategies.ip_addresses(v=6))
def test_valid_ip_address(mocker, ipv6):
"""
Given:
- IPv6 address
When:
- Running the script
Then:
- Ensure the IPv6 address is returned in an array
"""
mocker.patch.object(demisto, "args", return_value={"input": str(ipv6)})
mocker.patch.object(demisto, "results")
main()
demisto.results.assert_called_with([str(ipv6)])