8000 Merge pull request #467 from itsmemattchung/develop · pythonthings/github3.py@9870032 · GitHub
[go: up one dir, main page]

Skip to content

Commit 9870032

Browse files
committed
Merge pull request sigmavirus24#467 from itsmemattchung/develop
Migrate TestTree from tests/test_git.py to tests/integration + tests/unit
2 parents e09795f + 25a232f commit 9870032

File tree

5 files changed

+75
-25
lines changed

5 files changed

+75
-25
lines changed

tests/cassettes/Tree_recurse.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"http_interactions": [{"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept-Encoding": "gzip, deflate", "Accept": "application/vnd.github.v3.full+json", "User-Agent": "github3.py/1.0.0a2", "Accept-Charset": "utf-8", "Connection": "keep-alive", "Content-Type": "application/json"}, "method": "GET", "uri": "https://api.github.com/repos/sigmavirus24/github3.py"}, "response": {"body": {"string": "", "base64_string": "H4sIAAAAAAAAA62YT4/yNhDGvwrKtSwmsJTdSNXbntre3sPbSy/ISUxibRJHtgNio/3ufWznL1VhWfeCIHh+fjy 10000 ecWbcBjwNou0+XO/DcBlUtGRBFGRc5028XdWXYBkcm6I4dH8onpX0xGWjNs9kNkqcKyaDqA0KkfEKjOlQUMw0m+f1y3a9DOiJaioPjSwwLte6VhEh7qFaOWqjmExEpVmlV4koSUOc8bfTL1vQMtkxDDbAgytWzTuOMwZMkStBuS6LKwluamtyNfgoikKcQbkWfW8iMlgaT1oKr7IvUmDZEqFzBt9hSR/GEVzpx0VZqxYbqPSBp4ajsCGSpQ8L6+wgy+z/R0skq4UFNrFKJK81F9XjAmfWoAmZ0Yq/06/RYK0AMdIel2KtYM1OiMXHzZ1ZS2rJTzS5GNdIljB+grO/iLyyB1FfapO2fyEojOu5ZgealiYNj7RQ7GMZ2Ok1BtkHS2TdZ6N/nuYpG3YVE36/6FxUi4LHksrL4ijkgiNn5ZEmiNXFGcfIAuG6+J3rP5p48dv3P08mezHubVByM3Ot82fJOJdjSHf25CYC6QkAJL2xixfH2LcEn10+JUh1GgtJtbh3aNwWOAO1ZPrTxJJmtPQSbgEA5UL4edICAOJKNexToX174ZajSJ8/VVPG7sj7TNbcRjsCtFKFc75izMuDA6Ql/amMdKiS3A/bM1rivtndppmXVGMPTFyI2IuDFyWxkJaonLr3kD74qjNUw5hBJTt6SzWMAaql535bmQYyIPES1Nh6L509g7SdRwtaZQ3N/KgDBLtuXtUZfb9bxNzOnZECpKnQJI8b/0Nu5BilrnZAvvu5dMSMUFuQ3C5z7jhgUthYF5Qlv1cX3CZ2iFnY/w9YE6fXaPP7fhlzX65htGQ8k92h39F9vNud+r3O6RxdO+AVEj2DtD/VVOfm5MJUNZXMR3SHIG1MUWytVqs2Z9SW1SWTnhnsCEBRmeSoGn10tj0DVU9Jta3Wj0Zmiuq9EDT18u0AAdBto49WR5juf40+1EugBUyJJS+Y0qLyO2NHypRdCc2PPPlMx3I73Wag9pviVcKWtCiWiFrNE444Rq1tdhEFJ/PzkCNgGbgGcJ1KwRDSXl6XzDFa4jrNRDI0IumBajQQm3W4eVpvn8Ltj/A12r1Eu+3fWElTp7Mxu6cwfFrvf6xfos0+2oZmTN2ofIIZhqyj3T56thicgF0I4huuGPCJa41/9feTlsLcGsBQqXw0/HU0i/7j/qMzSwrE0lXQf37O0/Vr6b4ppOaiZDXKhO4mZVjltr6s4OkU7VcqErVCD0zMyvg7hr7uX19nBUEimgr78Rz+vAzOVKN2xat3+rAvJIamz0xN1cGlaRBp2ZiuEk/GY2Dy8Mzf+Nh7YpSRrHoz18V104W7Hc5NLqXobogqpC1uAGpWdbP1wnZYg+vfIms0GRJE5s9+Jd3CUnakTaEPrp7GSlI0AoWosZSK6TM6wZ5scdMqpNO22X38A7CV0ykxEwAA", "encoding": "utf-8"}, "headers": {"vary": "Accept", "x-github-media-type": "github.v3; param=full; format=json", "x-xss-protection": "1; mode=block", "x-content-type-options": "nosniff", "etag": "W/\"87634f23b0e88ce76f4b914d98b73a6e\"", "cache-control": "public, max-age=60, s-maxage=60", "status": "200 OK", "x-ratelimit-remaining": "50", "x-served-by": "2d7a5e35115884240089368322196939", "access-control-expose-headers": "ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval", "transfer-encoding": "chunked", "x-github-request-id": "D56988B9:94AF:14509ED0:563E2297", "access-control-allow-credentials": "true", "last-modified": "Sat, 07 Nov 2015 08:27:31 GMT", "date": "Sat, 07 Nov 2015 16:11:03 GMT", "access-control-allow-origin": "*", "content-security-policy": "default-src 'none'", "content-encoding": "gzip", "strict-transport-security": "max-age=31536000; includeSubdomains; preload", "server": "GitHub.com", "x-ratelimit-limit": "60", "x-frame-options": "deny", "content-type": "application/json; charset=utf-8", "x-ratelimit-reset": "1446914388"}, "status": {"message": "OK", "code": 200}, "url": "https://api.github.com/repos/sigmavirus24/github3.py"}, "recorded_at": "2015-11-07T16:11:03"}, {"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept-Encoding": "gzip, deflate", "Accept": "application/vnd.github.v3.full+json", "User-Agent": "github3.py/1.0.0a2", "Accept-Charset": "utf-8", "Connection": "keep-alive", "Content-Type": "application/json"}, "method": "GET", "uri": "https://api.github.com/repos/sigmavirus24/github3.py/git/trees/75b347329e3fc87ac78895ca1be58daff78872a1"}, "response": {"body": {"string": "", "base64_string": "H4sIAAAAAAAAA62X3W7jOAyF3yXXg0YUqb++ymBRUBSVGps2QewM0B303ZeedhrPnYNxriwYyvFn6pDHP3fjM+8edylUpIS+KHbJiSXlXIIwVA25ce+2Tp5h9213vRxtw/M0ncfH/Z7Pw8NhmJ6v9UFOL/uLnk/jfhwOL/xjuFxHT/uPu/hwfpsv99NFddzfoTdv2D1+/7k78/Rsyk9Pw+swPT3ZH9rTvJya3d2Bc5HI1tPbeV7X46na6gOOanbKLoUcRF0UL1oopCYxeZEQVUMJ0ad5w/CfbacEf805P8G4Xy39/u0LcH6l69msLtnKFSGnggkFpEjRyj02ZOoSCgNz/2IDCFi2olsrvqS7Ts/jej4PtYeYAibwPov3tWgJyZML5HsPOUbtKPmLDyFthbdae4HXVE4Xnk6XOxjNaOKTua2jdxVVE2tIDKQ9JGoEjkMKoXwxehfcRiVcrb1g1B/6Ot3BB0gVC7QmpIwMZrkisRApZUBBO6WdRWf7fvovB78R32rtBd9hGO/BI02VEweJ0Dv17kRihSLUXUNoTKWhmBG/8Aok3AhvtfYfeNN6/4Hm0Bq7HEGyj1SDFTJgBGsuEBRzsWo269C/axcx543gVmv/CTfPotX9s7WqvrkOLtRQO2DWWEvzngKkGhzWhK1AvPWXnMNWDWa1+AJwGMer3mO+6DyHXjBa2QCL79F858RHheAbi7hKKS0GRHK0FSCsFV8AHvXA8ra+gi40agUR54NIWHP3diBdwApJoDnJmYjTrYKWA2ijE7pae8E3J5bjHQX0CckKSL0k4lY6tRpsXLCCFs69i43G4n1bTHgIWwGuFl8Avp6moQ/C03B6vYOzoQMyKxL6qqpcSomYJLVU/RzPeqIY7bDepkTMcaM6rtZeYJ4uhzvozGQESUuE2FoDrt27lEuxarpoKYZ9zZDzLccAmSs3wlstvsA7s/zLBx3tdX9mbEfOfrb+zNi/gvnvjG1cudVkPcV1koxI0VK2DXhBZIsv0BKFVucZv8kHxGq9JdL1eI/xKnIlaKVIVtHITatVKmR2LlUUO5OSycHCeN7HrUq2WnzB9+vja33jlFCTfewVKNULtTmUuWKQzneKhbtNeRsF0d9Ge8llq9y5WnzBdx31nlidSXMskMXFaOnZeofDaCO99mznspkXe7XrW0MBQAx/fT4/PvxWi7//Y4a6XF+tX2rbPXY+jvr+P9z5wvOXDwAA", "encoding": "utf-8"}, "headers": {"vary": "Accept", "x-github-media-type": "github.v3; param=full; format=json", "x-xss-protection": "1; mode=block", "x-content-type-options": "nosniff", "etag": "W/\"c437e45ae4910fcfbc7a3b8c141ea5e3\"", "cache-control": "public, max-age=60, s-maxage=60", "status": "200 OK", "x-ratelimit-remaining": "49", "x-served-by": "07ff1c8a09e44b62e277fae50a1b1dc4", "access-control-expose-headers": "ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval", "transfer-encoding": "chunked", "x-github-request-id": "D56988B9:94AF:14509F1B:563E2297", "access-control-allow-credentials": "true", "last-modified": "Sat, 07 Nov 2015 08:27:31 GMT", "date": "Sat, 07 Nov 2015 16:11:03 GMT", "access-control-allow-origin": "*", "content-security-policy": "default-src 'none'", "content-encoding": "gzip", "strict-transport-security": "max-age=31536000; includeSubdomains; preload", "server": "GitHub.com", "x-ratelimit-limit": "60", "x-frame-options": "deny", "content-type": "application/json; charset=utf-8", "x-ratelimit-reset": "1446914388"}, "status": {"message": "OK", "code": 200}, "url": "https://api.github.com/repos/sigmavirus24/github3.py/git/trees/75b347329e3fc87ac78895ca1be58daff78872a1"}, "recorded_at": "2015-11-07T16:11:03"}, {"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept-Encoding": "gzip, deflate", "Accept": "application/vnd.github.v3.full+json", "User-Agent": "github3.py/1.0.0a2", "Accept-Charset": "utf-8", "Connection": "keep-alive", "Content-Type": "application/json"}, "method": "GET", "uri": "https://api.github.com/repos/sigmavirus24/github3.py/git/trees/75b347329e3fc87ac78895ca1be58daff78872a1?recursive=1"}, "response": {"body": {"string": "", "base64_string": "H4sIAAAAAAAAA62Y224bRwyG30XXQTQ8zIF5iRboZVEYc+DYQm3LkFZGnSDvXm6cWBsgcGfR1Y20EFa/vuWQ/Mkvu/Nd3n3aRV+II6Eo9ZpirjEl8TVDUZ9a7t2uI2bYfdhdTvd2w900PZ0/7ff56fDx9jDdXcrHenzYn/TpeN6fD7cP+flwupyR96/f0senl/njfjqpnvcr9OYbdp/+/LJ7ytOdKd/cHB4P082N/aD9m4djs2934Fxgtuvp5Wm+LvfHYlevcFyS0+yiT76qCxWrCvvYaohYqw+qXnzAON9w+Gy3c4T/zTn/g/N+WPrrhzfA+ZGOs1lckoUrQIpCkSpUqaIl99Aoc69eMuTc39gAPMlWdKPiS7rLdHce50Mo3YfoKQJiqohFVHxEdp6xd59C0E41vfERxK3whrUXeE3r8ZSn42kFoyVaxWjZ1gldIdWY1ccMrN1Hbgwu++i9vDGi826jEA5rLxj1WR+nFXxAXEigtcqaKYOlnNQgzMoJqJKd0p6rzun7Pf+Sx434hrUXfLeH8xo81lhyzL4G6J17d7WGAlK5u0bQMkujaon4hicQaSO8Ye2f8Kbx/ANNvrXsUoCaMHDxFkhPAay4gFdKYtFsVqF/xC5QShvBDWv/DDf3ouH62VpRbK6D88WXDpQ0FGmI7CEW76hEagLhWl9S8lsVmGHxBeDhfL7omuQLDrPvQsHCBiTYg+WdqxgUPLZcqysc46JBRMdbAcKo+ALwXm9zfRmPoPONmxDRfBCZSupoB9J5KhArNFdTYs7xGkHzAbzRCR3WXvDNjuV+RQAxElsAuUvk3KRzK97aRVZQyan3aq1RENuiw4PfCnBYfAH4eJwO/VDzdDg+ruBs5IAtFZmwqGoWkUCxxhYLzvasRw7BDuu1S4QUNorjsPYC83i6XUFnScYQVQKE1hrk0tHFJGLRdMFcTMaSIKWrjwG2rNwIb1h8gfeU69/5Vs/2uL97bMfOXnb93WN/M+Y/PLZxpVai1RTXuSYiDuayrcFXomz2BVpk38rc4zcZIIb1foG0//3lj99ScPM0M8LWXMEK1vcsIhWSRvWWfcXlzmIO1Iqc024mYCu2Yb332Pbr56R54JMmYp66u6zoY7BeEaln8RiyzYFo1Ybnx/bq04Twf4fzdU4alv4P5Gc9na3srJkOyZkVRUYBSaVat6AgHc3HsbkdyeZxzLsRXt0p4Fbme1j6XeqWJ50OD3qe8sPTipLks6vWWBxXbHNd6lZj0TtzPeiFi1Upc+fcr2PxXLE2ivew9vvkFxu11nUZQyrJm9NT65tdlag0hLkyiReXuViPNTt7dQuAspUbGtZ+F/rwOOnpOa+xEGzFV1yC3qqCrXG4mhG0rQErSYy5YQuVW796wEB+o0APS7/LfNJb/WfN0Q6JbXmFvSlBQYyWyamX2K2KSSkBXMRY9FrJrDdvdrRHtd8lnhP68/FxldOnhIRmg82/h5qs3dYcRQo3aNVcsVj/ghTqW/kGpK0MlM1NY9rvQl+mw/1hWuH9gy25OCl2a8VoNYyiC8GlzpBysQ7dpdkwztfRG2Crzd6w9K+I1/dmZHWS5hEcJfd5SLUDbhar2nKPNHZ759Dh6o7DViuGYeUl6OV+TX0qlAuDOY+atGrITYt5Yp+ys25E1dy/HWcHixEHMWxljofFF3zf1tzjI2r1VnpqModhRpLbvP5yYpAOzWRYOG2fYkN3wLfMDJJkK5MxLL7gu5zNR43zJdYUBFK17LM9pU1pjoItT4odVE7Npp5e7PP1cALQZh1mWPzrXza6nC6PNplq233q1kL167/hoORpARkAAA==", "encoding": "utf-8"}, "headers": {"vary": "Accept", "x-github-media-type": "github.v3; param=full; format=json", "x-xss-protection": "1; mode=block", "x-content-type-options": "nosniff", "etag": "W/\"c055cd9cc7a8565302960f5afbc930fd\"", "cache-control": "public, max-age=60, s-maxage=60", "status": "200 OK", "x-ratelimit-remaining": "48", "x-served-by": "dc1ce2bfb41810a06c705e83b388572d", "access-control-expose-headers": "ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval", "transfer-encoding": "chunked", "x-github-request-id": "D56988B9:94AF:14509F44:563E2297", "access-control-allow-credentials": "true", "last-modified": "Sat, 07 Nov 2015 08:27:31 GMT", "date": "Sat, 07 Nov 2015 16:11:03 GMT", "access-control-allow-origin": "*", "content-security-policy": "default-src 'none'", "content-encoding": "gzip", "strict-transport-security": "max-age=31536000; includeSubdomains; preload", "server": "GitHub.com", "x-ratelimit-limit": "60", "x-frame-options": "deny", "content-type": "application/json; charset=utf-8", "x-ratelimit-reset": "1446914388"}, "status": {"message": "OK", "code": 200}, "url": "https://api.github.com/repos/sigmavirus24/github3.py/git/trees/75b347329e3fc87ac78895ca1be58daff78872a1?recursive=1"}, "recorded_at": "2015-11-07T16:11:04"}], "recorded_with": "betamax/0.5.0"}

tests/integration/test_git.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
"""Integration tests for Tree."""
2+
import github3
3+
from .helper import IntegrationHelper
4+
5+
6+
class TestTree(IntegrationHelper):
7+
8+
"""Integration tests for methods on the Test class."""
9+
10+
def test_recurse(self):
11+
"""Test recurse on tree"""
12+
cassette_name = self.cassette_name('recurse')
13+
with self.recorder.use_cassette(cassette_name):
14+
repository = self.gh.repository('sigmavirus24', 'github3.py')
15+
t = repository.tree('75b347329e3fc87ac78895ca1be58daff78872a1').recurse()
16+
assert isinstance(t.tree[0], github3.git.Hash)
17+
assert repr(t.tree[0]).startswith('<Hash')

tests/test_git.py

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -65,28 +65,3 @@ def test_update(self):
6565
self.response('', 404)
6666
assert self.ref.update('fakesha', True) is False
6767
self.mock_assertions()
68-
69-
70-
class TestTree(BaseCase):
71-
def __init__(self, methodName='runTest'):
72-
super(TestTree, self).__init__(methodName)
73-
self.tree = github3.git.Tree(load('tree'))
74-
self.api = ('https://api.github.com/repos/sigmavirus24/github3.py/git/'
75-
'trees/75b347329e3fc87ac78895ca1be58daff78872a1')
76-
77-
def setUp(self):
78-
super(TestTree, self).setUp()
79-
self.tree = github3.git.Tree(self.tree.as_dict(), self.g)
80-
81-
def test_recurse(self):
82-
self.response('tree', 200)
83-
self.get(self.api)
84-
self.conf = {'params': {'recursive': '1'}}
85-
86-
t = self.tree.recurse()
87-
assert isinstance(t, github3.git.Tree)
88-
assert repr(t).startswith('<Tree')
89-
self.mock_assertions()
90-
91-
assert isinstance(t.tree[0], github3.git.Hash)
92-
assert repr(t.tree[0]).startswith('<Hash')

tests/unit/test_git.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import github3
2+
3+
from .helper import (UnitHelper, create_example_data_helper, create_url_helper)
4+
5+
get_example_data = create_example_data_helper('tree_example')
6+
url_for = create_url_helper('https://api.github.com/repos/octocat/Hello-World/'
7+
'trees/9fb037999f264ba9a7fc6274d15fa3ae2ab98312')
8+
9+
10+
class TestTree(UnitHelper):
11+
"""Tree unit test"""
12+
13+
described_class = github3.git.Tree
14+
example_data = get_example_data()
15+
16+
def test_repr(self):
17+
"""Assert Tree in in the repr."""
18+
assert isinstance(self.instance, github3.git.Tree)
19+
assert repr(self.instance).startswith('<Tree')
20+
21+
def test_recurse(self):
22+
"""Assert that URL is called"""
23+
self.instance.recurse()
24+
self.session.get.assert_called_once_with(
25+
url_for(),
26+
params={'recursive': '1'}
27+
)

tests/unit/tree_example

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{
2+
"sha": "9fb037999f264ba9a7fc6274d15fa3ae2ab98312",
3+
"url": "https://api.github.com/repos/octocat/Hello-World/trees/9fb037999f264ba9a7fc6274d15fa3ae2ab98312",
4+
"tree": [
5+
{
6+
"path": "file.rb",
7+
"mode": "100644",
8+
"type": "blob",
9+
"size": 30,
10+
"sha": "44b4fc6d56897b048c772eb4087f854f46256132",
11+
"url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132"
12+
},
13+
{
14+
"path": "subdir",
15+
"mode": "040000",
16+
"type": "tree",
17+
"sha": "f484d249c660418515fb01c2b9662073663c242e",
18+
"url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/f484d249c660418515fb01c2b9662073663c242e"
19+
},
20+
{
21+
"path": "exec_file",
22+
"mode": "100755",
23+
"type": "blob",
24+
"size": 75,
25+
"sha": "45b983be36b73c0788dc9cbcb76cbb80fc7bb057",
26+
"url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/45b983be36b73c0788dc9cbcb76cbb80fc7bb057"
27+
}
28+
],
29+
"truncated": false
30+
}

0 commit comments

Comments
 (0)
0