Skip to content

Commit 89a4b36

Browse files
committed
use mocked session for tests
Signed-off-by: Pierre Tardy <tardyp@gmail.com>
1 parent 64bdc49 commit 89a4b36

2 files changed

Lines changed: 88 additions & 2 deletions

File tree

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
[
2+
{
3+
"url": "https://api.github.com/repos/nexB/vulnerablecode/releases/32748782",
4+
"assets_url": "https://api.github.com/repos/nexB/vulnerablecode/releases/32748782/assets",
5+
"upload_url": "https://uploads.github.com/repos/nexB/vulnerablecode/releases/32748782/assets{?name,label}",
6+
"html_url": "https://github.com/nexB/vulnerablecode/releases/tag/v20.10",
7+
"id": 32748782,
8+
"author": {
9+
"login": "pombredanne",
10+
"id": 675997,
11+
"node_id": "MDQ6VXNlcjY3NTk5Nw==",
12+
"avatar_url": "https://avatars.githubusercontent.com/u/675997?v=4",
13+
"gravatar_id": "",
14+
"url": "https://api.github.com/users/pombredanne",
15+
"html_url": "https://github.com/pombredanne",
16+
"followers_url": "https://api.github.com/users/pombredanne/followers",
17+
"following_url": "https://api.github.com/users/pombredanne/following{/other_user}",
18+
"gists_url": "https://api.github.com/users/pombredanne/gists{/gist_id}",
19+
"starred_url": "https://api.github.com/users/pombredanne/starred{/owner}{/repo}",
20+
"subscriptions_url": "https://api.github.com/users/pombredanne/subscriptions",
21+
"organizations_url": "https://api.github.com/users/pombredanne/orgs",
22+
"repos_url": "https://api.github.com/users/pombredanne/repos",
23+
"events_url": "https://api.github.com/users/pombredanne/events{/privacy}",
24+
"received_events_url": "https://api.github.com/users/pombredanne/received_events",
25+
"type": "User",
26+
"site_admin": false
27+
},
28+
"node_id": "MDc6UmVsZWFzZTMyNzQ4Nzgy",
29+
"tag_name": "v20.10",
30+
"target_commitish": "main",
31+
"name": "v20.10",
32+
"draft": false,
33+
"prerelease": false,
34+
"created_at": "2020-09-28T12:31:16Z",
35+
"published_at": "2020-10-19T10:46:17Z",
36+
"assets": [
37+
{
38+
"url": "https://api.github.com/repos/nexB/vulnerablecode/releases/assets/27230021",
39+
"id": 27230021,
40+
"node_id": "MDEyOlJlbGVhc2VBc3NldDI3MjMwMDIx",
41+
"name": "vulnerablecode-2020-10-19.json.xz",
42+
"label": null,
43+
"uploader": {
44+
"login": "pombredanne",
45+
"id": 675997,
46+
"node_id": "MDQ6VXNlcjY3NTk5Nw==",
47+
"avatar_url": "https://avatars.githubusercontent.com/u/675997?v=4",
48+
"gravatar_id": "",
49+
"url": "https://api.github.com/users/pombredanne",
50+
"html_url": "https://github.com/pombredanne",
51+
"followers_url": "https://api.github.com/users/pombredanne/followers",
52+
"following_url": "https://api.github.com/users/pombredanne/following{/other_user}",
53+
"gists_url": "https://api.github.com/users/pombredanne/gists{/gist_id}",
54+
"starred_url": "https://api.github.com/users/pombredanne/starred{/owner}{/repo}",
55+
"subscriptions_url": "https://api.github.com/users/pombredanne/subscriptions",
56+
"organizations_url": "https://api.github.com/users/pombredanne/orgs",
57+
"repos_url": "https://api.github.com/users/pombredanne/repos",
58+
"events_url": "https://api.github.com/users/pombredanne/events{/privacy}",
59+
"received_events_url": "https://api.github.com/users/pombredanne/received_events",
60+
"type": "User",
61+
"site_admin": false
62+
},
63+
"content_type": "application/x-xz",
64+
"state": "uploaded",
65+
"size": 13603356,
66+
"download_count": 20,
67+
"created_at": "2020-10-20T09:40:08Z",
68+
"updated_at": "2020-10-20T09:40:25Z",
69+
"browser_download_url": "https://github.com/nexB/vulnerablecode/releases/download/v20.10/vulnerablecode-2020-10-19.json.xz"
70+
}
71+
],
72+
"tarball_url": "https://api.github.com/repos/nexB/vulnerablecode/tarball/v20.10",
73+
"zipball_url": "https://api.github.com/repos/nexB/vulnerablecode/zipball/v20.10",
74+
"body": "This release comes with the new calver versioning scheme and an initial data dump.\r\n\r\nTo load the JSON data attached here:\r\n- extract it with `unxz vulnerablecode-2020-10-19.json.xz`\r\n- run `DJANGO_DEV=1 python manage.py loaddata vulnerablecode-2020-10-19.json`\r\n\r\nThe data import is not optimized yet and takes a long time."
75+
}
76+
]

vulnerabilities/tests/test_package_managers.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,14 @@ async def request(self, *args, **kwargs):
5252
mock_response.read = self.read
5353
return mock_response
5454

55+
def get(self, *args, **kwargs):
56+
kwargs["method"] = "get"
57+
return self.request(*args, **kwargs)
58+
59+
def post(self, *args, **kwargs):
60+
kwargs["method"] = "post"
61+
return self.request(*args, **kwargs)
62+
5563
async def json(self):
5664
return self.return_val
5765

@@ -502,12 +510,14 @@ def test_fetch(self):
502510
class TestGitHubTagsAPI(TestCase):
503511
def setUp(self) -> None:
504512
self.version_api = GitHubTagsAPI()
513+
with open(os.path.join(TEST_DATA, "github_api", "release_response.json")) as f:
514+
self.response = json.load(f)
505515
return super().setUp()
506516

507517
def test_fetch(self):
508518
async def async_run():
509-
async with client_session() as session:
510-
await self.version_api.fetch("nexB/vulnerablecode", session)
519+
session = MockClientSession(self.response)
520+
await self.version_api.fetch("nexB/vulnerablecode", session)
511521

512522
asyncio.run(async_run())
513523

0 commit comments

Comments
 (0)