iro/tests/offer_integrated.py
author Sandro Knauß <knauss@netzguerilla.net>
Fri, 24 Aug 2012 01:05:06 +0200
branchdevel
changeset 294 0e75bd39767d
parent 245 4526747a42ca
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: 245
diff changeset
     1
# Copyright (c) 2012 netzguerilla.net <iro@netzguerilla.net>
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 245
diff changeset
     2
# 
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 245
diff changeset
     3
# This file is part of Iro.
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 245
diff changeset
     4
# 
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 245
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: 245
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: 245
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: 245
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: 245
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: 245
diff changeset
    10
# subject to the following conditions:
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 245
diff changeset
    11
# 
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 245
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: 245
diff changeset
    13
# all copies or substantial portions of the Software.
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 245
diff changeset
    14
# 
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 245
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: 245
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: 245
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: 245
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: 245
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: 245
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: 245
diff changeset
    21
216
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    22
from twisted.internet.defer import inlineCallbacks
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    23
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    24
from datetime import datetime
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    25
from decimal import Decimal 
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    26
from mock import patch, Mock
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    27
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    28
from iro.model.job import exJobs
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    29
from iro.model.pool import data
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    30
from iro.model.schema import User, Offer as DBOffer, Userright
218
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
    31
from iro.model.message import SMS, Mail
216
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    32
from iro.model import offer
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    33
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    34
from iro.controller.task import Task, taskPool
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    35
from iro.telnumber import Telnumber
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    36
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    37
from iro.offer import Smstrade, SMTP, Offer
218
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
    38
from iro.offer.smstrade import SmstradeException, StatusCode
245
4526747a42ca some more messages about job status
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
    39
from iro.error import NoRouteForTask
216
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    40
231
3929338fd17f moving tests -> iro.tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 218
diff changeset
    41
from ..test_helpers.dbtestcase import DBTestCase
241
546316b0b09c moving DummyObserver and DummyPool -> iro.test_helpers.utils
Sandro Knauß <knauss@netzguerilla.net>
parents: 236
diff changeset
    42
from ..test_helpers.utils import DummyPool
216
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    43
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    44
def run( f,*a,**k):
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    45
    return f(*a,**k)
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    46
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    47
class IntegratedOfferTests(DBTestCase):
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    48
    def setUp(self):
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    49
        DBTestCase.setUp(self)
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    50
        self.pool = data.pool
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    51
        data.pool = DummyPool()
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    52
        
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    53
        self.taskPool = taskPool.run
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    54
        taskPool.run = run 
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    55
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    56
    def tearDown(self):
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    57
        exJobs.clear()
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    58
        data.pool = self.pool
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    59
        self.pool = None
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    60
        taskPool.run = self.taskPool
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    61
        self.taskPool = None
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    62
        DBTestCase.tearDown(self)
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    63
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    64
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    65
    @patch("iro.model.job.datetime")
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    66
    @patch("urllib.urlopen")
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    67
    @inlineCallbacks
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    68
    def testSmstrade(self, p_u, p_dt):
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    69
        f = Mock()
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    70
        f.readlines.return_value = ["100","12345678","0.055","1"]
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    71
        p_u.return_value = f
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    72
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    73
        p_dt.today.return_value = datetime(2000, 1, 2, 3, 4, 5)
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    74
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    75
        with self.session() as session:
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    76
            u = User(name='test',apikey='abcdef123456789')
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    77
            session.add(u)
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    78
            o=DBOffer(name="s", provider="bla", route="basic", typ="sms")
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    79
            u.rights.append(Userright(o))
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    80
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    81
        
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    82
        offer.providers["bla"] = Smstrade("bla")
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    83
        offer.providers["bla"].key = "XXXXXX"
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    84
        offer.offers["s"] = Offer("s",offer.providers["bla"],"basic","sms")
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    85
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    86
        j = yield exJobs.create(u,[Telnumber("0123456789")],SMS("bla"),['s'],'tesched')
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    87
        t = Task(Telnumber("0123456789"),j)
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    88
        yield t.start()
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    89
245
4526747a42ca some more messages about job status
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
    90
        self.assertEqual(self.log.e[2]['message'], ("Job(%s) to '0049123456789' ended sucecessfully via bla:basic."%j.dbjob,))
218
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
    91
        
216
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    92
        with self.session() as session:
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    93
            u = session.merge(u)
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    94
            o = session.merge(o)
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    95
            job = u.job(j.dbjob)
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    96
            self.assertEqual(job.status,"sended")
218
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
    97
            self.assertEqual(job.info,"tesched")
216
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    98
            self.assertEqual(len(job.messages),1)
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    99
            
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   100
            msg = job.messages[0]
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   101
            self.assertEqual(msg.price,Decimal('0.0550'))
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   102
            self.assertEqual(msg.isBilled,False)
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   103
            self.assertEqual(msg.recipient,str(Telnumber('123456789')))
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   104
            self.assertEqual(msg.date,datetime(2000, 1, 2, 3, 4, 5))
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   105
            self.assertEqual(msg.offer,o)
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   106
            self.assertEqual(msg.exID,"12345678")
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   107
            self.assertEqual(msg.count,1)
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   108
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   109
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   110
    @patch("urllib.urlopen")
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   111
    @inlineCallbacks
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   112
    def testSmstradeException(self, mock_urlopen):
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   113
        f = Mock()
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   114
        f.readlines.return_value = ["703"]
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   115
        mock_urlopen.return_value = f
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   116
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   117
        with self.session() as session:
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   118
            u = User(name='test',apikey='abcdef123456789')
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   119
            session.add(u)
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   120
            o=DBOffer(name="s", provider="bla", route="basic", typ="sms")
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   121
            u.rights.append(Userright(o)) 
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   122
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   123
        offer.providers["bla"] = Smstrade("bla")
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   124
        offer.providers["bla"].key = "XXXXXX"
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   125
        offer.offers["s"] = Offer("s",offer.providers["bla"],"basic","sms")
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   126
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   127
        j = yield exJobs.create(u,[Telnumber("0123456789")],SMS("bla"),['s'],'tesched')
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   128
        t = Task(Telnumber("0123456789"),j)
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   129
        yield t.start()
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   130
218
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   131
        errors = self.flushLoggedErrors(SmstradeException)
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   132
        self.assertEqual(len(errors), 1)
245
4526747a42ca some more messages about job status
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   133
        errors = self.flushLoggedErrors(NoRouteForTask)
4526747a42ca some more messages about job status
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   134
        self.assertEqual(len(errors), 1)
4526747a42ca some more messages about job status
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   135
        self.assertEqual(self.log.e[1]['why'], "Job(%s): Send to '0049123456789' failed via 's'"%j.dbjob)
4526747a42ca some more messages about job status
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   136
        self.assertEqual(self.log.e[3]['why'], "Error: Job(%s) to '0049123456789' failed."%j.dbjob)
218
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   137
        
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   138
        self.assertEqual(t.error, True)
245
4526747a42ca some more messages about job status
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   139
        self.assertEqual(str(self.log.e[1]['failure'].value),str(SmstradeException(StatusCode(703))))
218
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   140
        
216
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   141
        with self.session() as session:
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   142
            u = session.merge(u)
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   143
            o = session.merge(o)
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   144
            job = u.job(j.dbjob)
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   145
            self.assertEqual(job.status,"error")
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   146
            self.assertEqual(len(job.messages),0)
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   147
218
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   148
    @patch("smtplib.SMTP")
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   149
    @inlineCallbacks
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   150
    def testSmtp(self, p_s ):
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   151
        with self.session() as session:
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   152
            u = User(name='test',apikey='abcdef123456789')
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   153
            session.add(u)
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   154
            o=DBOffer(name="s", provider="bla", route=None, typ="mail")
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   155
            u.rights.append(Userright(o)) 
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   156
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   157
        offer.providers["bla"] = SMTP("bla")
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   158
        offer.providers["bla"].SSL = False
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   159
        offer.providers["bla"].TLS = False
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   160
        offer.providers["bla"].host = "localhost"
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   161
        offer.providers["bla"].port = 12345
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   162
        offer.providers["bla"].user = ""
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   163
        offer.providers["bla"].send_from = "frm@test.de"
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   164
        offer.offers["s"] = Offer("s",offer.providers["bla"],None,"mail")
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   165
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   166
        j = yield exJobs.create(u,["t@test.de"],Mail("bla",'msg',None),['s'],'tesched')
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   167
        t = Task("t@test.de",j)
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   168
        yield t.start()
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   169
        
245
4526747a42ca some more messages about job status
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   170
        self.assertEqual(self.log.e[2]['message'], ("Job(%s) to 't@test.de' ended sucecessfully via bla:None."%j.dbjob,))
218
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   171
        
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   172
        with self.session() as session:
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   173
            u = session.merge(u)
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   174
            o = session.merge(o)
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   175
            job = u.job(j.dbjob)
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   176
            self.assertEqual(job.status,"sended")
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   177
            self.assertEqual(job.info,"tesched")
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   178
            self.assertEqual(len(job.messages),0)
216
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   179
    
218
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   180
    @patch("smtplib.SMTP")
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   181
    @inlineCallbacks
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   182
    def testSmtpException(self, p_s):
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   183
        p_s.side_effect = IOError(111,"Connection refused")
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   184
        with self.session() as session:
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   185
            u = User(name='test',apikey='abcdef123456789')
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   186
            session.add(u)
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   187
            o=DBOffer(name="s", provider="bla", route=None, typ="mail")
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   188
            u.rights.append(Userright(o)) 
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   189
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   190
        offer.providers["bla"] = SMTP("bla")
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   191
        offer.providers["bla"].SSL = False
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   192
        offer.providers["bla"].TLS = False
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   193
        offer.providers["bla"].host = "localhost"
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   194
        offer.providers["bla"].port = 12345
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   195
        offer.providers["bla"].user = ""
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   196
        offer.providers["bla"].send_from = "frm@test.de"
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   197
        offer.offers["s"] = Offer("s",offer.providers["bla"],None,"mail")
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   198
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   199
        j = yield exJobs.create(u,["t@test.de"],Mail("bla",'msg',None),['s'],'tesched')
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   200
        t = Task("t@test.de",j)
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   201
        yield t.start()
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   202
245
4526747a42ca some more messages about job status
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   203
        errors = self.flushLoggedErrors(NoRouteForTask)
4526747a42ca some more messages about job status
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   204
        self.assertEqual(len(errors), 1)
218
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   205
        errors = self.flushLoggedErrors(IOError)
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   206
        self.assertEqual(len(errors), 1)
245
4526747a42ca some more messages about job status
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   207
        self.assertEqual(self.log.e[1]['why'], "Job(%s): Send to 't@test.de' failed via 's'"%j.dbjob)
4526747a42ca some more messages about job status
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   208
        self.assertEqual(self.log.e[3]['why'], "Error: Job(%s) to 't@test.de' failed."%j.dbjob)
218
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   209
        self.assertEqual(t.error, True)
245
4526747a42ca some more messages about job status
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   210
        self.assertEqual(str(self.log.e[1]['failure'].value),str(IOError(111,"Connection refused")))
218
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   211
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   212
        with self.session() as session:
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   213
            u = session.merge(u)
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   214
            o = session.merge(o)
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   215
            job = u.job(j.dbjob)
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   216
            self.assertEqual(job.status,"error")
91f87ad13540 integration tests for smtp
Sandro Knauß <knauss@netzguerilla.net>
parents: 216
diff changeset
   217
            self.assertEqual(len(job.messages),0)
236
63662db5ff25 tests for utf-8 have to be created
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
   218
       
63662db5ff25 tests for utf-8 have to be created
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
   219
    def testUnicode(self):
63662db5ff25 tests for utf-8 have to be created
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
   220
        '''tests unicode spefiica'''
63662db5ff25 tests for utf-8 have to be created
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
   221
        pass
63662db5ff25 tests for utf-8 have to be created
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
   222
    testUnicode.todo="to implement"