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 @@ | @@ -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 | \ No newline at end of file | 61 | \ No newline at end of file |
@@ -0,0 +1,57 @@ | @@ -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 @@ | @@ -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") |