iro/offer/provider.py
author Sandro Knauß <knauss@netzguerilla.net>
Sat, 18 Feb 2012 19:48:54 +0100
branchdevel
changeset 171 5619596a0053
parent 169 aabc04843d25
child 180 55ab949cf0f8
permissions -rw-r--r--
getSendFunc logic from smtp to Provider(offer.provider)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
161
072ee139eb67 sending part now in provoder class
Sandro Knauß <knauss@netzguerilla.net>
parents: 159
diff changeset
     1
from functools import partial
072ee139eb67 sending part now in provoder class
Sandro Knauß <knauss@netzguerilla.net>
parents: 159
diff changeset
     2
171
5619596a0053 getSendFunc logic from smtp to Provider(offer.provider)
Sandro Knauß <knauss@netzguerilla.net>
parents: 169
diff changeset
     3
from iro.error import NoRoute, NoTyp
157
0192f9107870 model.offer.loadOffers implemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     4
class Provider():
169
aabc04843d25 complete offer.smtp tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 166
diff changeset
     5
    def __init__(self, name, config, typs={}):
157
0192f9107870 model.offer.loadOffers implemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     6
        self.name = name
0192f9107870 model.offer.loadOffers implemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     7
        self.config = config
166
6d6890f7e3f8 adding smtp provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 161
diff changeset
     8
        self.typs=typs
6d6890f7e3f8 adding smtp provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 161
diff changeset
     9
        self.testmode = False
6d6890f7e3f8 adding smtp provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 161
diff changeset
    10
        
157
0192f9107870 model.offer.loadOffers implemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    11
        self.loadConfig()
0192f9107870 model.offer.loadOffers implemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    12
0192f9107870 model.offer.loadOffers implemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    13
    def loadConfig(self):
159
fbd7364b252d implementing Provider.loadConig started
Sandro Knauß <knauss@netzguerilla.net>
parents: 157
diff changeset
    14
        for (n, v) in self.config:
fbd7364b252d implementing Provider.loadConig started
Sandro Knauß <knauss@netzguerilla.net>
parents: 157
diff changeset
    15
            if n == "typ":
fbd7364b252d implementing Provider.loadConig started
Sandro Knauß <knauss@netzguerilla.net>
parents: 157
diff changeset
    16
                self.typ = v
161
072ee139eb67 sending part now in provoder class
Sandro Knauß <knauss@netzguerilla.net>
parents: 159
diff changeset
    17
072ee139eb67 sending part now in provoder class
Sandro Knauß <knauss@netzguerilla.net>
parents: 159
diff changeset
    18
    def send(self, typ, route, recipient, message):
072ee139eb67 sending part now in provoder class
Sandro Knauß <knauss@netzguerilla.net>
parents: 159
diff changeset
    19
        pass
072ee139eb67 sending part now in provoder class
Sandro Knauß <knauss@netzguerilla.net>
parents: 159
diff changeset
    20
072ee139eb67 sending part now in provoder class
Sandro Knauß <knauss@netzguerilla.net>
parents: 159
diff changeset
    21
    def getSendFunc(self, typ, route):
171
5619596a0053 getSendFunc logic from smtp to Provider(offer.provider)
Sandro Knauß <knauss@netzguerilla.net>
parents: 169
diff changeset
    22
        try:
5619596a0053 getSendFunc logic from smtp to Provider(offer.provider)
Sandro Knauß <knauss@netzguerilla.net>
parents: 169
diff changeset
    23
            if route not in self.typs[typ]:
5619596a0053 getSendFunc logic from smtp to Provider(offer.provider)
Sandro Knauß <knauss@netzguerilla.net>
parents: 169
diff changeset
    24
                raise NoRoute(route)
5619596a0053 getSendFunc logic from smtp to Provider(offer.provider)
Sandro Knauß <knauss@netzguerilla.net>
parents: 169
diff changeset
    25
        except KeyError:
5619596a0053 getSendFunc logic from smtp to Provider(offer.provider)
Sandro Knauß <knauss@netzguerilla.net>
parents: 169
diff changeset
    26
            raise NoTyp(route)
161
072ee139eb67 sending part now in provoder class
Sandro Knauß <knauss@netzguerilla.net>
parents: 159
diff changeset
    27
        return partial(self.send, typ, route)
072ee139eb67 sending part now in provoder class
Sandro Knauß <knauss@netzguerilla.net>
parents: 159
diff changeset
    28