iro/error.py
author Sandro Knauß <knauss@netzguerilla.net>
Fri, 30 Mar 2012 11:23:22 +0200
branchdevel
changeset 267 ef2df3f23cb1
parent 225 70dafbaf21af
child 294 0e75bd39767d
permissions -rw-r--r--
adding docstring: iro
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
92
f479738b4879 umbau zu MVC
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     1
# -*- coding: utf-8 -*-
f479738b4879 umbau zu MVC
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     2
class InterfaceException(Exception):
267
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
     3
    """Exception, that should be reported to external client
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
     4
    
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
     5
    999 -- unknown error
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
     6
    """
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
     7
    def __init__(self, code=999, msg="Unknown error."):
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
     8
        """
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
     9
        :param integer code: the error code
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
    10
        :param string msg: the error message
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
    11
        """
92
f479738b4879 umbau zu MVC
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    12
        self.code=code
f479738b4879 umbau zu MVC
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    13
        self.msg=msg
f479738b4879 umbau zu MVC
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    14
f479738b4879 umbau zu MVC
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    15
    def dict(self):
267
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
    16
        """dict representation of the error"""
92
f479738b4879 umbau zu MVC
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    17
        return {"code":self.code,
f479738b4879 umbau zu MVC
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    18
                "msg":self.msg,
f479738b4879 umbau zu MVC
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    19
                }
267
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
    20
92
f479738b4879 umbau zu MVC
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    21
    def __str__(self):
225
70dafbaf21af nicer error messages
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    22
        return "%i: %s"%(self.code,self.msg)
92
f479738b4879 umbau zu MVC
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    23
f479738b4879 umbau zu MVC
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    24
class UserNotFound(InterfaceException):
267
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
    25
    """ 901 -- apikey is unknown -- user not found""" 
92
f479738b4879 umbau zu MVC
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    26
    def __init__(self):
267
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
    27
        InterfaceException.__init__(self, 901, "Apikey is unknown.")
92
f479738b4879 umbau zu MVC
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    28
125
19b3f383c9ce getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents: 116
diff changeset
    29
class JobNotFound(InterfaceException):
267
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
    30
    """902 -- jobid is unknown"""
125
19b3f383c9ce getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents: 116
diff changeset
    31
    def __init__(self):
189
ae2767918faa default language is english.
Sandro Knauß <knauss@netzguerilla.net>
parents: 165
diff changeset
    32
        InterfaceException.__init__(self, 902, "Jobid is unknown.")
125
19b3f383c9ce getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents: 116
diff changeset
    33
92
f479738b4879 umbau zu MVC
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    34
class ExternalException(InterfaceException):
267
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
    35
    """950 -- error in external api"""
92
f479738b4879 umbau zu MVC
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    36
    def __init__(self):
189
ae2767918faa default language is english.
Sandro Knauß <knauss@netzguerilla.net>
parents: 165
diff changeset
    37
        InterfaceException.__init__(self, 950, "Error in external API.")
92
f479738b4879 umbau zu MVC
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    38
f479738b4879 umbau zu MVC
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    39
class ValidateException(Exception):
267
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
    40
    """700 -- validation failed."""
110
601fc908d9f1 exception handling for xmprpc
Sandro Knauß <knauss@netzguerilla.net>
parents: 92
diff changeset
    41
    def __init__(self, code=700, field=None, msg=None):
267
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
    42
        """
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
    43
        :param integer code: the error code
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
    44
        :param string field: the field, that is not valid 
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
    45
        :param string msg: the error message
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
    46
        """
110
601fc908d9f1 exception handling for xmprpc
Sandro Knauß <knauss@netzguerilla.net>
parents: 92
diff changeset
    47
        self.code=code
601fc908d9f1 exception handling for xmprpc
Sandro Knauß <knauss@netzguerilla.net>
parents: 92
diff changeset
    48
        self.field=field
116
48c70425bf6c validateexception.msg right use
Sandro Knauß <knauss@netzguerilla.net>
parents: 110
diff changeset
    49
        self.msg = msg
48c70425bf6c validateexception.msg right use
Sandro Knauß <knauss@netzguerilla.net>
parents: 110
diff changeset
    50
        if not msg:
48c70425bf6c validateexception.msg right use
Sandro Knauß <knauss@netzguerilla.net>
parents: 110
diff changeset
    51
            self.msg='Validation failed.'
110
601fc908d9f1 exception handling for xmprpc
Sandro Knauß <knauss@netzguerilla.net>
parents: 92
diff changeset
    52
        if field and not msg:
601fc908d9f1 exception handling for xmprpc
Sandro Knauß <knauss@netzguerilla.net>
parents: 92
diff changeset
    53
            self.msg="Validation of '%s' failed."%field
601fc908d9f1 exception handling for xmprpc
Sandro Knauß <knauss@netzguerilla.net>
parents: 92
diff changeset
    54
601fc908d9f1 exception handling for xmprpc
Sandro Knauß <knauss@netzguerilla.net>
parents: 92
diff changeset
    55
    def dict(self):
267
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
    56
        """dict representation of the error"""
110
601fc908d9f1 exception handling for xmprpc
Sandro Knauß <knauss@netzguerilla.net>
parents: 92
diff changeset
    57
        return {"code":self.code,
601fc908d9f1 exception handling for xmprpc
Sandro Knauß <knauss@netzguerilla.net>
parents: 92
diff changeset
    58
                "msg":self.msg,
267
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
    59
                "field":self.field,
110
601fc908d9f1 exception handling for xmprpc
Sandro Knauß <knauss@netzguerilla.net>
parents: 92
diff changeset
    60
                }
601fc908d9f1 exception handling for xmprpc
Sandro Knauß <knauss@netzguerilla.net>
parents: 92
diff changeset
    61
    def __str__(self):
225
70dafbaf21af nicer error messages
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    62
        return "%i: %s"%(self.code,self.msg)
110
601fc908d9f1 exception handling for xmprpc
Sandro Knauß <knauss@netzguerilla.net>
parents: 92
diff changeset
    63
129
d6704178a18f renaming NotATelNumber -> InvalidTel
Sandro Knauß <knauss@netzguerilla.net>
parents: 128
diff changeset
    64
class InvalidTel(ValidateException):
267
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
    65
    """701 -- invalid telnumber"""
126
1ac2439a68b5 adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents: 125
diff changeset
    66
    def __init__(self, number,field=None):
128
1a3ebdd3bdaf telnumber test in own file
Sandro Knauß <knauss@netzguerilla.net>
parents: 126
diff changeset
    67
        self.number = number
126
1ac2439a68b5 adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents: 125
diff changeset
    68
        msg = "No valid telnumber: '%s'"%(number)
1ac2439a68b5 adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents: 125
diff changeset
    69
        ValidateException.__init__(self, 701, field, msg)
1ac2439a68b5 adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents: 125
diff changeset
    70
    
1ac2439a68b5 adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents: 125
diff changeset
    71
class InvalidMail(ValidateException):
267
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
    72
    """702 -- invalid mailaddress"""
126
1ac2439a68b5 adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents: 125
diff changeset
    73
    def __init__(self, number,field=None):
128
1a3ebdd3bdaf telnumber test in own file
Sandro Knauß <knauss@netzguerilla.net>
parents: 126
diff changeset
    74
        self.number = number
126
1ac2439a68b5 adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents: 125
diff changeset
    75
        msg = "No valid email: '%s'"%(number)
1ac2439a68b5 adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents: 125
diff changeset
    76
        ValidateException.__init__(self, 702, field, msg)
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    77
154
fb614eb7627e adding OfferExceptions
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    78
class OfferException(Exception):
267
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
    79
    """an Exception in Offer handling"""
165
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
    80
    def __init__(self, name):
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
    81
        self.name = name
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    82
154
fb614eb7627e adding OfferExceptions
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    83
class NoRoute(OfferException):
267
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
    84
    """no valid route found"""
165
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
    85
    def __str__(self):
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
    86
        return "Not a valid route: %s"%self.name
154
fb614eb7627e adding OfferExceptions
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    87
fb614eb7627e adding OfferExceptions
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    88
class NoProvider(OfferException):
267
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
    89
    """no provider found"""
165
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
    90
    def __str__(self):
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
    91
        return "Not a valid provider: %s"%self.name
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
    92
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
    93
class NoTyp(OfferException):
267
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
    94
    """no typ found."""
165
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
    95
    def __str__(self):
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
    96
        return "Not a valid Typ: %s"%self.name
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    97
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    98
class RejectRecipient(Exception):
267
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
    99
    """can't handle the recipient in a route"""
213
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 189
diff changeset
   100
    def __init__(self,recipient, status=None):
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 189
diff changeset
   101
        self.recipient = recipient
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 189
diff changeset
   102
        self.status = status
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 189
diff changeset
   103
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 189
diff changeset
   104
    def __str__(self):
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 189
diff changeset
   105
        return "Reject recipient(%s): %s"%(str(self.recipient),str(self.status))
165
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
   106
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
   107
class ConfigException(Exception):
267
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
   108
    """Exception while loading configuration."""
165
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
   109
    def __init__(self,section, name):
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
   110
        self.section = section
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
   111
        self.name = name
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
   112
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
   113
class UnknownOption(ConfigException):
267
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
   114
    """Option is unknown"""
165
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
   115
    def __str__(self):
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
   116
        return "Unknown option '%s' in section '%s'."%(self.name, self.section)
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
   117
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
   118
class NeededOption(ConfigException):
267
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
   119
    """Option is missing, but needed."""
165
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
   120
    def __str__(self):
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
   121
        return "Option '%s' in section '%s' is missing."%(self.name, self.section)
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
   122
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
   123
class NoRouteForTask(Exception):
267
ef2df3f23cb1 adding docstring: iro
Sandro Knauß <knauss@netzguerilla.net>
parents: 225
diff changeset
   124
    """Can't send message to recipient with given offers"""
165
dd07766f4fee new and modify exceptions:
Sandro Knauß <knauss@netzguerilla.net>
parents: 162
diff changeset
   125
    pass