Skip to content

Commit

Permalink
Minor improvements to the Facepy custom exceptions
Browse files Browse the repository at this point in the history
This change slightly modifies the exception classes so that when they
are raised they are displayed properly.
  • Loading branch information
richid committed Aug 24, 2012
1 parent 7e677bb commit 839fa59
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 3 deletions.
8 changes: 5 additions & 3 deletions facepy/exceptions.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
class FacepyError(Exception):
"""Base class for exceptions raised by Facepy."""

def __init__(self, message):
self.message = message

class FacebookError(FacepyError):
"""Exception for Facebook errors."""

def __init__(self, message=None, code=None):
self.message = message
self.code = code

if self.code:
message = '[%s] %s' % (self.code, self.message)

super(FacebookError, self).__init__(message)

class OAuthError(FacebookError):
"""Exception for Facebook errors specifically related to OAuth."""

Expand Down
14 changes: 14 additions & 0 deletions tests/test_exceptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,27 @@

from facepy import *
from facepy.graph_api import GraphAPI
from facepy.exceptions import FacebookError
import cPickle

def test_facepy_error():
try:
raise FacepyError('<message>')
except FacepyError as exception:
assert exception.message == '<message>'
assert exception.__str__() == '<message>'
assert exception.__repr__() == "FacepyError('<message>',)"
assert exception.__unicode__() == u'<message>'

def test_facebook_error():
try:
raise FacebookError('<message>', 100)
except FacebookError as exception:
assert exception.message == '<message>'
assert exception.code == 100
assert exception.__str__() == '[100] <message>'
assert exception.__repr__() == "FacebookError('[100] <message>',)"
assert exception.__unicode__() == u'[100] <message>'

def test_facebookerror_can_be_pickled():
try:
Expand Down

0 comments on commit 839fa59

Please sign in to comment.