Commit Graph
112 Commits
Author SHA1 Message Date
Colby Gallup 048c8a1df2 Add support for deployment statuses (#1588)
* Added DeploymentStatus class
* Added stubs for DeploymentStatus class
* Fixed headers for DeploymentStatus.py
* Added get/list/create deployment status methods
* Added DeploymentStatus repr
* Added attribute check tests for DeploymentStatus
* Added "create deployment status" test
* Added test for Deployment.get_statuses()
* Added Deployment.get_status() method

Fixes #1586
2020-07-02 12:27:05 +10:00
Daniel Haas 079f75a726 Adds the 'twitter_username' attribute to NamedUser. (#1585)
* Adds the 'twitter_username' attribute to NamedUser.
2020-06-27 14:43:48 +10:00
Steve Kowalik 4fb1d23f4d Add support for Workflow Runs (#1583)
To build on the previous work supporting querying Workflows for GitHub
Actions, add a class and relevant methods to support querying runs of a
workflow.
2020-06-26 20:47:42 +10:00
Steve Kowalik 925764add5 Clean up tests for GitReleaseAsset (#1546)
The test class for GitReleaseAsset did not match the filename, was also
the only class to include docstrings, and furthermore, repeated a lot of
fetches in the replay data.
2020-06-03 20:51:41 +10:00
Steve Kowalik 69bfc32511 Check all arguments of NamedUser.get_repos() (#1532)
The two unit tests for NamedUser.get_repos() did not check all
arguments, and this was the only method in the file that wasn't
completly covered. Re-record the replay data while passing all arguments
to the method.
2020-05-25 11:33:54 +10:00
Steve Kowalik 19fc43abf6 PullRequestReview is not a completable object (#1528)
While chasing coverage failures, I discovered PullRequestReview's do not
send back a URL at all, which means firstly, the url property is not
required because it will always be None, and secondly, the object can
never be completed. I'm not certain why this change broke the test, but
it looked brittle, refactor it to be clearer.
2020-05-21 09:59:05 +10:00
Steve Kowalik 52ec366be4 Test more attributes (#1526)
To increase coverage, sprinkle in some asserts for attributes that were
not checked -- this uncovered a bug in Issue that two attributes were
not properly initialized to NotSet.
2020-05-21 09:58:50 +10:00
Steve Kowalik 291c46303d Drastically increase coverage by checking repr() (#1521)
A lot of our missing coverage is caused by not checking repr(), which is
trivial enough to test against -- do so, and also clean up existing repr
tests to look the same by calling repr(). Where it was trivial, add a
few assertions about missing attributes.
2020-05-19 11:54:07 +10:00
Steve Kowalik 53d58d2b07 Remove Repository.topics (#1505)
The topics attribute has been replaced by Repository.get_topics(). To
reduce user confusion, delete the attribute.

Fixes #1504
2020-05-15 10:49:15 +10:00
Steve Kowalik 8727003fc8 Correct Repository.get_workflows() (#1518)
The API endpoint Repository.get_workflows() calls returns data in a list
item, not directly, leading to some head scratching when calling it
against GitHub. Re-record the replay data.
2020-05-14 16:45:01 +10:00
Steve Kowalik 09a1d9e4e7 Filter FutureWarning for 2 test cases (#1510)
There are two test cases that explicitly test with client_id and
client_secret, which means pytest helpfully tells us about them after
the test run concludes. We don't need to see them every run until we
drop the arguments, so filter them out for now.
2020-05-11 09:56:38 +10:00
Florent Clarret a32a896599 feat(column): move, edit and delete project columns (#1497)
Add support to move, edit and delete project columns.
2020-05-05 15:50:28 +10:00
Steve Kowalik a1ed7c0e2d Add support for Workflows (#1496)
To start supporting GitHub Actions, add the first part of that,
Workflow, which encapsulates a workflow over the API, along with
two methods on Repository to query them.
2020-05-05 15:49:45 +10:00
Florent Clarret 63855409b9 feature: get the project column by id (#1466)
Add a method to fetch a project column by id.

Fixes #1057
2020-05-01 12:01:09 +10:00
Steve Kowalik 84bb69abff Drop use of shadow-cat for draft PRs (#1469) 2020-04-26 10:05:20 +08:00
Florent Clarret e0997b438e Add and handle the maintainer_can_modify attribute in PullRequest (#1465) 2020-04-26 10:04:12 +08:00
Nikolay Edigaryev 5cf9950b25 Ability to retrieve public events (#1481) 2020-04-26 10:03:54 +08:00
Florent Clarret d3bc6a5cd2 List matching references (#1471) 2020-04-26 10:03:36 +08:00
Steve Kowalik 38b34db56e AuthenticatedUser.get_organization_membership() should be str (#1473) 2020-04-26 10:02:34 +08:00
Chris de Graaf edcbdfdaf9 Add create_repository_dispatch (#1449) 2020-04-26 09:59:34 +08:00
ton-katsu 3ab97d6145 Add some attributes. (#1468)
* Add some attributes to Repository and Organization

* Format.

* small fix

* Add some test.
2020-04-21 11:49:32 +10:00
chloe jungah kim bafc4efc76 fix param name of projectcard's move function (#1451)
* fix param name of projectcard's move function

* fix test failure
2020-04-16 21:38:19 +10:00
Steve Kowalik 0ebdbb2675 Export IncompletableObject in the github namespace (#1450)
When IncompletableObject was added, it was only added to
GithubException, and not imported directly into the github namespace
like other exceptions. Correct that, and clean up the resultant now
unrequired import.
2020-04-15 10:52:13 +10:00
Liuyang Wan af6cab5520 Reuse pre-commit checks in CI (#1442)
* Use pre-commit checks in CI

* Fix all issues flagged by mypy

* Update travis.yml to reflect testenv changes

* Update docs to use tox lint
2020-03-23 08:45:54 +08:00
Alice GIRARDandLiuyang Wan 91433fe925 Type stubs for mypy (#1231)
* First attempt at stubs

* fix AuthenticatedUser.piy

* fix PullRequest.piy

* fix Authorization.piy

* fix Branch.piy

* fix Clones.piy

* fix Commit.piy

* fix CommitCombinedStatus.piy

* fix CommitComment.piy

* fix CommitStatus.piy

* fix ContentFile.piy

* fix Download.piy

* fix Event.piy

* fix File.piy

* fix Gist.piy

* fix GistComment.piy

* fix GistFile.piy

* fix GitAuthor.piy

* fix GitBlob.piy

* fix GitCommit.piy

* fix GitRef.piy

* fix GitRelease.piy

* renamed stubs into pyi files

* fix Notification

* fix Repository

* fix GitReleaseAsset

* fix GitTag

* fix GitTree

* fix GitTreeElement

* fix GithubException

* fix GithubObject

* fix GitignoreTemplate

* fix HookDescription

* fix HookResponse

* fix InputGitAuthor

* fix Installation

* fix InstallationAuthorization

* fix Invitation

* fix Issue

* fix IssueComment

* Fix random issues found while testing

* fix IssuePullRequest

* fix Label

* fix License

* fix Migration

* fix Milestone

* fix NamedUser

* fix NotificationSubject

* fix Organization

* fix PaginatedList

* fix Path

* fix Permissions

* fix Plan

* fix Project

* fix ProjectCard

* fix ProjectColumn

* fix PullRequestComment

* fix PullRequestMergeStatus

* fix PullRequestPart

* fix PullRequestReview

* fix Rate

* fix RateLimit

* fix Reaction

* fix Referrer

* fix RepositoryKey

* fix RequiredPullRequestReviews

* fix RequiredStatusChecks

* fix SourceImport

* fix Stargazer

* fix StatsCodeFrequency

* fix StatsCommitActivity

* fix StatsContributor

* fix Tag

* fix Team

* fix Topic

* fix UserKey

* fix MainClass

* fix Requester

* added stubs for View

* added stubs for Membership

* various syntax errors

* silence mypy noise

* keeping track of recent changes

* black + isort

Co-authored-by: Liuyang Wan <lwan@zendesk.com>
2020-03-22 19:33:23 +08:00
Steve Kowalik 1440297699 Split up Repository.testStatistics (#1440)
The testStatistics testcase takes over ten seconds to run on my laptop,
and it does an awful lot of work. Split up the disparate parts into
seperate testcases.
2020-03-20 18:41:40 +11:00
Michał Górny d2e9bd69dd Use pytest to parametrize tests (#1438)
* Use pytest to parametrize tests

Use built-in pytest test case parametrization support over external
'parameterize' package.  The latter is not well maintained, and has
known Python 3.8 failures unsolved since November 2019.

Since pytest fixtures are incompatible with unittest-style tests,
rewrite the relevant test case to use pytest-style asserts.  This also
makes the resulting code simpler, as we no longer have to pass TestCase
to the helper classes.

* Refactor input cleaning in ReplayingConnection.__readNextRequest()
2020-03-18 18:44:40 +11:00
Anuj Bansal 801ea38551 Add create project method and tests 2020-03-15 22:12:44 +05:30
Anuj Bansal f11f739505 Add support to edit and delete a project (#1434)
* Add methods to edit and delete a project

* Update tests for edit project
2020-03-15 12:57:12 +11:00
Danilo Martins 0c55381b38 Add method for fetching pull requests associated with a commit (#1433)
* Add method for fetching pull requests associated with a commit

* Reference PR number instead of id on commit.get_pulls 

Fixes #1414
2020-03-13 11:07:19 +11:00
Adrian Bridgett 219bde53d3 Add "get_repo_permission" to Team class (#1416)
* Add "get_repo_permission" to Team class

* second attempt:
- accept repo name or repo object
- return github.Permissions.Permissions object
- try and following CONTRIBUTING.md better

* add missing import to tests
patch replay data with permission data

* assert a specific permission rather than just the type

Fixes #1415
2020-03-13 11:01:16 +11:00
Anuj Bansal e44d11d565 Add list projects support, update tests (#1431) 2020-03-11 12:40:25 +11:00
Steve Kowalik b1c35499f4 Don't transform completely in PullRequest.*assignees (#1428)
The two methods PullRequest.add_to_assignees() and
PullRequest.remove_from_assignees() are special, in that they call
POST/DELETE on the issue_url of the pull request, and then transform all
their attributes based on what was returned. This has a number of
effects, none of them any good for calling new methods on the same pull
request object. Instead, only pull out the changed attribute and use
that. Also change the returned URL for the POST call in the replay data
to match what GitHub returns.

Fixes #1406
2020-03-10 12:39:23 +11:00
Anuj Bansal bf62f75224 Add create_project support, add tests (#1429)
Add AuthenicatedUser.create_project()
2020-03-10 12:34:57 +11:00
MarcoFalke bd28524853 Add draft attribute, update test 2020-03-09 12:20:12 +05:30
Steve Kowalik 3d93ee1ce5 Add Deployments API (#1424)
Add a new class, Deployment to describe a deployment performed utilising
GitHub. Add three methods onto Repository to list them and create them.

Fixes #1117
2020-03-08 16:27:59 +11:00
Jody McIntyre 425280cee7 Add support for editing project cards (#1418)
* Add edit() to ProjectCard

* Add unit tests of ProjectCard.edit
2020-03-08 14:24:35 +11:00
Anuj Bansal bd0211eb73 Add draft flag parameter, update tests 2020-03-07 11:42:41 +05:30
Steve Kowalik c822dd1ce0 Switch to using pytest (#1423)
Due to the recent deprecation of setup.py test, we should move with the
times, and switch to a non-deprecated test runner.

Add configuration for pytest, and switch tox to using it. Remove
AllTests, since it is no longer required to locate test classes, and
rewrite tests/__main__.py as a pytest conftest plugin.

Also drop the test function from manage.sh, tox does a much better job.
2020-03-07 12:43:49 +11:00
Steve Kowalik f2939eb731 Fix GitMembership with a hammer (#1420)
While investigating pytest, I discovered this test class was not
imported in AllTests, so it never ran, and worse, it would always fail
because it would get a NamedUser, and not an AuthenticatedUser. Add it
in it, and hit it with a hammer until it passes.
2020-03-06 22:54:42 +11:00
Steve Kowalik 1c82573d6f Add support to reply to a Pull request comment (#1374)
* Add create_review_comment_reply to PullRequest

* Add unit tests

* Add docs for comment_id param for create_review_comment_reply

* Update tests

* Fix pep8 styling issue

* Fix styling
2020-03-06 11:13:12 +11:00
Steve Kowalik 806130e93d PullRequest.update_branch(): allow expected_head_sha to be empty (#1412)
* PullRequest.update_branch(): allow expected_head_sha to be empty

* PullRequest.testUpdateBranch(): test also with empty expected_head_sha

* Updated replay data for PullRequest.testUpdateBranch

* tox formatted changes
2020-03-06 11:00:40 +11:00
Steve Kowalik aeb27b788c Implement ProjectCard.delete() (#1417)
To work towards implementing more of the API surrounding Project Cards,
add a delete method. With thanks to Christopher Mitchell, Ph.D.

Fixes #1409
2020-03-05 15:35:04 +11:00
Steve Kowalik dd31a70659 Silence most ResourceWarnings (#1393)
A few test classes were failing to call tearDown() of the superclass,
which meant the file descriptors of their replydata files were leaking.
Make sure to call it, and switch every other callsite of superclasses by
name to using argument-less super().

Revert an AllTests change that snuck in during release.
2020-02-12 15:05:32 +11:00
Wan Liuyang f8bf46f82b black 2020-02-12 02:01:58 +08:00
Steve Kowalik d6dee0164a Assert more attributes in Membership (#1391)
To increase code coverage, assert more attributes in Membership.
2020-02-11 16:33:04 +11:00
Steve Kowalik 6e3ceb193b Assert on changed Repository attributes (#1390)
To increase code coverage, assert on more attributes of Repository
during the testEditWithAllArguments testcase.
2020-02-11 14:53:15 +11:00
Steve KowalikandJonathan Leitschuh 0829af815f Add reset to the repr for Rate (#1389)
Add the reset attribute to the repr for Rate, and add a test for good
measure.

Co-Authored-By: Jonathan Leitschuh <jonathan.leitschuh@gmail.com>
2020-02-11 14:17:52 +11:00
Steve Kowalik e5ce4912f5 Publish version 1.46 2020-02-11 12:33:45 +11:00
Glenn McDonald 9564cd4de7 Add repo edit support for delete_branch_on_merge (#1381)
* Add repo edit support for delete_branch_on_merge

* Assert delete_branch_on_merge
2020-02-11 12:24:33 +11:00