Completed
Push — master ( 96792e...fac29e )
by Chris
01:34
created

test_valid_hosts_valid_hostname_list()   A

Complexity

Conditions 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
c 1
b 0
f 0
dl 0
loc 3
rs 10
1
"""Test WTForm validators."""
2
3
from collections import namedtuple
4
5
import pytest
6
7
from flask_extras.forms.validators import network
8
9
10
class FakeCls(object):
11
    pass
12
13
14
Field = namedtuple('Field', 'data')
15
16
17
def test_is_ip_valid():
18
    assert network.is_ip('192.168.1.0')
19
    assert network.is_ip('0.0.0.0')
20
    assert network.is_ip('255.255.255.255')
21
22
23
def test_is_ip_invalid():
24
    assert not network.is_ip('foo.x.y-baz.com')
25
    assert not network.is_ip('https://www.rad.com')
26
27
28
def test_is_hostname_valid():
29
    assert network.is_hostname('foo.x.y-baz.com')
30
    assert network.is_hostname('https://www.rad.com')
31
32
33
def test_is_hostname_invalid_ips():
34
    assert not network.is_hostname('192.168.1.0')
35
    assert not network.is_hostname('0.0.0.0')
36
    assert not network.is_hostname('255.255.255.255')
37
38
39
def test_is_hostname_invalid_noperiod():
40
    assert not network.is_hostname('foo')
41
42
43
def test_is_hostname_invalid_ends_hyphen():
44
    assert not network.is_hostname('www.foo.com-')
45
46
47
def test_is_hostname_invalid_underscore():
48
    assert not network.is_hostname('www.bar.foo_.com')
49
50
51
def test_valid_hosts_invalid():
52
    with pytest.raises(ValueError):
53
        network.valid_hosts(FakeCls(), Field(data='foo'))
54
55
56
def test_valid_hosts_invalid_octet():
57
    with pytest.raises(ValueError):
58
        network.valid_hosts(FakeCls(), Field(data='192.3.120.1111'))
59
60
61
def test_valid_hosts_valid_hostname_single():
62
    # Just ensuring it doesn't raise a ValueError
63
    network.valid_hosts(FakeCls(), Field(data='www.foo.com'))
64
65
66
def test_valid_hosts_valid_hostname_list():
67
    # Just ensuring it doesn't raise a ValueError
68
    network.valid_hosts(FakeCls(), Field(data='www.foo.com,bar.baz.rad'))
69
70
71
def test_valid_hosts_valid_hostname_ip_mix():
72
    # Just ensuring it doesn't raise a ValueError
73
    network.valid_hosts(FakeCls(), Field(data='0.0.0.0, www.foo.com'))
74
75
76
def test_valid_hosts_valid_single():
77
    # Just ensuring it doesn't raise a ValueError
78
    network.valid_hosts(FakeCls(), Field(data='0.0.0.0'))
79
    network.valid_hosts(FakeCls(), Field(data='192.168.0.1'))
80
81
82
def test_valid_hosts_valid_list():
83
    # Just ensuring it doesn't raise a ValueError
84
    network.valid_hosts(FakeCls(), Field(data='192.168.0.1,10.3.20.112'))
85
86
87
def test_valid_hosts_valid_range():
88
    # Just ensuring it doesn't raise a ValueError
89
    network.valid_hosts(FakeCls(), Field(data='192.168.0.1-192.168.10.0'))
90