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.
This commit is contained in:
Steve Kowalik
2020-03-20 18:41:40 +11:00
committed by GitHub
parent d2e9bd69dd
commit 1440297699
6 changed files with 89 additions and 89 deletions
@@ -0,0 +1,21 @@
https
GET
api.github.com
None
/repos/jacquev6/PyGithub/stats/code_frequency
{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}
None
202
[('status', '202 Accepted'), ('x-ratelimit-remaining', '4963'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '4C79374B:3448:429A284:528030EA'), ('content-length', '2'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('access-control-allow-credentials', 'true'), ('date', 'Mon, 11 Nov 2013 01:20:42 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1384134844')]
{}
https
GET
api.github.com
None
/repos/jacquev6/PyGithub/stats/code_frequency
{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}
None
200
[('status', '200 OK'), ('x-ratelimit-remaining', '4977'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '4C79374B:7848:2D63900:52803017'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '1844'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('etag', '"2a409951d08a22751ef211c1db5b468b"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Mon, 11 Nov 2013 01:17:11 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1384134844')]
[[1329004800,3853,-2098],[1329609600,3005,-2120],[1330214400,2969,-1502],[1330819200,252,-26],[1331424000,4823,-4569],[1332028800,1846,-56],[1332633600,130,-57],[1333238400,0,0],[1333843200,0,0],[1334448000,31,-11],[1335052800,0,0],[1335657600,23632,-7111],[1336262400,29431,-30239],[1336867200,1280,-397],[1337472000,3016,-2064],[1338076800,33188,-30815],[1338681600,2531,-545],[1339286400,6,0],[1339891200,18,-8],[1340496000,721,-272],[1341100800,0,0],[1341705600,353,-217],[1342310400,0,0],[1342915200,725,-609],[1343520000,423,-423],[1344124800,0,0],[1344729600,0,0],[1345334400,63,-16],[1345939200,0,0],[1346544000,2968,-162],[1347148800,1580,-16319],[1347753600,11688,-11278],[1348358400,248,-189],[1348963200,3,-3],[1349568000,6,-11],[1350172800,0,0],[1350777600,0,0],[1351382400,599,-230],[1351987200,14,-3],[1352592000,1,-1],[1353196800,1788,-1765],[1353801600,1251,-1221],[1354406400,0,0],[1355011200,0,0],[1355616000,146,-7],[1356220800,3557,-2799],[1356825600,0,0],[1357430400,0,0],[1358035200,0,0],[1358640000,0,0],[1359244800,83,-12],[1359849600,603,-292],[1360454400,327,-240],[1361059200,147,-74],[1361664000,0,0],[1362268800,52,-7],[1362873600,877,-444],[1363478400,5290,-1029],[1364083200,563,-287],[1364688000,0,0],[1365292800,68,-4],[1365897600,0,0],[1366502400,847,-758],[1367107200,0,0],[1367712000,0,0],[1368316800,433,-32],[1368921600,0,0],[1369526400,42,-12],[1370131200,17,-17],[1370736000,0,0],[1371340800,215,-5],[1371945600,17,-1],[1372550400,0,0],[1373155200,3062,-1701],[1373760000,765,-1178],[1374364800,0,0],[1374969600,127,-12],[1375574400,51,-4],[1376179200,0,0],[1376784000,1982,-1166],[1377388800,0,0],[1377993600,3045,-659],[1378598400,2183,-2373],[1379203200,0,0],[1379808000,0,0],[1380412800,0,0],[1381017600,0,0],[1381622400,0,0],[1382227200,158,-225],[1382832000,0,0],[1383436800,0,0],[1384041600,0,0]]
@@ -0,0 +1,21 @@
https
GET
api.github.com
None
/repos/jacquev6/PyGithub/stats/commit_activity
{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}
None
202
[('status', '202 Accepted'), ('x-ratelimit-remaining', '4964'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '4C79374B:3448:429A229:528030EA'), ('content-length', '2'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('access-control-allow-credentials', 'true'), ('date', 'Mon, 11 Nov 2013 01:20:42 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1384134844')]
{}
https
GET
api.github.com
None
/repos/jacquev6/PyGithub/stats/commit_activity
{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}
None
200
[('status', '200 OK'), ('x-ratelimit-remaining', '4978'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '4C79374B:7847:2199F7C:52803017'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '2775'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('etag', '"988e31b23490922f86392de76ca453b9"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Mon, 11 Nov 2013 01:17:11 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1384134844')]
[{"days":[0,7,3,9,7,3,0],"total":29,"week":1353196800},{"days":[1,5,1,1,0,0,0],"total":8,"week":1353801600},{"days":[0,0,0,0,0,0,0],"total":0,"week":1354406400},{"days":[0,0,0,0,0,0,0],"total":0,"week":1355011200},{"days":[0,0,0,1,0,5,0],"total":6,"week":1355616000},{"days":[1,0,8,0,0,0,6],"total":15,"week":1356220800},{"days":[0,0,0,0,0,0,0],"total":0,"week":1356825600},{"days":[0,0,0,0,0,0,0],"total":0,"week":1357430400},{"days":[0,0,0,0,0,0,0],"total":0,"week":1358035200},{"days":[0,0,0,0,0,0,0],"total":0,"week":1358640000},{"days":[1,0,6,0,0,0,0],"total":7,"week":1359244800},{"days":[3,0,7,0,3,2,2],"total":17,"week":1359849600},{"days":[0,0,1,0,0,0,4],"total":5,"week":1360454400},{"days":[2,0,0,6,0,0,0],"total":8,"week":1361059200},{"days":[0,0,0,0,0,0,0],"total":0,"week":1361664000},{"days":[3,0,0,0,0,0,0],"total":3,"week":1362268800},{"days":[0,1,2,0,6,0,1],"total":10,"week":1362873600},{"days":[0,0,7,0,7,3,1],"total":18,"week":1363478400},{"days":[0,0,0,0,9,6,0],"total":15,"week":1364083200},{"days":[0,0,0,0,0,0,0],"total":0,"week":1364688000},{"days":[0,2,0,0,0,0,0],"total":2,"week":1365292800},{"days":[0,0,0,0,0,0,0],"total":0,"week":1365897600},{"days":[0,3,0,3,10,0,0],"total":16,"week":1366502400},{"days":[0,0,0,0,0,0,0],"total":0,"week":1367107200},{"days":[0,0,0,0,0,0,0],"total":0,"week":1367712000},{"days":[0,0,0,0,0,5,1],"total":6,"week":1368316800},{"days":[0,0,0,0,0,0,0],"total":0,"week":1368921600},{"days":[0,1,0,0,0,2,3],"total":6,"week":1369526400},{"days":[10,0,5,0,0,0,0],"total":15,"week":1370131200},{"days":[0,0,0,0,0,0,0],"total":0,"week":1370736000},{"days":[0,1,4,1,0,0,0],"total":6,"week":1371340800},{"days":[0,0,0,0,0,0,1],"total":1,"week":1371945600},{"days":[0,0,0,0,0,0,0],"total":0,"week":1372550400},{"days":[6,0,1,0,0,0,3],"total":10,"week":1373155200},{"days":[3,0,5,1,0,0,1],"total":10,"week":1373760000},{"days":[0,0,0,0,0,0,0],"total":0,"week":1374364800},{"days":[0,0,0,0,0,3,1],"total":4,"week":1374969600},{"days":[0,0,1,1,0,0,0],"total":2,"week":1375574400},{"days":[0,0,0,0,0,0,0],"total":0,"week":1376179200},{"days":[0,8,2,76,7,10,0],"total":103,"week":1376784000},{"days":[0,0,0,0,0,0,0],"total":0,"week":1377388800},{"days":[0,0,0,1,6,11,0],"total":18,"week":1377993600},{"days":[1,0,0,3,4,0,0],"total":8,"week":1378598400},{"days":[0,0,0,0,0,0,0],"total":0,"week":1379203200},{"days":[0,0,0,0,0,0,0],"total":0,"week":1379808000},{"days":[0,0,0,0,0,0,0],"total":0,"week":1380412800},{"days":[0,0,0,0,0,0,0],"total":0,"week":1381017600},{"days":[0,0,0,0,0,0,0],"total":0,"week":1381622400},{"days":[0,8,0,0,0,0,0],"total":8,"week":1382227200},{"days":[0,0,0,0,0,0,0],"total":0,"week":1382832000},{"days":[0,0,0,0,0,0,0],"total":0,"week":1383436800},{"days":[0,0,0,0,0,0,0],"total":0,"week":1384041600}]
@@ -0,0 +1,21 @@
https
GET
api.github.com
None
/repos/jacquev6/PyGithub/stats/participation
{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}
None
202
[('status', '202 Accepted'), ('x-ratelimit-remaining', '4962'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '4C79374B:3447:29BC88A:528030EB'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '260'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('etag', '"a896655765faac08fb15ce0da319416c"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Mon, 11 Nov 2013 01:20:43 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1384134844')]
{}
https
GET
api.github.com
None
/repos/jacquev6/PyGithub/stats/participation
{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}
None
200
[('status', '200 OK'), ('x-ratelimit-remaining', '4976'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '4C79374B:7844:5812FB:52803018'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '260'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('etag', '"a896655765faac08fb15ce0da319416c"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Mon, 11 Nov 2013 01:17:12 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1384134844')]
{"all":[4,36,8,0,0,10,20,0,0,0,0,11,20,6,9,0,4,14,21,16,0,3,0,20,0,0,8,1,9,16,1,15,1,0,12,12,0,4,6,15,116,20,20,11,0,0,0,0,0,10,0,0],"owner":[1,36,8,0,0,8,18,0,0,0,0,7,20,6,9,0,4,11,20,16,0,3,0,16,0,0,6,1,4,0,1,6,0,0,12,10,0,0,0,1,44,0,20,10,0,0,0,0,0,10,0,0]}
@@ -0,0 +1,21 @@
https
GET
api.github.com
None
/repos/jacquev6/PyGithub/stats/punch_card
{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}
None
202
[('status', '202 Accepted'), ('x-ratelimit-remaining', '4961'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '4C79374B:3448:429A33C:528030EB'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '1490'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('etag', '"41cbe788b8174e5a98906512e68a825d"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Mon, 11 Nov 2013 01:20:43 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1384134844')]
{}
https
GET
api.github.com
None
/repos/jacquev6/PyGithub/stats/punch_card
{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}
None
200
[('status', '200 OK'), ('x-ratelimit-remaining', '4975'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '4C79374B:7848:2D639AE:52803018'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '1490'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('etag', '"5174eef5c5760209664cb13e11e49b09"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Mon, 11 Nov 2013 01:17:12 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1384134844')]
[[0,0,0],[0,1,0],[0,2,1],[0,3,0],[0,4,0],[0,5,0],[0,6,3],[0,7,1],[0,8,8],[0,9,11],[0,10,18],[0,11,10],[0,12,13],[0,13,13],[0,14,12],[0,15,12],[0,16,6],[0,17,18],[0,18,12],[0,19,16],[0,20,17],[0,21,8],[0,22,8],[0,23,0],[1,0,1],[1,1,0],[1,2,0],[1,3,0],[1,4,0],[1,5,0],[1,6,0],[1,7,3],[1,8,5],[1,9,1],[1,10,0],[1,11,1],[1,12,0],[1,13,5],[1,14,6],[1,15,1],[1,16,0],[1,17,5],[1,18,5],[1,19,12],[1,20,10],[1,21,13],[1,22,15],[1,23,3],[2,0,0],[2,1,0],[2,2,0],[2,3,0],[2,4,0],[2,5,0],[2,6,0],[2,7,4],[2,8,5],[2,9,3],[2,10,9],[2,11,3],[2,12,1],[2,13,5],[2,14,1],[2,15,6],[2,16,0],[2,17,4],[2,18,13],[2,19,26],[2,20,16],[2,21,13],[2,22,13],[2,23,12],[3,0,2],[3,1,1],[3,2,0],[3,3,0],[3,4,0],[3,5,0],[3,6,2],[3,7,2],[3,8,1],[3,9,2],[3,10,0],[3,11,1],[3,12,5],[3,13,17],[3,14,11],[3,15,15],[3,16,11],[3,17,10],[3,18,29],[3,19,13],[3,20,17],[3,21,19],[3,22,5],[3,23,10],[4,0,1],[4,1,0],[4,2,0],[4,3,0],[4,4,0],[4,5,0],[4,6,0],[4,7,5],[4,8,2],[4,9,5],[4,10,7],[4,11,7],[4,12,7],[4,13,2],[4,14,1],[4,15,1],[4,16,0],[4,17,6],[4,18,19],[4,19,24],[4,20,16],[4,21,27],[4,22,21],[4,23,8],[5,0,2],[5,1,0],[5,2,0],[5,3,0],[5,4,0],[5,5,0],[5,6,0],[5,7,4],[5,8,3],[5,9,3],[5,10,2],[5,11,13],[5,12,7],[5,13,11],[5,14,16],[5,15,3],[5,16,3],[5,17,7],[5,18,13],[5,19,8],[5,20,6],[5,21,11],[5,22,3],[5,23,2],[6,0,0],[6,1,3],[6,2,0],[6,3,1],[6,4,7],[6,5,2],[6,6,0],[6,7,14],[6,8,23],[6,9,10],[6,10,18],[6,11,14],[6,12,7],[6,13,17],[6,14,7],[6,15,9],[6,16,4],[6,17,1],[6,18,2],[6,19,6],[6,20,0],[6,21,4],[6,22,1],[6,23,3]]
+5 -1
View File
@@ -1467,7 +1467,7 @@ class Repository(Framework.TestCase):
def testUnsubscribePubSubHubbub(self):
self.repo.unsubscribe_from_hub("push", "http://requestb.in/1bc1sc61")
def testStatistics(self):
def testStatisticsContributors(self):
stats = self.repo.get_stats_contributors()
seenJacquev6 = False
for s in stats:
@@ -1483,16 +1483,19 @@ class Repository(Framework.TestCase):
self.assertEqual(s.weeks[0].w, datetime.datetime(2012, 2, 12))
self.assertTrue(seenJacquev6)
def testStatisticsCommitActivity(self):
stats = self.repo.get_stats_commit_activity()
self.assertEqual(stats[0].week, datetime.datetime(2012, 11, 18, 0, 0))
self.assertEqual(stats[0].total, 29)
self.assertEqual(stats[0].days, [0, 7, 3, 9, 7, 3, 0])
def testStatisticsCodeFrequency(self):
stats = self.repo.get_stats_code_frequency()
self.assertEqual(stats[0].week, datetime.datetime(2012, 2, 12, 0, 0))
self.assertEqual(stats[0].additions, 3853)
self.assertEqual(stats[0].deletions, -2098)
def testStatisticsParticipation(self):
stats = self.repo.get_stats_participation()
self.assertEqual(
stats.owner,
@@ -1609,6 +1612,7 @@ class Repository(Framework.TestCase):
],
)
def testStatisticsPunchCard(self):
stats = self.repo.get_stats_punch_card()
self.assertEqual(stats.get(4, 12), 7)
self.assertEqual(stats.get(6, 18), 2)