/ tests / Enterprise.py
Enterprise.py
  1  ############################ Copyrights and license ############################
  2  #                                                                              #
  3  # Copyright 2012 Vincent Jacques <vincent@vincent-jacques.net>                 #
  4  # Copyright 2012 Zearin <zearin@gonk.net>                                      #
  5  # Copyright 2013 Vincent Jacques <vincent@vincent-jacques.net>                 #
  6  # Copyright 2014 Vincent Jacques <vincent@vincent-jacques.net>                 #
  7  # Copyright 2016 Peter Buckley <dx-pbuckley@users.noreply.github.com>          #
  8  # Copyright 2018 sfdye <tsfdye@gmail.com>                                      #
  9  #                                                                              #
 10  # This file is part of PyGithub.                                               #
 11  # http://pygithub.readthedocs.io/                                              #
 12  #                                                                              #
 13  # PyGithub is free software: you can redistribute it and/or modify it under    #
 14  # the terms of the GNU Lesser General Public License as published by the Free  #
 15  # Software Foundation, either version 3 of the License, or (at your option)    #
 16  # any later version.                                                           #
 17  #                                                                              #
 18  # PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY  #
 19  # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS    #
 20  # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more #
 21  # details.                                                                     #
 22  #                                                                              #
 23  # You should have received a copy of the GNU Lesser General Public License     #
 24  # along with PyGithub. If not, see <http://www.gnu.org/licenses/>.             #
 25  #                                                                              #
 26  ################################################################################
 27  
 28  import github
 29  
 30  from . import Framework
 31  
 32  
 33  # Replay data for this test case is forged, because I don't have access to a real Github Enterprise install
 34  class Enterprise(Framework.BasicTestCase):
 35      def testHttps(self):
 36          g = github.Github(auth=self.login, base_url="https://my.enterprise.com")
 37          self.assertListKeyEqual(
 38              g.get_user().get_repos(),
 39              lambda r: r.name,
 40              [
 41                  "TestPyGithub",
 42                  "django",
 43                  "PyGithub",
 44                  "developer.github.com",
 45                  "acme-public-website",
 46                  "C4Planner",
 47                  "Hacking",
 48                  "vincent-jacques.net",
 49                  "Contests",
 50                  "Candidates",
 51                  "Tests",
 52                  "DrawTurksHead",
 53                  "DrawSyntax",
 54                  "QuadProgMm",
 55                  "Boost.HierarchicalEnum",
 56                  "ViDE",
 57              ],
 58          )
 59  
 60      def testHttp(self):
 61          g = github.Github(auth=self.login, base_url="http://my.enterprise.com")
 62          self.assertListKeyEqual(
 63              g.get_user().get_repos(),
 64              lambda r: r.name,
 65              [
 66                  "TestPyGithub",
 67                  "django",
 68                  "PyGithub",
 69                  "developer.github.com",
 70                  "acme-public-website",
 71                  "C4Planner",
 72                  "Hacking",
 73                  "vincent-jacques.net",
 74                  "Contests",
 75                  "Candidates",
 76                  "Tests",
 77                  "DrawTurksHead",
 78                  "DrawSyntax",
 79                  "QuadProgMm",
 80                  "Boost.HierarchicalEnum",
 81                  "ViDE",
 82              ],
 83          )
 84  
 85      def testUnknownUrlScheme(self):
 86          with self.assertRaises(AssertionError) as raisedexp:
 87              github.Github(auth=self.login, base_url="foobar://my.enterprise.com")
 88          self.assertEqual(raisedexp.exception.args[0], "Unknown URL scheme")
 89  
 90      def testLongUrl(self):
 91          g = github.Github(auth=self.login, base_url="http://my.enterprise.com/path/to/github")
 92          repos = g.get_user().get_repos()
 93          self.assertListKeyEqual(
 94              repos,
 95              lambda r: r.name,
 96              [
 97                  "TestPyGithub",
 98                  "django",
 99                  "PyGithub",
100                  "developer.github.com",
101                  "acme-public-website",
102                  "C4Planner",
103                  "Hacking",
104                  "vincent-jacques.net",
105                  "Contests",
106                  "Candidates",
107                  "Tests",
108                  "DrawTurksHead",
109                  "DrawSyntax",
110                  "QuadProgMm",
111                  "Boost.HierarchicalEnum",
112                  "ViDE",
113              ],
114          )
115          self.assertEqual(repos[0].owner.name, "Vincent Jacques")
116  
117      def testSpecificPort(self):
118          g = github.Github(auth=self.login, base_url="http://my.enterprise.com:8080")
119          self.assertListKeyEqual(
120              g.get_user().get_repos(),
121              lambda r: r.name,
122              [
123                  "TestPyGithub",
124                  "django",
125                  "PyGithub",
126                  "developer.github.com",
127                  "acme-public-website",
128                  "C4Planner",
129                  "Hacking",
130                  "vincent-jacques.net",
131                  "Contests",
132                  "Candidates",
133                  "Tests",
134                  "DrawTurksHead",
135                  "DrawSyntax",
136                  "QuadProgMm",
137                  "Boost.HierarchicalEnum",
138                  "ViDE",
139              ],
140          )