File: test_ipaddress.py

package info (click to toggle)
wtforms 3.2.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,064 kB
  • sloc: python: 5,264; makefile: 27; sh: 17
file content (71 lines) | stat: -rw-r--r-- 1,754 bytes parent folder | download | duplicates (2)
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
import pytest

from wtforms.validators import ip_address
from wtforms.validators import ValidationError


@pytest.mark.parametrize("address", ["147.230.23.25", "147.230.23.0", "127.0.0.1"])
def test_ip4address_passes(address, dummy_form, dummy_field):
    adr = ip_address()
    dummy_field.data = address
    adr(dummy_form, dummy_field)


@pytest.mark.parametrize(
    "address",
    [
        "2001:718:1C01:1111::1111",
        "2001:718:1C01:1111::",
        "::1",
        "dead:beef:0:0:0:0:42:1",
        "abcd:ef::42:1",
    ],
)
def test_good_ip6address_passes(address, dummy_form, dummy_field):
    adr = ip_address(ipv6=True)
    dummy_field.data = address
    adr(dummy_form, dummy_field)


@pytest.mark.parametrize(
    "address",
    [
        "2001:718:1C01:1111::1111",
        "2001:718:1C01:1111::",
        "abc.0.0.1",
        "abcd:1234::123::1",
        "1:2:3:4:5:6:7:8:9",
        "abcd::1ffff",
    ],
)
def test_bad_ip6address_raises(address, dummy_form, dummy_field):
    adr = ip_address()
    dummy_field.data = address
    with pytest.raises(ValidationError):
        adr(dummy_form, dummy_field)


@pytest.mark.parametrize(
    "address",
    [
        "147.230.1000.25",
        "2001:718::::",
        "abc.0.0.1",
        "1278.0.0.1",
        "127.0.0.abc",
        "900.200.100.75",
    ],
)
def test_bad_ip4address_raises(address, dummy_form, dummy_field):
    adr = ip_address(ipv6=True)
    dummy_field.data = address
    with pytest.raises(ValidationError):
        adr(dummy_form, dummy_field)


def test_ip_address_raises_on_bad_init():
    """
    IpAddress validator should raise ValueError when ipv6=False and ipv4=False
    """
    with pytest.raises(ValueError):
        ip_address(ipv4=False, ipv6=False)