tests/telnumber.py
author Sandro Knauß <knauss@netzguerilla.net>
Thu, 23 Feb 2012 16:58:58 +0100
branchdevel
changeset 184 6b0ff82dff81
parent 167 374f34025fa1
child 197 73b11797781b
permissions -rw-r--r--
testing Must argument and Provider section

import unittest

from iro.validate import vTel
from iro.error import InvalidTel
from iro.telnumber import Telnumber

class testTelefonnumbers(unittest.TestCase):
    """tests for telefonnumbers"""

    def testMultipleTelnumbers(self):
        '''test the telefon validator'''
        ret = vTel(["0123/456(78)","+4912346785433","00123435456-658"], None)
        x=[Telnumber('+4912345678'),Telnumber('012346785433'),Telnumber('+123435456658')]
        self.failUnlessEqual(ret,x)

    def testInvalidTelnumbers(self):
        '''invalid telnumbers'''
        
        numbers=['xa','+1','1-23',';:+0','0123']
        
        for number in numbers:
            with self.assertRaises(InvalidTel) as e:
                vTel([number], None)
            self.failUnlessEqual(e.exception.number,number)

        with self.assertRaises(InvalidTel) as e:
            vTel(['01234']+numbers, None)
        self.failUnlessEqual(e.exception.number,numbers[0])

    def testDoubles(self):
        ret = vTel(["0123/456(78)","+4912345678","004912345678"], None)
        x=[Telnumber('+4912345678')]
        self.failUnlessEqual(ret,x)


    def equalNumber(self, tel1, tel2):
        self.failUnlessEqual(tel1.number, tel2.number)
        self.failUnlessEqual(tel1.land, tel2.land)
        
    def testWrongNumber(self):
        telnum=Telnumber()
        self.assertRaises(InvalidTel, telnum.createNumber,  "hallo")
        self.assertRaises(InvalidTel, telnum.createNumber,  "0?242")
        
   
    def testNumber(self):
        telnum=Telnumber("0551-28293640")
        telnum2=Telnumber("+49551/28293640")
        telnum3=Telnumber("00495512829364-0")
        telnum4=Telnumber("+49(0)551-28293640")
        
        self.failUnlessEqual(telnum.land, "49")
        self.failUnlessEqual(telnum.number, "55128293640")
        
        self.equalNumber(telnum, telnum2)
        self.equalNumber(telnum, telnum3)
        self.equalNumber(telnum, telnum4)

    def testEqual(self):
        telnum=Telnumber("0551-28293640")
        telnum2=Telnumber("+49551/28293640")
        li=[]
        self.failUnlessEqual(telnum == telnum2, True)
        self.failUnlessEqual(telnum <> telnum2, False)
        self.failUnlessEqual(telnum,  telnum2)
        self.failUnlessEqual(telnum in li,False)
        li.append(telnum)
        self.failUnlessEqual(telnum in li,True)
        self.failUnlessEqual(telnum2 in li,True)