11import os
22import requests
3+ import json
34from tap_tester import connections , runner , LOGGER
45
56from base import TestGithubBase
@@ -19,33 +20,41 @@ def name():
1920 def generate_data (self ):
2021 # get the token
2122 token = os .getenv ("TAP_GITHUB_TOKEN" )
22- url = "https://api.github.com/user/starred/singer-io/test-repo"
23- headers = {"Authorization" : "Bearer {}" .format (token )}
24-
25- # generate a data for 'events' stream: 'watchEvent' ie. star the repo
26- requests .put (url = url , headers = headers )
27- # as per the Documentation: https://docs.github.com/en/developers/webhooks-and-events/events/github-event-types#watchevent
28- # the event is generated when we 'star' a repo, hence 'unstar' it as we can 'star' it next time
29- requests .delete (url = url , headers = headers )
23+ url = "https://api.github.com/repos/singer-io/test-repo/issues"
24+ headers = {"Authorization" : "Bearer {}" .format (token ),
25+ 'Accept' : 'application/vnd.github+json' }
26+ data = {
27+ "title" : "Test Issue" ,
28+ "body" : "This is a test issue for tap-github pagination test" }
29+ # create and close an issue to generate new event data
30+ response = requests .post (url = url , headers = headers , data = json .dumps (data ))
31+ if response .status_code == 201 :
32+ issue_number = response .json ()['number' ]
33+ else :
34+ print (f"Failed to create issue: { response .status_code } , { response .text } " )
35+
36+ delete_url = f'https://api.github.com/repos/singer-io/test-repo/issues/{ issue_number } '
37+ delete_data = {'state' : 'closed' }
38+ requests .patch (url = delete_url , headers = headers , data = json .dumps (delete_data ))
3039
3140 def test_run (self ):
3241 # generate data for 'events' stream
3342 self .generate_data ()
3443
35- date_1 = '2023 -04-01T00:00:00Z'
36- date_2 = '2024 -10-08T00:00:00Z'
44+ date_1 = '2020 -04-01T00:00:00Z'
45+ date_2 = '2021 -10-08T00:00:00Z'
3746 expected_stream_1 = {'commits' }
3847 self .run_test (date_1 , date_2 , expected_stream_1 )
3948
40- date_2 = '2024 -07-13T00:00:00Z'
49+ date_2 = '2022 -07-13T00:00:00Z'
4150 expected_stream_2 = {'issue_milestones' }
4251 self .run_test (date_1 , date_2 , expected_stream_2 )
4352
44- date_2 = '2024 -05-06T00:00:00Z'
53+ date_2 = '2022 -05-06T00:00:00Z'
4554 expected_stream_3 = {'pr_commits' , 'review_comments' , 'reviews' }
4655 self .run_test (date_1 , date_2 , expected_stream_3 )
4756
48- date_2 = '2024 -01-27T00:00:00Z'
57+ date_2 = '2022 -01-27T00:00:00Z'
4958 expected_stream_4 = self .expected_streams ().difference (
5059 expected_stream_1 ,
5160 expected_stream_2 ,
@@ -58,10 +67,10 @@ def test_run(self):
5867 # `issues` doesn't have enough data in this range, so we skip it too
5968 self .run_test (date_1 , date_2 , expected_stream_4 )
6069
61- date_3 = '2024 -01-27T00:00:00Z'
70+ date_3 = '2023 -01-27T00:00:00Z'
6271 self .run_test (date_1 , date_3 , {"issues" })
6372
64- date_4 = '2024 -01-01T00:00:00Z'
73+ date_4 = '2023 -01-01T00:00:00Z'
6574 self .run_test (date_1 , date_4 , {'pull_requests' })
6675
6776 # As per the Documentation: https://docs.github.com/en/rest/reference/activity#events
0 commit comments