ActorSchemaTests.test_kbonummer()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 1
c 1
b 0
f 1
dl 0
loc 5
rs 10
1
# -*- coding: utf-8 -*-
2
try:
3
    from unittest.mock import Mock
4
except ImportError:
5
    from mock import Mock  # pragma: no cover
6
import colander
7
import unittest
8
from oe_utils.validation.validators_actor import RRNSchemaNode, TelefoonSchemaNode as Telefoon, KBOSchemaNode
9
10
11
class ActorSchemaTests(unittest.TestCase):
12
    def setUp(self):
13
        super(ActorSchemaTests, self).setUp()
14
        from oe_utils.validation.validators_actor import (
15
            TelefoonSchemaNode
16
        )
17
        self.telefoon_schema = TelefoonSchemaNode()
18
        self.kbo_schema = KBOSchemaNode()
19
        self.rrn_schema = RRNSchemaNode()
20
21
    def tearDown(self):
22
        del self.telefoon_schema
23
        super(ActorSchemaTests, self).tearDown()
24
25
    def test_kbo_preparer(self):
26
        self.assertEqual(KBOSchemaNode.preparer(None), colander.null)
27
        self.assertEqual(KBOSchemaNode.preparer('12.34.56.7.8.911'), '12345678911')
28
29
    def test_kbonummer(self):
30
        self.kbo_schema.deserialize('1234678911')
31
        self.assertRaises(colander.Invalid,
32
                          self.kbo_schema.deserialize,
33
                          '123'
34
                          )
35
36
    def test_phonenumber_preparer(self):
37
        self.assertEqual(Telefoon.preparer(None), colander.null)
38
        self.assertEqual(Telefoon.preparer({'landcode': '02', 'nummer': '/553.54.05'}),
39
                         {'landcode': '+2', 'nummer': '5535405'})
40
        self.assertEqual(Telefoon.preparer({'landcode': '    0032', 'nummer': '02/55/3.54     05  '}),
41
                         {'landcode': '+32', 'nummer': '25535405'})
42
        self.assertEqual(Telefoon.preparer({'landcode': '+32 ', 'nummer': '496 11 31 67'}),
43
                         {'landcode': '+32', 'nummer': '496113167'})
44
        self.assertEqual(Telefoon.preparer({'landcode': '+32', 'nummer': ' 496 11 \t 31 67'}),
45
                         {'landcode': '+32', 'nummer': '496113167'})
46
        self.assertEqual(Telefoon.preparer({'landcode': '+32', 'nummer': ' 496. 11 \n 31    67'}),
47
                         {'landcode': '+32', 'nummer': '496113167'})
48
        self.assertEqual(Telefoon.preparer({'landcode': '+32', 'nummer': ' 50 60 90 60'}),
49
                         {'landcode': '+32', 'nummer': '50609060'})
50
        self.assertEqual(Telefoon.preparer({'landcode': '+32', 'nummer': ' 9 245 13 08'}),
51
                         Telefoon.preparer({'landcode': '+32', 'nummer': ' 9/245.13.08'}))
52
53
    def test_telefoonnummer_number_as_integer(self):
54
        # number as integer
55
        self.assertRaises(
56
            colander.Invalid,
57
            self.telefoon_schema.deserialize,
58
            {
59
                'type': {'id': 1},
60
                'nummer': 12345
61
            }
62
        )
63
64
    def test_telefoonnummer_number_less_3(self):
65
        self.assertRaises(
66
            colander.Invalid,
67
            self.telefoon_schema.deserialize,
68
            {
69
                'nummer': "01"
70
            }
71
        )
72
73
    def test_telefoonnummer_number_greater_16(self):
74
        self.assertRaises(
75
            colander.Invalid,
76
            self.telefoon_schema.deserialize,
77
            {
78
                'landcode': '+32',
79
                'nummer': "123456789123456789"
80
            }
81
        )
82
83
    def test_telefoonnummer_number_small(self):
84
        self.assertRaises(
85
            colander.Invalid,
86
            self.telefoon_schema.deserialize,
87
            {
88
                'landcode': '+21456',
89
                'nummer': "1"
90
            }
91
        )
92
93
    def test_telefoonnummer_number_belgium_with_0(self):
94
        self.assertRaises(
95
            colander.Invalid,
96
            Telefoon.validator,
97
            Telefoon(),
98
            {
99
                'landcode': '+32',
100
                'nummer': "0476/123"
101
            }
102
        )
103
104
    def test_telefoonnummer_number_belgium_with_greater_9(self):
105
        self.assertRaises(
106
            colander.Invalid,
107
            self.telefoon_schema.deserialize,
108
            {
109
110
                'type': {'id': 1},
111
                'landcode': '0032',
112
                'nummer': "476/11.22.334"
113
            }
114
        )
115
116
    def test_telefoonnummer_valid_number(self):
117
        self.telefoon_schema.deserialize(
118
            {
119
                'type': {'id': 1},
120
                'landcode': "+11",
121
                'nummer': "255/3.54.05"
122
            }
123
124
        )
125
126
    def test_rrn(self):
127
        self.rrn_schema.deserialize('72020290081')
128
        self.rrn_schema.deserialize('00012556777')
129
        self.rrn_schema.deserialize('18120812401')
130
        self.assertRaises(
131
            colander.Invalid,
132
            self.rrn_schema.deserialize, '72020291181'
133
        )
134
        self.assertRaises(
135
            colander.Invalid,
136
            self.rrn_schema.deserialize, '7202029008'
137
        )