Commit 358a0795ea8ffb4fd4f77a85812bfe9496b72b2b
Committed by
Lucas Kanashiro
1 parent
bc1e1dae
Exists in
master
and in
27 other branches
Added data importer tests
Signed-off-by: Matheus Fernandes <matheus.souza.fernandes@gmail.com> Signed-off-by: Lucas Moura <lucas.moura128@gmail.com>
Showing
3 changed files
with
179 additions
and
0 deletions
Show diff stats
... | ... | @@ -0,0 +1,60 @@ |
1 | +[ | |
2 | +{ | |
3 | + "fields": { | |
4 | + "last_name": "Administrator", | |
5 | + "webpage": "", | |
6 | + "twitter": "", | |
7 | + "is_staff": true, | |
8 | + "user_permissions": [], | |
9 | + "date_joined": "2015-01-28T12:34:58.770Z", | |
10 | + "google_talk": "", | |
11 | + "first_name": "Admin", | |
12 | + "is_superuser": true, | |
13 | + "last_login": "2015-08-24T14:33:28.802Z", | |
14 | + "verification_hash": null, | |
15 | + "role": "", | |
16 | + "email": "admin@mail.com", | |
17 | + "username": "admin", | |
18 | + "bio": "", | |
19 | + "needs_update": true, | |
20 | + "is_active": true, | |
21 | + "facebook": "", | |
22 | + "groups": [], | |
23 | + "password": "pbkdf2_sha256$15000$sWnvfYpB8ec4$7dEFg6vSSGPnpEmfRelJ12zkiwacGx9aXx8/8ZFWBSI=", | |
24 | + "institution": "", | |
25 | + "github": "", | |
26 | + "modified": "2015-01-28T12:45:27.375Z" | |
27 | + }, | |
28 | + "model": "accounts.user", | |
29 | + "pk": 1 | |
30 | +}, | |
31 | +{ | |
32 | + "fields": { | |
33 | + "last_name": "user", | |
34 | + "webpage": null, | |
35 | + "twitter": null, | |
36 | + "is_staff": false, | |
37 | + "user_permissions": [], | |
38 | + "date_joined": "2015-08-24T14:33:55.827Z", | |
39 | + "google_talk": null, | |
40 | + "first_name": "user", | |
41 | + "is_superuser": false, | |
42 | + "last_login": "2015-08-24T14:33:55.827Z", | |
43 | + "verification_hash": null, | |
44 | + "role": null, | |
45 | + "email": "user@teste.com", | |
46 | + "username": "user", | |
47 | + "bio": null, | |
48 | + "needs_update": true, | |
49 | + "is_active": true, | |
50 | + "facebook": null, | |
51 | + "groups": [], | |
52 | + "password": "pbkdf2_sha256$15000$9ew6EvFvAIhI$147annuMjzt7em5IRh+3k7wcl7rZ0xjBPSmbUZDdxFo=", | |
53 | + "institution": null, | |
54 | + "github": null, | |
55 | + "modified": "2015-08-24T14:33:55.893Z" | |
56 | + }, | |
57 | + "model": "accounts.user", | |
58 | + "pk": 2 | |
59 | +} | |
60 | +] | |
0 | 61 | \ No newline at end of file | ... | ... |
... | ... | @@ -0,0 +1,57 @@ |
1 | +colab_apps = {'gitlab': | |
2 | + {'menu_title': None, | |
3 | + 'private_token': 'token', | |
4 | + 'upstream': 'localhost', | |
5 | + 'urls': | |
6 | + {'include': 'colab.plugins.gitlab.urls', | |
7 | + 'namespace': 'gitlab', | |
8 | + 'prefix': 'gitlab/'}}} | |
9 | + | |
10 | +projects_json = [{"id": 32, | |
11 | + "description": "Test Gitlab", | |
12 | + "default_branch": "master", | |
13 | + "public": True, | |
14 | + "archived": False, | |
15 | + "visibility_level": 20, | |
16 | + "ssh_url_to_repo": "git@localhost/gitlabhq.git", | |
17 | + "http_url_to_repo": "localhost/gitlabhq.git", | |
18 | + "web_url": "localhost/gitlabhq", | |
19 | + "name": "Gitlab", | |
20 | + "name_with_namespace": "Test / Gitlab", | |
21 | + "path": "gitlabhq"}] | |
22 | + | |
23 | +groups_json = [{"id": 23, | |
24 | + "name": "Group 1", | |
25 | + "path": "group-1", | |
26 | + "owner_id": None}, | |
27 | + {"id": 27, | |
28 | + "name": "Group 2", | |
29 | + "path": "group-2", | |
30 | + "owner_id": None}] | |
31 | + | |
32 | +merge_json = [{"id": 7, | |
33 | + "iid": 1, | |
34 | + "project_id": 14, | |
35 | + "title": "Merge Title", | |
36 | + "description": "description", | |
37 | + "state": "merged", | |
38 | + "created_at": "2014-10-24T12:05:55.659Z", | |
39 | + "updated_at": "2014-10-24T12:06:15.572Z", | |
40 | + "target_branch": "master", | |
41 | + "source_branch": "settings_fix", | |
42 | + "upvotes": 0, | |
43 | + "downvotes": 0, | |
44 | + "author": {"name": "user", | |
45 | + "username": "user", | |
46 | + "id": 8, | |
47 | + "state": "active", | |
48 | + "avatar_url": "localhost"}, | |
49 | + "assignee": {"name": "user", | |
50 | + "username": "user", | |
51 | + "id": 8, | |
52 | + "state": "active", | |
53 | + "avatar_url": "localhost"}, | |
54 | + "source_project_id": 14, | |
55 | + "target_project_id": 14, | |
56 | + "labels": [], | |
57 | + "milestone": None}] | ... | ... |
... | ... | @@ -0,0 +1,62 @@ |
1 | +from django.test import TestCase | |
2 | +from django.test.utils import override_settings | |
3 | +from ..data_importer import GitlabDataImporter | |
4 | +from ..models import GitlabProject | |
5 | +from mock import patch | |
6 | +import data | |
7 | + | |
8 | + | |
9 | +class GitlabDataImporterTest(TestCase): | |
10 | + | |
11 | + fixtures = ["gitlab_associations"] | |
12 | + | |
13 | + colab_apps = data.colab_apps | |
14 | + projects_json = data.projects_json | |
15 | + groups_json = data.groups_json | |
16 | + merge_json = data.merge_json | |
17 | + | |
18 | + @override_settings(COLAB_APPS=colab_apps) | |
19 | + def setUp(self): | |
20 | + self.api = GitlabDataImporter() | |
21 | + | |
22 | + def test_resquest_url(self): | |
23 | + url = self.api.get_request_url('/gitlab/test/') | |
24 | + expected = 'localhost/gitlab/test/?private_token=token' | |
25 | + self.assertEqual(url, expected) | |
26 | + | |
27 | + def test_resquest_url_with_params(self): | |
28 | + url = self.api.get_request_url('/gitlab/test/', param='param') | |
29 | + expected = 'localhost/gitlab/test/?private_token=token¶m=param' | |
30 | + self.assertEqual(url, expected) | |
31 | + | |
32 | + @patch.object(GitlabDataImporter, 'get_json_data') | |
33 | + def test_fetch_projects(self, mock_json): | |
34 | + mock_json.side_effect = [self.projects_json, []] | |
35 | + | |
36 | + projects = self.api.fetch_projects() | |
37 | + self.assertEqual(len(projects), 1) | |
38 | + | |
39 | + self.assertEqual(projects[0].description, "Test Gitlab") | |
40 | + self.assertEqual(projects[0].public, True) | |
41 | + | |
42 | + @patch.object(GitlabDataImporter, 'get_json_data') | |
43 | + def test_fetch_groups(self, mock_json): | |
44 | + mock_json.side_effect = [self.groups_json, []] | |
45 | + | |
46 | + groups = self.api.fetch_groups() | |
47 | + self.assertEqual(len(groups), 2) | |
48 | + self.assertEqual(groups[0].name, "Group 1") | |
49 | + self.assertEqual(groups[1].name, "Group 2") | |
50 | + | |
51 | + self.assertEqual(groups[0].path, "group-1") | |
52 | + self.assertEqual(groups[1].path, "group-2") | |
53 | + | |
54 | + @patch.object(GitlabDataImporter, 'get_json_data') | |
55 | + def test_fetch_merge(self, mock_json): | |
56 | + mock_json.side_effect = [self.merge_json, []] | |
57 | + | |
58 | + merges = self.api.fetch_merge_request([GitlabProject()]) | |
59 | + self.assertEqual(len(merges), 1) | |
60 | + self.assertEqual(merges[0].title, "Merge Title") | |
61 | + self.assertEqual(merges[0].description, "description") | |
62 | + self.assertEqual(merges[0].get_author().username, "user") | ... | ... |