iro/tests/telnumber.py
branchdevel
changeset 231 3929338fd17f
parent 197 73b11797781b
child 282 50cc13814bfb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/iro/tests/telnumber.py	Sun Mar 18 14:06:27 2012 +0100
@@ -0,0 +1,80 @@
+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.assertEqual(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.assertEqual(e.exception.number,number)
+
+        with self.assertRaises(InvalidTel) as e:
+            vTel(['01234']+numbers, None)
+        self.assertEqual(e.exception.number,numbers[0])
+
+    def testDoubles(self):
+        ret = vTel(["0123/456(78)","+4912345678","004912345678"], None)
+        x=[Telnumber('+4912345678')]
+        self.assertEqual(ret,x)
+
+    def equalNumber(self, tel1, tel2):
+        self.assertEqual(tel1.number, tel2.number)
+        self.assertEqual(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("0345-94103640")
+        telnum2=Telnumber("+49345/94103640")
+        telnum3=Telnumber("00493459410364-0")
+        telnum4=Telnumber("+49(0)345-94103640")
+        
+        self.assertEqual(telnum.land, "49")
+        self.assertEqual(telnum.number, "34594103640")
+        
+        self.equalNumber(telnum, telnum2)
+        self.equalNumber(telnum, telnum3)
+        self.equalNumber(telnum, telnum4)
+
+    def testEqual(self):
+        telnum=Telnumber("0345-94103640")
+        telnum2=Telnumber("+49345/94103640")
+        li=[]
+        self.assertEqual(telnum == telnum2, True)
+        self.assertEqual(telnum <> telnum2, False)
+        self.assertEqual(telnum,  telnum2)
+        self.assertEqual(telnum in li,False)
+        li.append(telnum)
+        self.assertEqual(telnum in li,True)
+        self.assertEqual(telnum2 in li,True)
+
+    def testHash(self):
+        telnum=Telnumber("0345-94103640")
+        self.assertEqual(hash(telnum),hash("004934594103640"))
+        self.assertNotEqual(hash(telnum),hash("004934594103641"))
+
+    def testString(self):
+        telnum=Telnumber("0345-94103640")
+        self.assertEqual(str(telnum),"004934594103640")
+
+    def testRepr(self):
+        telnum=Telnumber("0345-94103640") 
+        self.assertEqual(repr(telnum),"<Telnumber 004934594103640>")