iro/tests/telnumber.py
author Sandro Knauß <knauss@netzguerilla.net>
Fri, 24 Aug 2012 01:05:06 +0200
branchdevel
changeset 294 0e75bd39767d
parent 282 50cc13814bfb
permissions -rw-r--r--
adding LICENSE to all files
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
294
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 282
diff changeset
     1
# Copyright (c) 2012 netzguerilla.net <iro@netzguerilla.net>
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 282
diff changeset
     2
# 
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 282
diff changeset
     3
# This file is part of Iro.
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 282
diff changeset
     4
# 
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 282
diff changeset
     5
# Permission is hereby granted, free of charge, to any person obtaining a copy of
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 282
diff changeset
     6
# this software and associated documentation files (the "Software"), to deal in
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 282
diff changeset
     7
# the Software without restriction, including without limitation the rights to use,
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 282
diff changeset
     8
# copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 282
diff changeset
     9
# #Software, and to permit persons to whom the Software is furnished to do so,
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 282
diff changeset
    10
# subject to the following conditions:
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 282
diff changeset
    11
# 
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 282
diff changeset
    12
# The above copyright notice and this permission notice shall be included in
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 282
diff changeset
    13
# all copies or substantial portions of the Software.
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 282
diff changeset
    14
# 
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 282
diff changeset
    15
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 282
diff changeset
    16
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 282
diff changeset
    17
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 282
diff changeset
    18
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 282
diff changeset
    19
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 282
diff changeset
    20
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 282
diff changeset
    21
282
50cc13814bfb make iro working with python v2.6
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    22
try:
50cc13814bfb make iro working with python v2.6
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    23
    import unittest
50cc13814bfb make iro working with python v2.6
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    24
    unittest.case
50cc13814bfb make iro working with python v2.6
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    25
except AttributeError:
50cc13814bfb make iro working with python v2.6
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    26
    import unittest2 as unittest
128
1a3ebdd3bdaf telnumber test in own file
Sandro Knauß <knauss@netzguerilla.net>
parents: 39
diff changeset
    27
1a3ebdd3bdaf telnumber test in own file
Sandro Knauß <knauss@netzguerilla.net>
parents: 39
diff changeset
    28
from iro.validate import vTel
129
d6704178a18f renaming NotATelNumber -> InvalidTel
Sandro Knauß <knauss@netzguerilla.net>
parents: 128
diff changeset
    29
from iro.error import InvalidTel
128
1a3ebdd3bdaf telnumber test in own file
Sandro Knauß <knauss@netzguerilla.net>
parents: 39
diff changeset
    30
from iro.telnumber import Telnumber
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    31
128
1a3ebdd3bdaf telnumber test in own file
Sandro Knauß <knauss@netzguerilla.net>
parents: 39
diff changeset
    32
class testTelefonnumbers(unittest.TestCase):
1a3ebdd3bdaf telnumber test in own file
Sandro Knauß <knauss@netzguerilla.net>
parents: 39
diff changeset
    33
    """tests for telefonnumbers"""
1a3ebdd3bdaf telnumber test in own file
Sandro Knauß <knauss@netzguerilla.net>
parents: 39
diff changeset
    34
1a3ebdd3bdaf telnumber test in own file
Sandro Knauß <knauss@netzguerilla.net>
parents: 39
diff changeset
    35
    def testMultipleTelnumbers(self):
1a3ebdd3bdaf telnumber test in own file
Sandro Knauß <knauss@netzguerilla.net>
parents: 39
diff changeset
    36
        '''test the telefon validator'''
1a3ebdd3bdaf telnumber test in own file
Sandro Knauß <knauss@netzguerilla.net>
parents: 39
diff changeset
    37
        ret = vTel(["0123/456(78)","+4912346785433","00123435456-658"], None)
1a3ebdd3bdaf telnumber test in own file
Sandro Knauß <knauss@netzguerilla.net>
parents: 39
diff changeset
    38
        x=[Telnumber('+4912345678'),Telnumber('012346785433'),Telnumber('+123435456658')]
197
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    39
        self.assertEqual(ret,x)
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    40
128
1a3ebdd3bdaf telnumber test in own file
Sandro Knauß <knauss@netzguerilla.net>
parents: 39
diff changeset
    41
    def testInvalidTelnumbers(self):
1a3ebdd3bdaf telnumber test in own file
Sandro Knauß <knauss@netzguerilla.net>
parents: 39
diff changeset
    42
        '''invalid telnumbers'''
1a3ebdd3bdaf telnumber test in own file
Sandro Knauß <knauss@netzguerilla.net>
parents: 39
diff changeset
    43
        
1a3ebdd3bdaf telnumber test in own file
Sandro Knauß <knauss@netzguerilla.net>
parents: 39
diff changeset
    44
        numbers=['xa','+1','1-23',';:+0','0123']
1a3ebdd3bdaf telnumber test in own file
Sandro Knauß <knauss@netzguerilla.net>
parents: 39
diff changeset
    45
        
1a3ebdd3bdaf telnumber test in own file
Sandro Knauß <knauss@netzguerilla.net>
parents: 39
diff changeset
    46
        for number in numbers:
129
d6704178a18f renaming NotATelNumber -> InvalidTel
Sandro Knauß <knauss@netzguerilla.net>
parents: 128
diff changeset
    47
            with self.assertRaises(InvalidTel) as e:
128
1a3ebdd3bdaf telnumber test in own file
Sandro Knauß <knauss@netzguerilla.net>
parents: 39
diff changeset
    48
                vTel([number], None)
197
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    49
            self.assertEqual(e.exception.number,number)
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    50
129
d6704178a18f renaming NotATelNumber -> InvalidTel
Sandro Knauß <knauss@netzguerilla.net>
parents: 128
diff changeset
    51
        with self.assertRaises(InvalidTel) as e:
128
1a3ebdd3bdaf telnumber test in own file
Sandro Knauß <knauss@netzguerilla.net>
parents: 39
diff changeset
    52
            vTel(['01234']+numbers, None)
197
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    53
        self.assertEqual(e.exception.number,numbers[0])
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    54
167
374f34025fa1 validator now deleting doubles
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    55
    def testDoubles(self):
374f34025fa1 validator now deleting doubles
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    56
        ret = vTel(["0123/456(78)","+4912345678","004912345678"], None)
374f34025fa1 validator now deleting doubles
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    57
        x=[Telnumber('+4912345678')]
197
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    58
        self.assertEqual(ret,x)
167
374f34025fa1 validator now deleting doubles
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    59
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    60
    def equalNumber(self, tel1, tel2):
197
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    61
        self.assertEqual(tel1.number, tel2.number)
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    62
        self.assertEqual(tel1.land, tel2.land)
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    63
        
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    64
    def testWrongNumber(self):
128
1a3ebdd3bdaf telnumber test in own file
Sandro Knauß <knauss@netzguerilla.net>
parents: 39
diff changeset
    65
        telnum=Telnumber()
129
d6704178a18f renaming NotATelNumber -> InvalidTel
Sandro Knauß <knauss@netzguerilla.net>
parents: 128
diff changeset
    66
        self.assertRaises(InvalidTel, telnum.createNumber,  "hallo")
d6704178a18f renaming NotATelNumber -> InvalidTel
Sandro Knauß <knauss@netzguerilla.net>
parents: 128
diff changeset
    67
        self.assertRaises(InvalidTel, telnum.createNumber,  "0?242")
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    68
   
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    69
    def testNumber(self):
197
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    70
        telnum=Telnumber("0345-94103640")
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    71
        telnum2=Telnumber("+49345/94103640")
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    72
        telnum3=Telnumber("00493459410364-0")
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    73
        telnum4=Telnumber("+49(0)345-94103640")
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    74
        
197
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    75
        self.assertEqual(telnum.land, "49")
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    76
        self.assertEqual(telnum.number, "34594103640")
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    77
        
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    78
        self.equalNumber(telnum, telnum2)
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    79
        self.equalNumber(telnum, telnum3)
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    80
        self.equalNumber(telnum, telnum4)
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    81
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    82
    def testEqual(self):
197
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    83
        telnum=Telnumber("0345-94103640")
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    84
        telnum2=Telnumber("+49345/94103640")
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    85
        li=[]
197
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    86
        self.assertEqual(telnum == telnum2, True)
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    87
        self.assertEqual(telnum <> telnum2, False)
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    88
        self.assertEqual(telnum,  telnum2)
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    89
        self.assertEqual(telnum in li,False)
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    90
        li.append(telnum)
197
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    91
        self.assertEqual(telnum in li,True)
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    92
        self.assertEqual(telnum2 in li,True)
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    93
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    94
    def testHash(self):
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    95
        telnum=Telnumber("0345-94103640")
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    96
        self.assertEqual(hash(telnum),hash("004934594103640"))
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    97
        self.assertNotEqual(hash(telnum),hash("004934594103641"))
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    98
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
    99
    def testString(self):
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
   100
        telnum=Telnumber("0345-94103640")
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
   101
        self.assertEqual(str(telnum),"004934594103640")
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
   102
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
   103
    def testRepr(self):
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
   104
        telnum=Telnumber("0345-94103640") 
73b11797781b tests for telnumber added
Sandro Knauß <knauss@netzguerilla.net>
parents: 167
diff changeset
   105
        self.assertEqual(repr(telnum),"<Telnumber 004934594103640>")