comparison venv/lib/python2.7/site-packages/github/tests/Exceptions.py @ 0:d67268158946 draft

planemo upload commit a3f181f5f126803c654b3a66dd4e83a48f7e203b
author bcclaywell
date Mon, 12 Oct 2015 17:43:33 -0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:d67268158946
1 # -*- coding: utf-8 -*-
2
3 # ########################## Copyrights and license ############################
4 # #
5 # Copyright 2012 Vincent Jacques <vincent@vincent-jacques.net> #
6 # Copyright 2012 Zearin <zearin@gonk.net> #
7 # Copyright 2013 Vincent Jacques <vincent@vincent-jacques.net> #
8 # #
9 # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #
10 # #
11 # PyGithub is free software: you can redistribute it and/or modify it under #
12 # the terms of the GNU Lesser General Public License as published by the Free #
13 # Software Foundation, either version 3 of the License, or (at your option) #
14 # any later version. #
15 # #
16 # PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY #
17 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS #
18 # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more #
19 # details. #
20 # #
21 # You should have received a copy of the GNU Lesser General Public License #
22 # along with PyGithub. If not, see <http://www.gnu.org/licenses/>. #
23 # #
24 # ##############################################################################
25
26 import github
27 import sys
28
29 import Framework
30
31 atLeastPython26 = sys.hexversion >= 0x02060000
32 atMostPython2 = sys.hexversion < 0x03000000
33
34
35 class Exceptions(Framework.TestCase): # To stay compatible with Python 2.6, we do not use self.assertRaises with only one argument
36 def testInvalidInput(self):
37 raised = False
38 try:
39 self.g.get_user().create_key("Bad key", "xxx")
40 except github.GithubException, exception:
41 raised = True
42 self.assertEqual(exception.status, 422)
43 self.assertEqual(
44 exception.data,
45 {
46 "errors": [
47 {
48 "code": "custom",
49 "field": "key",
50 "message": "key is invalid. It must begin with 'ssh-rsa' or 'ssh-dss'. Check that you're copying the public half of the key",
51 "resource": "PublicKey"
52 }
53 ],
54 "message": "Validation Failed"
55 }
56 )
57 self.assertTrue(raised)
58
59 def testNonJsonDataReturnedByGithub(self):
60 # Replay data was forged according to https://github.com/jacquev6/PyGithub/pull/182
61 raised = False
62 try:
63 self.g.get_user("jacquev6")
64 except github.GithubException, exception:
65 raised = True
66 self.assertEqual(exception.status, 503)
67 self.assertEqual(
68 exception.data,
69 {
70 "data": "<html><body><h1>503 Service Unavailable</h1>No server is available to handle this request.</body></html>",
71 }
72 )
73 self.assertTrue(raised)
74
75 def testUnknownObject(self):
76 raised = False
77 try:
78 self.g.get_user().get_repo("Xxx")
79 except github.GithubException, exception:
80 raised = True
81 self.assertEqual(exception.status, 404)
82 self.assertEqual(exception.data, {"message": "Not Found"})
83 if atLeastPython26 and atMostPython2:
84 self.assertEqual(str(exception), "404 {u'message': u'Not Found'}")
85 else:
86 self.assertEqual(str(exception), "404 {'message': 'Not Found'}") # pragma no cover (Covered with Python 3)
87 self.assertTrue(raised)
88
89 def testUnknownUser(self):
90 raised = False
91 try:
92 self.g.get_user("ThisUserShouldReallyNotExist")
93 except github.GithubException, exception:
94 raised = True
95 self.assertEqual(exception.status, 404)
96 self.assertEqual(exception.data, {"message": "Not Found"})
97 if atLeastPython26 and atMostPython2:
98 self.assertEqual(str(exception), "404 {u'message': u'Not Found'}")
99 else:
100 self.assertEqual(str(exception), "404 {'message': 'Not Found'}") # pragma no cover (Covered with Python 3)
101 self.assertTrue(raised)
102
103 def testBadAuthentication(self):
104 raised = False
105 try:
106 github.Github("BadUser", "BadPassword").get_user().login
107 except github.GithubException, exception:
108 raised = True
109 self.assertEqual(exception.status, 401)
110 self.assertEqual(exception.data, {"message": "Bad credentials"})
111 if atLeastPython26 and atMostPython2:
112 self.assertEqual(str(exception), "401 {u'message': u'Bad credentials'}")
113 else:
114 self.assertEqual(str(exception), "401 {'message': 'Bad credentials'}") # pragma no cover (Covered with Python 3)
115 self.assertTrue(raised)
116
117
118 class SpecificExceptions(Framework.TestCase):
119 def testBadCredentials(self):
120 self.assertRaises(github.BadCredentialsException, lambda: github.Github("BadUser", "BadPassword").get_user().login)
121
122 def testUnknownObject(self):
123 self.assertRaises(github.UnknownObjectException, lambda: self.g.get_user().get_repo("Xxx"))
124
125 def testBadUserAgent(self):
126 self.assertRaises(github.BadUserAgentException, lambda: github.Github(self.login, self.password, user_agent="").get_user().name)
127
128 def testRateLimitExceeded(self):
129 g = github.Github()
130
131 def exceed():
132 for i in range(100):
133 g.get_user("jacquev6")
134
135 self.assertRaises(github.RateLimitExceededException, exceed)