Commit 358a0795ea8ffb4fd4f77a85812bfe9496b72b2b

Authored by Matheus Fernandes
Committed by Lucas Kanashiro
1 parent bc1e1dae

Added data importer tests

Signed-off-by: Matheus Fernandes <matheus.souza.fernandes@gmail.com>
Signed-off-by: Lucas Moura <lucas.moura128@gmail.com>
colab/plugins/gitlab/fixtures/gitlab_associations.json 0 → 100644
... ... @@ -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
... ...
colab/plugins/gitlab/tests/data.py 0 → 100644
... ... @@ -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}]
... ...
colab/plugins/gitlab/tests/test_data_importer.py 0 → 100644
... ... @@ -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&param=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")
... ...