Skip to content

Commit

Permalink
Tests for Autolink API
Browse files Browse the repository at this point in the history
  • Loading branch information
theCapypara committed Oct 28, 2022
1 parent 8b41655 commit 2d66590
Show file tree
Hide file tree
Showing 6 changed files with 120 additions and 0 deletions.
37 changes: 37 additions & 0 deletions tests/Autolink.py
@@ -0,0 +1,37 @@
############################ Copyrights and license ############################
# #
# Copyright 2021 Marco Köpcke <hello@parakoopa.de> #
# #
# This file is part of PyGithub. #
# http://pygithub.readthedocs.io/ #
# #
# PyGithub is free software: you can redistribute it and/or modify it under #
# the terms of the GNU Lesser General Public License as published by the Free #
# Software Foundation, either version 3 of the License, or (at your option) #
# any later version. #
# #
# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY #
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS #
# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more #
# details. #
# #
# You should have received a copy of the GNU Lesser General Public License #
# along with PyGithub. If not, see <http://www.gnu.org/licenses/>. #
# #
################################################################################
from tests import Framework


class Autolink(Framework.TestCase):
def setUp(self):
super().setUp()
# When recording test, be sure to create a autolink for yourself on
# Github and update it here.
links = [x for x in self.g.get_user("theCapypara").get_repo("PyGithub").get_autolinks() if x.id == 209614]
self.assertEqual(1, len(links), "There must be exactly one autolink with the ID 209614.")
self.link = links[0]

def testAttributes(self):
self.assertEqual(self.link.id, 209614)
self.assertEqual(self.link.key_prefix, "DUMMY-")
self.assertEqual(self.link.url_template, "https://github.com/PyGithub/PyGithub/issues/<num>")
33 changes: 33 additions & 0 deletions tests/ReplayData/Autolink.setUp.txt

Large diffs are not rendered by default.

11 changes: 11 additions & 0 deletions tests/ReplayData/Repository.testCreateAutolink.txt
@@ -0,0 +1,11 @@
https
POST
api.github.com
None
/repos/jacquev6/PyGithub/autolinks
{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'}
{"key_prefix": "DUMMY-", "url_template": "https://github.com/PyGithub/PyGithub/issues/<num>"}
201
[('Server', 'GitHub.com'), ('Date', 'Tue, 02 Nov 2021 12:57:55 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '102'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"f90a1a598b996d3d1967b96c218459edde984e62d452623ff4aba2530a256b85"'), ('X-OAuth-Scopes', 'admin:repo_hook, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2021-11-09 12:40:40 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4947'), ('X-RateLimit-Reset', '1635859633'), ('X-RateLimit-Used', '53'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-GitHub-Request-Id', 'C6E6:34FE:190079B:197523C:618135D3')]
{"id":209614,"key_prefix":"DUMMY-","url_template":"https://github.com/PyGithub/PyGithub/issues/<num>"}

11 changes: 11 additions & 0 deletions tests/ReplayData/Repository.testGetAutolinks.txt
@@ -0,0 +1,11 @@
https
GET
api.github.com
None
/repos/jacquev6/PyGithub/autolinks
{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}
None
200
[('Server', 'GitHub.com'), ('Date', 'Tue, 02 Nov 2021 13:01:39 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"4d453f5f31fb634e68e615083db0c61dc2d1925cd6f16586a81b24e2369872ba"'), ('X-OAuth-Scopes', 'admin:repo_hook, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2021-11-09 12:40:40 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4944'), ('X-RateLimit-Reset', '1635859633'), ('X-RateLimit-Used', '56'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'C11A:B2A9:62722:A8B2E:618136B3')]
[{"id":209614,"key_prefix":"DUMMY-","url_template":"https://github.com/PyGithub/PyGithub/issues/<num>"},{"id":209611,"key_prefix":"TEST-","url_template":"https://github.com/PyGithub/PyGithub/issues/<num>"}]

11 changes: 11 additions & 0 deletions tests/ReplayData/Repository.testRemoveAutolink.txt
@@ -0,0 +1,11 @@
https
DELETE
api.github.com
None
/repos/jacquev6/PyGithub/autolinks/209611
{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}
None
204
[('Server', 'GitHub.com'), ('Date', 'Tue, 02 Nov 2021 13:05:13 GMT'), ('X-OAuth-Scopes', 'admin:repo_hook, repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('github-authentication-token-expiration', '2021-11-09 12:40:40 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4941'), ('X-RateLimit-Reset', '1635859633'), ('X-RateLimit-Used', '59'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Vary', 'Accept-Encoding, Accept, X-Requested-With'), ('X-GitHub-Request-Id', 'C120:10BD6:34C209:39806B:61813789')]


17 changes: 17 additions & 0 deletions tests/Repository.py
Expand Up @@ -258,6 +258,10 @@ def testCreateGitRef(self):
"https://api.github.com/repos/jacquev6/PyGithub/git/refs/heads/BranchCreatedByPyGithub",
)

def testCreateAutolink(self):
key = self.repo.create_autolink('DUMMY-', 'https://github.com/PyGithub/PyGithub/issues/<num>')
self.assertEqual(key.id, 209614)

def testCreateGitBlob(self):
blob = self.repo.create_git_blob("Blob created by PyGithub", "latin1")
self.assertEqual(blob.sha, "5dd930f591cd5188e9ea7200e308ad355182a1d8")
Expand Down Expand Up @@ -478,6 +482,9 @@ def testGetPendingInvitations(self):
def testRemoveInvitation(self):
self.repo.remove_invitation(17285388)

def testRemoveAutolink(self):
self.repo.remove_autolink(209611)

def testCollaboratorPermissionNoPushAccess(self):
with self.assertRaises(github.GithubException) as raisedexp:
self.repo.get_collaborator_permission("lyloa")
Expand Down Expand Up @@ -1170,6 +1177,16 @@ def testGetPullsWithArguments(self):
self.repo.get_pulls("closed"), lambda p: p.id, [1448168, 1436310, 1436215]
)

def testGetAutolinks(self):
self.assertListKeyEqual(
self.repo.get_autolinks(),
lambda i: i.id,
[
209614,
209611,
],
)

def testLegacySearchIssues(self):
issues = self.repo.legacy_search_issues("open", "search")
self.assertListKeyEqual(issues, lambda i: i.title, ["Support new Search API"])
Expand Down

0 comments on commit 2d66590

Please sign in to comment.