--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/smstrade.py Sat Feb 18 19:50:36 2012 +0100
@@ -0,0 +1,64 @@
+from twisted.trial import unittest
+
+from mock import patch, Mock
+
+from iro.error import NoRoute, NoTyp, NeededOption, UnknownOption
+from iro.telnumber import Telnumber
+from iro.model.message import SMS
+from iro.offer import Smstrade
+
+HOST = "localhost"
+PORT = 9999
+
+class TestSMStradeProvider(unittest.TestCase):
+
+ def getProvider(self, c=None):
+ ret={"key":"XXXXXX",
+ }
+
+ if c:
+ ret.update(c)
+
+ return Smstrade("test",ret.items())
+
+ @patch("urllib.urlopen")
+ def testSendSMS(self,mock_urlopen):
+ f = Mock()
+ f.readlines.return_value = ["100","12345678","0.55","1"]
+ mock_urlopen.return_value = f
+
+ params = ["key=XXXXXX","to=00491701234567", "message=Hello+World", "route=gold", "message_id=1", "cost=1","count=1",'charset=utf-8']
+ params.sort()
+
+ p=self.getProvider()
+ content = "Hello World"
+ status = p.send("gold",SMS(content,None), Telnumber("01701234567"))
+
+ self.assertEqual(status.status, status.GOOD)
+
+ ca = mock_urlopen.call_args[0]
+ c=ca[1].split("&")
+ c.sort()
+
+ self.assertEqual(ca[0],"https://gateway.smstrade.de")
+ self.assertEqual(c,params)
+ self.assertEqual(f.readlines.call_count,1)
+
+
+ def testNeededOption(self):
+ c={"key":"XXXXXXXX",}
+ s=Smstrade("test",c.items())
+ self.assertEqual(s.key, "XXXXXXXX")
+
+ self.assertRaises(NeededOption,Smstrade,"test",[])
+
+ c = {"unknown":""}
+ self.assertRaises(UnknownOption,Smstrade,"test",c.items())
+
+ def testSendFunc(self):
+ s = self.getProvider()
+ p = s.getSendFunc("sms","basic")
+ self.assertEqual(p.func, s.send)
+ self.assertEqual(p.args, ("basic",))
+ self.assertRaises(NoRoute,s.getSendFunc,"sms","foo")
+ self.assertRaises(NoTyp,s.getSendFunc,"mail2","basic")