diff --git a/github/Github.UnitTest.py b/github/Github.UnitTest.py index a80f199e..5af5960f 100644 --- a/github/Github.UnitTest.py +++ b/github/Github.UnitTest.py @@ -3,7 +3,7 @@ import MockMockMock import httplib import base64 -from Github import Github +from Github import Github, UnknownGithubObject class TestCase( unittest.TestCase ): def setUp( self ): @@ -40,4 +40,9 @@ class TestCase( unittest.TestCase ): self.expect( "GET", "/test", "null", 200, [], '{ "foo": "bar" }' ) self.assertEqual( self.g._dataRequest( "GET", "/test", None, None ), { "foo" : "bar" } ) + def testDataOnBadStatus( self ): + self.expect( "GET", "/test", "null", 404, [], '{ "foo": "bar" }' ) + with self.assertRaises( UnknownGithubObject ): + self.g._dataRequest( "GET", "/test", None, None ) + unittest.main() diff --git a/github/Github.py b/github/Github.py index 961c6f08..012912e2 100644 --- a/github/Github.py +++ b/github/Github.py @@ -4,6 +4,9 @@ import base64 from GithubObjects import * +class UnknownGithubObject( Exception ): + pass + class Github: def __init__( self, login, password ): self.__login = login @@ -11,7 +14,10 @@ class Github: def _dataRequest( self, verb, url, parameters, data ): status, headers, data = self.__rawRequest( verb, url, parameters, data ) - return data + if 200 <= status < 300: + return data + else: + raise UnknownGithubObject() def _statusRequest( self, verb, url, parameters, data ): status, headers, data = self.__rawRequest( verb, url, parameters, data )