From c328414b4de928f828f99bbc86547d1da9bdb9eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Espino?= Date: Tue, 24 Feb 2015 14:00:22 +0100 Subject: [PATCH] Fixing a lot of flake8 errors on tests --- tests/conftest.py | 1 - .../test_attachment_resources.py | 12 +- .../test_auth_resources.py | 1 - .../test_history_resources.py | 10 +- .../test_issues_resources.py | 11 +- .../test_milestones_resources.py | 6 +- .../test_projects_choices_resources.py | 51 +++--- .../test_resolver_resources.py | 15 +- .../test_search_resources.py | 7 +- .../test_storage_resources.py | 2 - .../test_tasks_resources.py | 10 +- .../test_timelines_resources.py | 6 +- .../test_users_resources.py | 4 +- .../test_userstories_resources.py | 10 +- .../test_webhooks_resources.py | 5 +- .../test_wiki_resources.py | 15 +- tests/integration/test_attachments.py | 6 +- tests/integration/test_feedback.py | 1 - tests/integration/test_history.py | 18 +-- tests/integration/test_hooks_bitbucket.py | 47 +++--- tests/integration/test_hooks_github.py | 57 +++---- tests/integration/test_hooks_gitlab.py | 47 +++--- tests/integration/test_importer_api.py | 118 +++++++++----- tests/integration/test_issues.py | 6 +- tests/integration/test_memberships.py | 12 +- tests/integration/test_milestones.py | 7 +- tests/integration/test_neighbors.py | 2 - tests/integration/test_notifications.py | 30 ++-- tests/integration/test_occ.py | 150 +++++++++--------- tests/integration/test_permissions.py | 14 +- tests/integration/test_projects.py | 46 +++--- .../integration/test_references_sequences.py | 3 - tests/integration/test_roles.py | 15 +- tests/integration/test_searches.py | 22 ++- tests/integration/test_stats.py | 3 - tests/integration/test_tasks.py | 2 +- tests/integration/test_throwttling.py | 6 +- tests/integration/test_timeline.py | 2 +- tests/integration/test_users.py | 10 +- tests/integration/test_userstories.py | 21 +-- tests/integration/test_vote_issues.py | 1 - tests/models.py | 2 +- tests/unit/test_base_api_permissions.py | 5 +- tests/unit/test_deferred.py | 1 + tests/unit/test_mdrender.py | 4 + tests/unit/test_permissions.py | 4 +- tests/unit/test_slug.py | 1 + tests/unit/test_timeline.py | 5 +- tests/unit/test_tokens.py | 9 +- tests/utils.py | 3 +- 50 files changed, 436 insertions(+), 410 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index f7fd7cf7..ed81ee80 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -34,4 +34,3 @@ def pytest_runtest_setup(item): def pytest_configure(config): django.setup() - diff --git a/tests/integration/resources_permissions/test_attachment_resources.py b/tests/integration/resources_permissions/test_attachment_resources.py index d198bd98..520e266a 100644 --- a/tests/integration/resources_permissions/test_attachment_resources.py +++ b/tests/integration/resources_permissions/test_attachment_resources.py @@ -49,9 +49,9 @@ def data(): owner=m.project_owner) m.public_membership = f.MembershipFactory(project=m.public_project, - user=m.project_member_with_perms, - role__project=m.public_project, - role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS))) + user=m.project_member_with_perms, + role__project=m.public_project, + role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS))) m.private_membership1 = f.MembershipFactory(project=m.private_project1, user=m.project_member_with_perms, role__project=m.private_project1, @@ -83,6 +83,7 @@ def data(): return m + @pytest.fixture def data_us(data): m = type("Models", (object,), {}) @@ -97,6 +98,7 @@ def data_us(data): content_object=m.private_user_story2) return m + @pytest.fixture def data_task(data): m = type("Models", (object,), {}) @@ -108,6 +110,7 @@ def data_task(data): m.private_task2_attachment = f.TaskAttachmentFactory(project=data.private_project2, content_object=m.private_task2) return m + @pytest.fixture def data_issue(data): m = type("Models", (object,), {}) @@ -119,6 +122,7 @@ def data_issue(data): m.private_issue2_attachment = f.IssueAttachmentFactory(project=data.private_project2, content_object=m.private_issue2) return m + @pytest.fixture def data_wiki(data): m = type("Models", (object,), {}) @@ -130,6 +134,7 @@ def data_wiki(data): m.private_wiki2_attachment = f.WikiAttachmentFactory(project=data.private_project2, content_object=m.private_wiki2) return m + def test_user_story_attachment_retrieve(client, data, data_us): public_url = reverse('userstory-attachments-detail', kwargs={"pk": data_us.public_user_story_attachment.pk}) private_url1 = reverse('userstory-attachments-detail', kwargs={"pk": data_us.private_user_story1_attachment.pk}) @@ -507,6 +512,7 @@ def test_wiki_attachment_delete(client, data, data_wiki): results = helper_test_http_method(client, 'delete', private_url2, None, users) assert results == [401, 403, 403, 204] + def test_user_story_attachment_create(client, data, data_us): url = reverse('userstory-attachments-list') diff --git a/tests/integration/resources_permissions/test_auth_resources.py b/tests/integration/resources_permissions/test_auth_resources.py index 8f51080a..0cc4cedc 100644 --- a/tests/integration/resources_permissions/test_auth_resources.py +++ b/tests/integration/resources_permissions/test_auth_resources.py @@ -1,6 +1,5 @@ from django.core.urlresolvers import reverse -from taiga.permissions.permissions import MEMBERS_PERMISSIONS, ANON_PERMISSIONS, USER_PERMISSIONS from taiga.base.utils import json from tests import factories as f diff --git a/tests/integration/resources_permissions/test_history_resources.py b/tests/integration/resources_permissions/test_history_resources.py index fe85eda2..4faf909d 100644 --- a/tests/integration/resources_permissions/test_history_resources.py +++ b/tests/integration/resources_permissions/test_history_resources.py @@ -41,9 +41,9 @@ def data(): owner=m.project_owner) m.public_membership = f.MembershipFactory(project=m.public_project, - user=m.project_member_with_perms, - role__project=m.public_project, - role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS))) + user=m.project_member_with_perms, + role__project=m.public_project, + role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS))) m.private_membership1 = f.MembershipFactory(project=m.private_project1, user=m.project_member_with_perms, role__project=m.private_project1, @@ -75,6 +75,7 @@ def data(): is_owner=True) return m + @pytest.fixture def data_us(data): m = type("Models", (object,), {}) @@ -83,6 +84,7 @@ def data_us(data): m.private_user_story2 = f.UserStoryFactory(project=data.private_project2, ref=9) return m + @pytest.fixture def data_task(data): m = type("Models", (object,), {}) @@ -91,6 +93,7 @@ def data_task(data): m.private_task2 = f.TaskFactory(project=data.private_project2, ref=10) return m + @pytest.fixture def data_issue(data): m = type("Models", (object,), {}) @@ -99,6 +102,7 @@ def data_issue(data): m.private_issue2 = f.IssueFactory(project=data.private_project2, ref=11) return m + @pytest.fixture def data_wiki(data): m = type("Models", (object,), {}) diff --git a/tests/integration/resources_permissions/test_issues_resources.py b/tests/integration/resources_permissions/test_issues_resources.py index d451b794..7b8ec066 100644 --- a/tests/integration/resources_permissions/test_issues_resources.py +++ b/tests/integration/resources_permissions/test_issues_resources.py @@ -47,9 +47,9 @@ def data(): owner=m.project_owner) m.public_membership = f.MembershipFactory(project=m.public_project, - user=m.project_member_with_perms, - role__project=m.public_project, - role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS))) + user=m.project_member_with_perms, + role__project=m.public_project, + role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS))) m.private_membership1 = f.MembershipFactory(project=m.private_project1, user=m.project_member_with_perms, role__project=m.private_project1, @@ -135,7 +135,7 @@ def test_issue_update(client, data): data.project_owner ] - with mock.patch.object(OCCResourceMixin, "_validate_and_update_version") as _validate_and_update_version_mock: + with mock.patch.object(OCCResourceMixin, "_validate_and_update_version"): issue_data = IssueSerializer(data.public_issue).data issue_data["subject"] = "test" issue_data = json.dumps(issue_data) @@ -285,7 +285,7 @@ def test_issue_patch(client, data): data.project_owner ] - with mock.patch.object(OCCResourceMixin, "_validate_and_update_version") as _validate_and_update_version_mock: + with mock.patch.object(OCCResourceMixin, "_validate_and_update_version"): patch_data = json.dumps({"subject": "test", "version": data.public_issue.version}) results = helper_test_http_method(client, 'patch', public_url, patch_data, users) assert results == [401, 403, 403, 200, 200] @@ -412,6 +412,7 @@ def test_issue_voters_list(client, data): results = helper_test_http_method(client, 'get', private_url2, None, users) assert results == [401, 403, 403, 200, 200] + def test_issue_voters_retrieve(client, data): add_vote(data.public_issue, data.project_owner) public_url = reverse('issue-voters-detail', kwargs={"issue_id": data.public_issue.pk, "pk": data.project_owner.pk}) diff --git a/tests/integration/resources_permissions/test_milestones_resources.py b/tests/integration/resources_permissions/test_milestones_resources.py index ce6fb6de..955754f9 100644 --- a/tests/integration/resources_permissions/test_milestones_resources.py +++ b/tests/integration/resources_permissions/test_milestones_resources.py @@ -44,9 +44,9 @@ def data(): owner=m.project_owner) m.public_membership = f.MembershipFactory(project=m.public_project, - user=m.project_member_with_perms, - role__project=m.public_project, - role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS))) + user=m.project_member_with_perms, + role__project=m.public_project, + role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS))) m.private_membership1 = f.MembershipFactory(project=m.private_project1, user=m.project_member_with_perms, role__project=m.private_project1, diff --git a/tests/integration/resources_permissions/test_projects_choices_resources.py b/tests/integration/resources_permissions/test_projects_choices_resources.py index 0c31df3d..c94ec9cc 100644 --- a/tests/integration/resources_permissions/test_projects_choices_resources.py +++ b/tests/integration/resources_permissions/test_projects_choices_resources.py @@ -36,10 +36,10 @@ def data(): owner=m.project_owner) m.public_membership = f.MembershipFactory(project=m.public_project, - user=m.project_member_with_perms, - email=m.project_member_with_perms.email, - role__project=m.public_project, - role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS))) + user=m.project_member_with_perms, + email=m.project_member_with_perms.email, + role__project=m.public_project, + role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS))) m.private_membership1 = f.MembershipFactory(project=m.private_project1, user=m.project_member_with_perms, email=m.project_member_with_perms.email, @@ -375,21 +375,21 @@ def test_points_action_bulk_update_order(client, data): ] post_data = json.dumps({ - "bulk_points": [(1,2)], + "bulk_points": [(1, 2)], "project": data.public_project.pk }) results = helper_test_http_method(client, 'post', url, post_data, users) assert results == [401, 403, 403, 403, 204] post_data = json.dumps({ - "bulk_points": [(1,2)], + "bulk_points": [(1, 2)], "project": data.private_project1.pk }) results = helper_test_http_method(client, 'post', url, post_data, users) assert results == [401, 403, 403, 403, 204] post_data = json.dumps({ - "bulk_points": [(1,2)], + "bulk_points": [(1, 2)], "project": data.private_project2.pk }) results = helper_test_http_method(client, 'post', url, post_data, users) @@ -536,21 +536,21 @@ def test_user_story_status_action_bulk_update_order(client, data): ] post_data = json.dumps({ - "bulk_userstory_statuses": [(1,2)], + "bulk_userstory_statuses": [(1, 2)], "project": data.public_project.pk }) results = helper_test_http_method(client, 'post', url, post_data, users) assert results == [401, 403, 403, 403, 204] post_data = json.dumps({ - "bulk_userstory_statuses": [(1,2)], + "bulk_userstory_statuses": [(1, 2)], "project": data.private_project1.pk }) results = helper_test_http_method(client, 'post', url, post_data, users) assert results == [401, 403, 403, 403, 204] post_data = json.dumps({ - "bulk_userstory_statuses": [(1,2)], + "bulk_userstory_statuses": [(1, 2)], "project": data.private_project2.pk }) results = helper_test_http_method(client, 'post', url, post_data, users) @@ -697,21 +697,21 @@ def test_task_status_action_bulk_update_order(client, data): ] post_data = json.dumps({ - "bulk_task_statuses": [(1,2)], + "bulk_task_statuses": [(1, 2)], "project": data.public_project.pk }) results = helper_test_http_method(client, 'post', url, post_data, users) assert results == [401, 403, 403, 403, 204] post_data = json.dumps({ - "bulk_task_statuses": [(1,2)], + "bulk_task_statuses": [(1, 2)], "project": data.private_project1.pk }) results = helper_test_http_method(client, 'post', url, post_data, users) assert results == [401, 403, 403, 403, 204] post_data = json.dumps({ - "bulk_task_statuses": [(1,2)], + "bulk_task_statuses": [(1, 2)], "project": data.private_project2.pk }) results = helper_test_http_method(client, 'post', url, post_data, users) @@ -858,21 +858,21 @@ def test_issue_status_action_bulk_update_order(client, data): ] post_data = json.dumps({ - "bulk_issue_statuses": [(1,2)], + "bulk_issue_statuses": [(1, 2)], "project": data.public_project.pk }) results = helper_test_http_method(client, 'post', url, post_data, users) assert results == [401, 403, 403, 403, 204] post_data = json.dumps({ - "bulk_issue_statuses": [(1,2)], + "bulk_issue_statuses": [(1, 2)], "project": data.private_project1.pk }) results = helper_test_http_method(client, 'post', url, post_data, users) assert results == [401, 403, 403, 403, 204] post_data = json.dumps({ - "bulk_issue_statuses": [(1,2)], + "bulk_issue_statuses": [(1, 2)], "project": data.private_project2.pk }) results = helper_test_http_method(client, 'post', url, post_data, users) @@ -1019,21 +1019,21 @@ def test_issue_type_action_bulk_update_order(client, data): ] post_data = json.dumps({ - "bulk_issue_types": [(1,2)], + "bulk_issue_types": [(1, 2)], "project": data.public_project.pk }) results = helper_test_http_method(client, 'post', url, post_data, users) assert results == [401, 403, 403, 403, 204] post_data = json.dumps({ - "bulk_issue_types": [(1,2)], + "bulk_issue_types": [(1, 2)], "project": data.private_project1.pk }) results = helper_test_http_method(client, 'post', url, post_data, users) assert results == [401, 403, 403, 403, 204] post_data = json.dumps({ - "bulk_issue_types": [(1,2)], + "bulk_issue_types": [(1, 2)], "project": data.private_project2.pk }) results = helper_test_http_method(client, 'post', url, post_data, users) @@ -1180,21 +1180,21 @@ def test_priority_action_bulk_update_order(client, data): ] post_data = json.dumps({ - "bulk_priorities": [(1,2)], + "bulk_priorities": [(1, 2)], "project": data.public_project.pk }) results = helper_test_http_method(client, 'post', url, post_data, users) assert results == [401, 403, 403, 403, 204] post_data = json.dumps({ - "bulk_priorities": [(1,2)], + "bulk_priorities": [(1, 2)], "project": data.private_project1.pk }) results = helper_test_http_method(client, 'post', url, post_data, users) assert results == [401, 403, 403, 403, 204] post_data = json.dumps({ - "bulk_priorities": [(1,2)], + "bulk_priorities": [(1, 2)], "project": data.private_project2.pk }) results = helper_test_http_method(client, 'post', url, post_data, users) @@ -1341,21 +1341,21 @@ def test_severity_action_bulk_update_order(client, data): ] post_data = json.dumps({ - "bulk_severities": [(1,2)], + "bulk_severities": [(1, 2)], "project": data.public_project.pk }) results = helper_test_http_method(client, 'post', url, post_data, users) assert results == [401, 403, 403, 403, 204] post_data = json.dumps({ - "bulk_severities": [(1,2)], + "bulk_severities": [(1, 2)], "project": data.private_project1.pk }) results = helper_test_http_method(client, 'post', url, post_data, users) assert results == [401, 403, 403, 403, 204] post_data = json.dumps({ - "bulk_severities": [(1,2)], + "bulk_severities": [(1, 2)], "project": data.private_project2.pk }) results = helper_test_http_method(client, 'post', url, post_data, users) @@ -1489,6 +1489,7 @@ def test_membership_patch(client, data): results = helper_test_http_method(client, 'patch', private2_url, '{"name": "Test"}', users) assert results == [401, 403, 403, 403, 200] + def test_membership_create(client, data): url = reverse('memberships-list') diff --git a/tests/integration/resources_permissions/test_resolver_resources.py b/tests/integration/resources_permissions/test_resolver_resources.py index e2d1dc44..0cb484a3 100644 --- a/tests/integration/resources_permissions/test_resolver_resources.py +++ b/tests/integration/resources_permissions/test_resolver_resources.py @@ -1,6 +1,5 @@ from django.core.urlresolvers import reverse -from taiga.base.utils import json from taiga.permissions.permissions import MEMBERS_PERMISSIONS, ANON_PERMISSIONS, USER_PERMISSIONS from tests import factories as f @@ -45,9 +44,9 @@ def data(): slug="private2") m.public_membership = f.MembershipFactory(project=m.public_project, - user=m.project_member_with_perms, - role__project=m.public_project, - role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS))) + user=m.project_member_with_perms, + role__project=m.public_project, + role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS))) m.private_membership1 = f.MembershipFactory(project=m.private_project1, user=m.project_member_with_perms, role__project=m.private_project1, @@ -78,9 +77,9 @@ def data(): is_owner=True) m.view_only_membership = f.MembershipFactory(project=m.private_project2, - user=m.other_user, - role__project=m.private_project2, - role__permissions=["view_project"]) + user=m.other_user, + role__project=m.private_project2, + role__permissions=["view_project"]) m.us = f.UserStoryFactory(project=m.private_project2, ref=1) m.task = f.TaskFactory(project=m.private_project2, ref=2) @@ -103,7 +102,7 @@ def test_resolver_list(client, data): results = helper_test_http_method(client, 'get', "{}?project={}".format(url, data.public_project.slug), None, users) assert results == [200, 200, 200, 200, 200] - results = helper_test_http_method(client, 'get', "{}?project={}".format(url,data.private_project1.slug), None, users) + results = helper_test_http_method(client, 'get', "{}?project={}".format(url, data.private_project1.slug), None, users) assert results == [200, 200, 200, 200, 200] results = helper_test_http_method(client, 'get', "{}?project={}".format(url, data.private_project2.slug), None, users) assert results == [401, 403, 403, 200, 200] diff --git a/tests/integration/resources_permissions/test_search_resources.py b/tests/integration/resources_permissions/test_search_resources.py index ef35d050..5bca5dc5 100644 --- a/tests/integration/resources_permissions/test_search_resources.py +++ b/tests/integration/resources_permissions/test_search_resources.py @@ -1,6 +1,5 @@ from django.core.urlresolvers import reverse -from taiga.projects.issues.serializers import IssueSerializer from taiga.permissions.permissions import MEMBERS_PERMISSIONS, ANON_PERMISSIONS, USER_PERMISSIONS from tests import factories as f @@ -42,9 +41,9 @@ def data(): owner=m.project_owner) m.public_membership = f.MembershipFactory(project=m.public_project, - user=m.project_member_with_perms, - role__project=m.public_project, - role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS))) + user=m.project_member_with_perms, + role__project=m.public_project, + role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS))) m.private_membership1 = f.MembershipFactory(project=m.private_project1, user=m.project_member_with_perms, role__project=m.private_project1, diff --git a/tests/integration/resources_permissions/test_storage_resources.py b/tests/integration/resources_permissions/test_storage_resources.py index 07270f92..65c095ed 100644 --- a/tests/integration/resources_permissions/test_storage_resources.py +++ b/tests/integration/resources_permissions/test_storage_resources.py @@ -1,8 +1,6 @@ from django.core.urlresolvers import reverse from taiga.base.utils import json -from taiga.permissions.permissions import MEMBERS_PERMISSIONS, ANON_PERMISSIONS, USER_PERMISSIONS -from taiga.projects.votes.services import add_vote from taiga.userstorage.serializers import StorageEntrySerializer from taiga.userstorage.models import StorageEntry diff --git a/tests/integration/resources_permissions/test_tasks_resources.py b/tests/integration/resources_permissions/test_tasks_resources.py index 7d63db6a..272d0dde 100644 --- a/tests/integration/resources_permissions/test_tasks_resources.py +++ b/tests/integration/resources_permissions/test_tasks_resources.py @@ -46,9 +46,9 @@ def data(): owner=m.project_owner) m.public_membership = f.MembershipFactory(project=m.public_project, - user=m.project_member_with_perms, - role__project=m.public_project, - role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS))) + user=m.project_member_with_perms, + role__project=m.public_project, + role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS))) m.private_membership1 = f.MembershipFactory(project=m.private_project1, user=m.project_member_with_perms, role__project=m.private_project1, @@ -135,7 +135,7 @@ def test_task_update(client, data): data.project_owner ] - with mock.patch.object(OCCResourceMixin, "_validate_and_update_version") as _validate_and_update_version_mock: + with mock.patch.object(OCCResourceMixin, "_validate_and_update_version"): task_data = TaskSerializer(data.public_task).data task_data["subject"] = "test" task_data = json.dumps(task_data) @@ -256,7 +256,7 @@ def test_task_patch(client, data): data.project_owner ] - with mock.patch.object(OCCResourceMixin, "_validate_and_update_version") as _validate_and_update_version_mock: + with mock.patch.object(OCCResourceMixin, "_validate_and_update_version"): patch_data = json.dumps({"subject": "test", "version": data.public_task.version}) results = helper_test_http_method(client, 'patch', public_url, patch_data, users) assert results == [401, 403, 403, 200, 200] diff --git a/tests/integration/resources_permissions/test_timelines_resources.py b/tests/integration/resources_permissions/test_timelines_resources.py index 63948ff8..e33dc043 100644 --- a/tests/integration/resources_permissions/test_timelines_resources.py +++ b/tests/integration/resources_permissions/test_timelines_resources.py @@ -41,9 +41,9 @@ def data(): owner=m.project_owner) m.public_membership = f.MembershipFactory(project=m.public_project, - user=m.project_member_with_perms, - role__project=m.public_project, - role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS))) + user=m.project_member_with_perms, + role__project=m.public_project, + role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS))) m.private_membership1 = f.MembershipFactory(project=m.private_project1, user=m.project_member_with_perms, role__project=m.private_project1, diff --git a/tests/integration/resources_permissions/test_users_resources.py b/tests/integration/resources_permissions/test_users_resources.py index 915dbfa2..0d9bf536 100644 --- a/tests/integration/resources_permissions/test_users_resources.py +++ b/tests/integration/resources_permissions/test_users_resources.py @@ -148,6 +148,7 @@ def test_user_patch(client, data): results = helper_test_http_method(client, 'patch', url, patch_data, users) assert results == [401, 200, 403, 200] + def test_user_action_change_password(client, data): url = reverse('users-change-password') @@ -165,7 +166,6 @@ def test_user_action_change_password(client, data): data.superuser, ] - post_data = json.dumps({"current_password": "test-current-password", "password": "test-password"}) results = helper_test_http_method(client, 'post', url, post_data, users) assert results == [401, 204, 204, 204] @@ -236,6 +236,7 @@ def test_user_action_change_password_from_recovery(client, data): results = helper_test_http_method(client, 'post', url, patch_data, users, reset_token) assert results == [204, 204, 204, 204] + def test_user_action_password_recovery(client, data): url = reverse('users-password-recovery') @@ -252,6 +253,7 @@ def test_user_action_password_recovery(client, data): results = helper_test_http_method(client, 'post', url, patch_data, users) assert results == [200, 200, 200, 200] + def test_user_action_change_email(client, data): url = reverse('users-change-email') diff --git a/tests/integration/resources_permissions/test_userstories_resources.py b/tests/integration/resources_permissions/test_userstories_resources.py index 1b006935..9725ff28 100644 --- a/tests/integration/resources_permissions/test_userstories_resources.py +++ b/tests/integration/resources_permissions/test_userstories_resources.py @@ -46,9 +46,9 @@ def data(): owner=m.project_owner) m.public_membership = f.MembershipFactory(project=m.public_project, - user=m.project_member_with_perms, - role__project=m.public_project, - role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS))) + user=m.project_member_with_perms, + role__project=m.public_project, + role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS))) m.private_membership1 = f.MembershipFactory(project=m.private_project1, user=m.project_member_with_perms, role__project=m.private_project1, @@ -133,7 +133,7 @@ def test_user_story_update(client, data): data.project_owner ] - with mock.patch.object(OCCResourceMixin, "_validate_and_update_version") as _validate_and_update_version_mock: + with mock.patch.object(OCCResourceMixin, "_validate_and_update_version"): user_story_data = UserStorySerializer(data.public_user_story).data user_story_data["subject"] = "test" user_story_data = json.dumps(user_story_data) @@ -239,7 +239,7 @@ def test_user_story_patch(client, data): data.project_owner ] - with mock.patch.object(OCCResourceMixin, "_validate_and_update_version") as _validate_and_update_version_mock: + with mock.patch.object(OCCResourceMixin, "_validate_and_update_version"): patch_data = json.dumps({"subject": "test", "version": data.public_user_story.version}) results = helper_test_http_method(client, 'patch', public_url, patch_data, users) assert results == [401, 403, 403, 200, 200] diff --git a/tests/integration/resources_permissions/test_webhooks_resources.py b/tests/integration/resources_permissions/test_webhooks_resources.py index 9514fc88..63ef52e6 100644 --- a/tests/integration/resources_permissions/test_webhooks_resources.py +++ b/tests/integration/resources_permissions/test_webhooks_resources.py @@ -3,7 +3,6 @@ from django.core.urlresolvers import reverse from taiga.base.utils import json from taiga.webhooks.serializers import WebhookSerializer from taiga.webhooks.models import Webhook -from taiga.webhooks import tasks from tests import factories as f from tests.utils import helper_test_http_method, disconnect_signals, reconnect_signals @@ -187,12 +186,12 @@ def test_webhook_action_test(client, data): with mock.patch('taiga.webhooks.tasks._send_request') as _send_request_mock: results = helper_test_http_method(client, 'post', url1, None, users) assert results == [404, 404, 200] - assert _send_request_mock.called == True + assert _send_request_mock.called is True with mock.patch('taiga.webhooks.tasks._send_request') as _send_request_mock: results = helper_test_http_method(client, 'post', url2, None, users) assert results == [404, 404, 404] - assert _send_request_mock.called == False + assert _send_request_mock.called is False def test_webhooklogs_list(client, data): diff --git a/tests/integration/resources_permissions/test_wiki_resources.py b/tests/integration/resources_permissions/test_wiki_resources.py index 8d0ff278..cf6089b7 100644 --- a/tests/integration/resources_permissions/test_wiki_resources.py +++ b/tests/integration/resources_permissions/test_wiki_resources.py @@ -47,9 +47,9 @@ def data(): owner=m.project_owner) m.public_membership = f.MembershipFactory(project=m.public_project, - user=m.project_member_with_perms, - role__project=m.public_project, - role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS))) + user=m.project_member_with_perms, + role__project=m.public_project, + role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS))) m.private_membership1 = f.MembershipFactory(project=m.private_project1, user=m.project_member_with_perms, role__project=m.private_project1, @@ -124,7 +124,7 @@ def test_wiki_page_update(client, data): data.project_owner ] - with mock.patch.object(OCCResourceMixin, "_validate_and_update_version") as _validate_and_update_version_mock: + with mock.patch.object(OCCResourceMixin, "_validate_and_update_version"): wiki_page_data = WikiPageSerializer(data.public_wiki_page).data wiki_page_data["content"] = "test" wiki_page_data = json.dumps(wiki_page_data) @@ -242,7 +242,7 @@ def test_wiki_page_patch(client, data): data.project_owner ] - with mock.patch.object(OCCResourceMixin, "_validate_and_update_version") as _validate_and_update_version_mock: + with mock.patch.object(OCCResourceMixin, "_validate_and_update_version"): patch_data = json.dumps({"content": "test", "version": data.public_wiki_page.version}) results = helper_test_http_method(client, 'patch', public_url, patch_data, users) assert results == [401, 200, 200, 200, 200] @@ -255,6 +255,7 @@ def test_wiki_page_patch(client, data): results = helper_test_http_method(client, 'patch', private_url2, patch_data, users) assert results == [401, 403, 403, 200, 200] + def test_wiki_page_action_render(client, data): url = reverse('wiki-render') @@ -305,7 +306,7 @@ def test_wiki_link_update(client, data): data.project_owner ] - with mock.patch.object(OCCResourceMixin, "_validate_and_update_version") as _validate_and_update_version_mock: + with mock.patch.object(OCCResourceMixin, "_validate_and_update_version"): wiki_link_data = WikiLinkSerializer(data.public_wiki_link).data wiki_link_data["title"] = "test" wiki_link_data = json.dumps(wiki_link_data) @@ -423,7 +424,7 @@ def test_wiki_link_patch(client, data): data.project_owner ] - with mock.patch.object(OCCResourceMixin, "_validate_and_update_version") as _validate_and_update_version_mock: + with mock.patch.object(OCCResourceMixin, "_validate_and_update_version"): patch_data = json.dumps({"title": "test"}) results = helper_test_http_method(client, 'patch', public_url, patch_data, users) assert results == [401, 200, 200, 200, 200] diff --git a/tests/integration/test_attachments.py b/tests/integration/test_attachments.py index 1aa1ef70..54844385 100644 --- a/tests/integration/test_attachments.py +++ b/tests/integration/test_attachments.py @@ -1,10 +1,8 @@ import pytest from django.core.urlresolvers import reverse -from django.core.files.base import File from django.core.files.uploadedfile import SimpleUploadedFile -from taiga.projects.attachments.serializers import AttachmentSerializer from .. import factories as f pytestmark = pytest.mark.django_db @@ -15,7 +13,7 @@ def test_create_user_story_attachment_without_file(client): Bug test "Don't create attachments without attached_file" """ us = f.UserStoryFactory.create() - membership = f.MembershipFactory(project=us.project, user=us.owner, is_owner=True) + f.MembershipFactory(project=us.project, user=us.owner, is_owner=True) attachment_data = { "description": "test", "attached_file": None, @@ -32,7 +30,7 @@ def test_create_user_story_attachment_without_file(client): def test_create_attachment_on_wrong_project(client): issue1 = f.create_issue() issue2 = f.create_issue(owner=issue1.owner) - membership = f.MembershipFactory(project=issue1.project, user=issue1.owner, is_owner=True) + f.MembershipFactory(project=issue1.project, user=issue1.owner, is_owner=True) assert issue1.owner == issue2.owner assert issue1.project.owner == issue2.project.owner diff --git a/tests/integration/test_feedback.py b/tests/integration/test_feedback.py index 478afc8f..4120e59e 100644 --- a/tests/integration/test_feedback.py +++ b/tests/integration/test_feedback.py @@ -1,7 +1,6 @@ from django.core.urlresolvers import reverse from tests import factories as f -from tests.utils import helper_test_http_method from taiga.base.utils import json diff --git a/tests/integration/test_history.py b/tests/integration/test_history.py index f8f30998..6398fc58 100644 --- a/tests/integration/test_history.py +++ b/tests/integration/test_history.py @@ -16,7 +16,6 @@ # along with this program. If not, see . import pytest -from unittest.mock import MagicMock from unittest.mock import patch from django.core.urlresolvers import reverse @@ -83,6 +82,7 @@ def test_take_two_snapshots_without_changes(): assert qs_created.count() == 1 assert qs_hidden.count() == 0 + def test_take_snapshot_from_deleted_object(): issue = f.IssueFactory.create() @@ -143,7 +143,7 @@ def test_issue_resource_history_test(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) role = f.RoleFactory.create(project=project) - membership = f.MembershipFactory.create(project=project, user=user, role=role, is_owner=True) + f.MembershipFactory.create(project=project, user=user, role=role, is_owner=True) issue = f.IssueFactory.create(owner=user, project=project) mock_path = "taiga.projects.issues.api.IssueViewSet.pre_conditions_on_save" @@ -158,7 +158,7 @@ def test_issue_resource_history_test(client): assert qs_all.count() == 0 - with patch(mock_path) as m: + with patch(mock_path): data = {"subject": "Fooooo", "version": issue.version} response = client.patch(url, json.dumps(data), content_type="application/json") assert response.status_code == 200 @@ -168,7 +168,7 @@ def test_issue_resource_history_test(client): assert qs_changed.count() == 0 assert qs_deleted.count() == 0 - with patch(mock_path) as m: + with patch(mock_path): response = client.delete(url) assert response.status_code == 204 @@ -200,7 +200,7 @@ def test_take_hidden_snapshot(): def test_history_with_only_comment_shouldnot_be_hidden(client): project = f.create_project() us = f.create_userstory(project=project) - membership = f.MembershipFactory.create(project=project, user=project.owner, is_owner=True) + f.MembershipFactory.create(project=project, user=project.owner, is_owner=True) qs_all = HistoryEntry.objects.all() qs_hidden = qs_all.filter(is_hidden=True) @@ -221,14 +221,14 @@ def test_history_with_only_comment_shouldnot_be_hidden(client): def test_delete_comment_by_project_owner(client): project = f.create_project() us = f.create_userstory(project=project) - membership = f.MembershipFactory.create(project=project, user=project.owner, is_owner=True) + f.MembershipFactory.create(project=project, user=project.owner, is_owner=True) key = make_key_from_model_object(us) history_entry = f.HistoryEntryFactory.create(type=HistoryType.change, - comment="testing", - key=key) + comment="testing", + key=key) client.login(project.owner) url = reverse("userstory-history-delete-comment", args=(us.id,)) - url = "%s?id=%s"%(url, history_entry.id) + url = "%s?id=%s" % (url, history_entry.id) response = client.post(url, content_type="application/json") assert 200 == response.status_code, response.status_code diff --git a/tests/integration/test_hooks_bitbucket.py b/tests/integration/test_hooks_bitbucket.py index e5e0416b..4cf3bab8 100644 --- a/tests/integration/test_hooks_bitbucket.py +++ b/tests/integration/test_hooks_bitbucket.py @@ -14,17 +14,14 @@ from taiga.hooks.exceptions import ActionSyntaxException from taiga.projects.issues.models import Issue from taiga.projects.tasks.models import Task from taiga.projects.userstories.models import UserStory -from taiga.projects.models import Membership -from taiga.projects.history.services import get_history_queryset_by_model_instance, take_snapshot -from taiga.projects.notifications.choices import NotifyLevel -from taiga.projects.notifications.models import NotifyPolicy from taiga.projects import services from .. import factories as f pytestmark = pytest.mark.django_db + def test_bad_signature(client): - project=f.ProjectFactory() + project = f.ProjectFactory() f.ProjectModulesConfigFactory(project=project, config={ "bitbucket": { "secret": "tpnIwJDz4e" @@ -41,7 +38,7 @@ def test_bad_signature(client): def test_ok_signature(client): - project=f.ProjectFactory() + project = f.ProjectFactory() f.ProjectModulesConfigFactory(project=project, config={ "bitbucket": { "secret": "tpnIwJDz4e" @@ -57,8 +54,9 @@ def test_ok_signature(client): REMOTE_ADDR=settings.BITBUCKET_VALID_ORIGIN_IPS[0]) assert response.status_code == 204 + def test_invalid_ip(client): - project=f.ProjectFactory() + project = f.ProjectFactory() f.ProjectModulesConfigFactory(project=project, config={ "bitbucket": { "secret": "tpnIwJDz4e" @@ -76,7 +74,7 @@ def test_invalid_ip(client): def test_not_ip_filter(client): - project=f.ProjectFactory() + project = f.ProjectFactory() f.ProjectModulesConfigFactory(project=project, config={ "bitbucket": { "secret": "tpnIwJDz4e", @@ -95,16 +93,16 @@ def test_not_ip_filter(client): def test_push_event_detected(client): - project=f.ProjectFactory() + project = f.ProjectFactory() url = reverse("bitbucket-hook-list") - url = "%s?project=%s"%(url, project.id) + url = "%s?project=%s" % (url, project.id) data = {'payload': ['{"commits": [{"message": "test message"}]}']} BitBucketViewSet._validate_signature = mock.Mock(return_value=True) with mock.patch.object(event_hooks.PushEventHook, "process_event") as process_event_mock: response = client.post(url, urllib.parse.urlencode(data, True), - content_type="application/x-www-form-urlencoded") + content_type="application/x-www-form-urlencoded") assert process_event_mock.call_count == 1 @@ -114,11 +112,11 @@ def test_push_event_detected(client): def test_push_event_issue_processing(client): creation_status = f.IssueStatusFactory() role = f.RoleFactory(project=creation_status.project, permissions=["view_issues"]) - membership = f.MembershipFactory(project=creation_status.project, role=role, user=creation_status.project.owner) + f.MembershipFactory(project=creation_status.project, role=role, user=creation_status.project.owner) new_status = f.IssueStatusFactory(project=creation_status.project) issue = f.IssueFactory.create(status=creation_status, project=creation_status.project, owner=creation_status.project.owner) payload = [ - '{"commits": [{"message": "test message test TG-%s #%s ok bye!"}]}'%(issue.ref, new_status.slug) + '{"commits": [{"message": "test message test TG-%s #%s ok bye!"}]}' % (issue.ref, new_status.slug) ] mail.outbox = [] ev_hook = event_hooks.PushEventHook(issue.project, payload) @@ -131,11 +129,11 @@ def test_push_event_issue_processing(client): def test_push_event_task_processing(client): creation_status = f.TaskStatusFactory() role = f.RoleFactory(project=creation_status.project, permissions=["view_tasks"]) - membership = f.MembershipFactory(project=creation_status.project, role=role, user=creation_status.project.owner) + f.MembershipFactory(project=creation_status.project, role=role, user=creation_status.project.owner) new_status = f.TaskStatusFactory(project=creation_status.project) task = f.TaskFactory.create(status=creation_status, project=creation_status.project, owner=creation_status.project.owner) payload = [ - '{"commits": [{"message": "test message test TG-%s #%s ok bye!"}]}'%(task.ref, new_status.slug) + '{"commits": [{"message": "test message test TG-%s #%s ok bye!"}]}' % (task.ref, new_status.slug) ] mail.outbox = [] ev_hook = event_hooks.PushEventHook(task.project, payload) @@ -148,11 +146,11 @@ def test_push_event_task_processing(client): def test_push_event_user_story_processing(client): creation_status = f.UserStoryStatusFactory() role = f.RoleFactory(project=creation_status.project, permissions=["view_us"]) - membership = f.MembershipFactory(project=creation_status.project, role=role, user=creation_status.project.owner) + f.MembershipFactory(project=creation_status.project, role=role, user=creation_status.project.owner) new_status = f.UserStoryStatusFactory(project=creation_status.project) user_story = f.UserStoryFactory.create(status=creation_status, project=creation_status.project, owner=creation_status.project.owner) payload = [ - '{"commits": [{"message": "test message test TG-%s #%s ok bye!"}]}'%(user_story.ref, new_status.slug) + '{"commits": [{"message": "test message test TG-%s #%s ok bye!"}]}' % (user_story.ref, new_status.slug) ] mail.outbox = [] ev_hook = event_hooks.PushEventHook(user_story.project, payload) @@ -165,11 +163,11 @@ def test_push_event_user_story_processing(client): def test_push_event_processing_case_insensitive(client): creation_status = f.TaskStatusFactory() role = f.RoleFactory(project=creation_status.project, permissions=["view_tasks"]) - membership = f.MembershipFactory(project=creation_status.project, role=role, user=creation_status.project.owner) + f.MembershipFactory(project=creation_status.project, role=role, user=creation_status.project.owner) new_status = f.TaskStatusFactory(project=creation_status.project) task = f.TaskFactory.create(status=creation_status, project=creation_status.project, owner=creation_status.project.owner) payload = [ - '{"commits": [{"message": "test message test tg-%s #%s ok bye!"}]}'%(task.ref, new_status.slug.upper()) + '{"commits": [{"message": "test message test tg-%s #%s ok bye!"}]}' % (task.ref, new_status.slug.upper()) ] mail.outbox = [] ev_hook = event_hooks.PushEventHook(task.project, payload) @@ -182,7 +180,7 @@ def test_push_event_processing_case_insensitive(client): def test_push_event_task_bad_processing_non_existing_ref(client): issue_status = f.IssueStatusFactory() payload = [ - '{"commits": [{"message": "test message test TG-6666666 #%s ok bye!"}]}'%(issue_status.slug) + '{"commits": [{"message": "test message test TG-6666666 #%s ok bye!"}]}' % (issue_status.slug) ] mail.outbox = [] @@ -197,7 +195,7 @@ def test_push_event_task_bad_processing_non_existing_ref(client): def test_push_event_us_bad_processing_non_existing_status(client): user_story = f.UserStoryFactory.create() payload = [ - '{"commits": [{"message": "test message test TG-%s #non-existing-slug ok bye!"}]}'%(user_story.ref) + '{"commits": [{"message": "test message test TG-%s #non-existing-slug ok bye!"}]}' % (user_story.ref) ] mail.outbox = [] @@ -213,7 +211,7 @@ def test_push_event_us_bad_processing_non_existing_status(client): def test_push_event_bad_processing_non_existing_status(client): issue = f.IssueFactory.create() payload = [ - '{"commits": [{"message": "test message test TG-%s #non-existing-slug ok bye!"}]}'%(issue.ref) + '{"commits": [{"message": "test message test TG-%s #non-existing-slug ok bye!"}]}' % (issue.ref) ] mail.outbox = [] @@ -227,7 +225,7 @@ def test_push_event_bad_processing_non_existing_status(client): def test_api_get_project_modules(client): project = f.create_project() - membership = f.MembershipFactory(project=project, user=project.owner, is_owner=True) + f.MembershipFactory(project=project, user=project.owner, is_owner=True) url = reverse("projects-modules", args=(project.id,)) @@ -242,7 +240,7 @@ def test_api_get_project_modules(client): def test_api_patch_project_modules(client): project = f.create_project() - membership = f.MembershipFactory(project=project, user=project.owner, is_owner=True) + f.MembershipFactory(project=project, user=project.owner, is_owner=True) url = reverse("projects-modules", args=(project.id,)) @@ -261,6 +259,7 @@ def test_api_patch_project_modules(client): assert config["bitbucket"]["secret"] == "test_secret" assert config["bitbucket"]["webhooks_url"] != "test_url" + def test_replace_bitbucket_references(): assert event_hooks.replace_bitbucket_references("project-url", "#2") == "[BitBucket#2](project-url/issues/2)" assert event_hooks.replace_bitbucket_references("project-url", "#2 ") == "[BitBucket#2](project-url/issues/2) " diff --git a/tests/integration/test_hooks_github.py b/tests/integration/test_hooks_github.py index 5115be6e..6d85cca4 100644 --- a/tests/integration/test_hooks_github.py +++ b/tests/integration/test_hooks_github.py @@ -23,20 +23,20 @@ pytestmark = pytest.mark.django_db def test_bad_signature(client): - project=f.ProjectFactory() + project = f.ProjectFactory() url = reverse("github-hook-list") - url = "%s?project=%s"%(url, project.id) + url = "%s?project=%s" % (url, project.id) data = {} response = client.post(url, json.dumps(data), - HTTP_X_HUB_SIGNATURE="sha1=badbadbad", - content_type="application/json") + HTTP_X_HUB_SIGNATURE="sha1=badbadbad", + content_type="application/json") response_content = json.loads(response.content.decode("utf-8")) assert response.status_code == 400 assert "Bad signature" in response_content["_error_message"] def test_ok_signature(client): - project=f.ProjectFactory() + project = f.ProjectFactory() f.ProjectModulesConfigFactory(project=project, config={ "github": { "secret": "tpnIwJDz4e" @@ -44,29 +44,29 @@ def test_ok_signature(client): }) url = reverse("github-hook-list") - url = "%s?project=%s"%(url, project.id) + url = "%s?project=%s" % (url, project.id) data = {"test:": "data"} response = client.post(url, json.dumps(data), - HTTP_X_HUB_SIGNATURE="sha1=3c8e83fdaa266f81c036ea0b71e98eb5e054581a", - content_type="application/json") + HTTP_X_HUB_SIGNATURE="sha1=3c8e83fdaa266f81c036ea0b71e98eb5e054581a", + content_type="application/json") assert response.status_code == 204 def test_push_event_detected(client): - project=f.ProjectFactory() + project = f.ProjectFactory() url = reverse("github-hook-list") - url = "%s?project=%s"%(url, project.id) + url = "%s?project=%s" % (url, project.id) data = {"commits": [ - {"message": "test message"}, + {"message": "test message"}, ]} GitHubViewSet._validate_signature = mock.Mock(return_value=True) with mock.patch.object(event_hooks.PushEventHook, "process_event") as process_event_mock: response = client.post(url, json.dumps(data), - HTTP_X_GITHUB_EVENT="push", - content_type="application/json") + HTTP_X_GITHUB_EVENT="push", + content_type="application/json") assert process_event_mock.call_count == 1 @@ -76,14 +76,14 @@ def test_push_event_detected(client): def test_push_event_issue_processing(client): creation_status = f.IssueStatusFactory() role = f.RoleFactory(project=creation_status.project, permissions=["view_issues"]) - membership = f.MembershipFactory(project=creation_status.project, role=role, user=creation_status.project.owner) + f.MembershipFactory(project=creation_status.project, role=role, user=creation_status.project.owner) new_status = f.IssueStatusFactory(project=creation_status.project) issue = f.IssueFactory.create(status=creation_status, project=creation_status.project, owner=creation_status.project.owner) payload = {"commits": [ {"message": """test message test TG-%s #%s ok bye! - """%(issue.ref, new_status.slug)}, + """ % (issue.ref, new_status.slug)}, ]} mail.outbox = [] ev_hook = event_hooks.PushEventHook(issue.project, payload) @@ -96,14 +96,14 @@ def test_push_event_issue_processing(client): def test_push_event_task_processing(client): creation_status = f.TaskStatusFactory() role = f.RoleFactory(project=creation_status.project, permissions=["view_tasks"]) - membership = f.MembershipFactory(project=creation_status.project, role=role, user=creation_status.project.owner) + f.MembershipFactory(project=creation_status.project, role=role, user=creation_status.project.owner) new_status = f.TaskStatusFactory(project=creation_status.project) task = f.TaskFactory.create(status=creation_status, project=creation_status.project, owner=creation_status.project.owner) payload = {"commits": [ {"message": """test message test TG-%s #%s ok bye! - """%(task.ref, new_status.slug)}, + """ % (task.ref, new_status.slug)}, ]} mail.outbox = [] ev_hook = event_hooks.PushEventHook(task.project, payload) @@ -116,14 +116,14 @@ def test_push_event_task_processing(client): def test_push_event_user_story_processing(client): creation_status = f.UserStoryStatusFactory() role = f.RoleFactory(project=creation_status.project, permissions=["view_us"]) - membership = f.MembershipFactory(project=creation_status.project, role=role, user=creation_status.project.owner) + f.MembershipFactory(project=creation_status.project, role=role, user=creation_status.project.owner) new_status = f.UserStoryStatusFactory(project=creation_status.project) user_story = f.UserStoryFactory.create(status=creation_status, project=creation_status.project, owner=creation_status.project.owner) payload = {"commits": [ {"message": """test message test TG-%s #%s ok bye! - """%(user_story.ref, new_status.slug)}, + """ % (user_story.ref, new_status.slug)}, ]} mail.outbox = [] @@ -137,14 +137,14 @@ def test_push_event_user_story_processing(client): def test_push_event_processing_case_insensitive(client): creation_status = f.TaskStatusFactory() role = f.RoleFactory(project=creation_status.project, permissions=["view_tasks"]) - membership = f.MembershipFactory(project=creation_status.project, role=role, user=creation_status.project.owner) + f.MembershipFactory(project=creation_status.project, role=role, user=creation_status.project.owner) new_status = f.TaskStatusFactory(project=creation_status.project) task = f.TaskFactory.create(status=creation_status, project=creation_status.project, owner=creation_status.project.owner) payload = {"commits": [ {"message": """test message test tg-%s #%s ok bye! - """%(task.ref, new_status.slug.upper())}, + """ % (task.ref, new_status.slug.upper())}, ]} mail.outbox = [] ev_hook = event_hooks.PushEventHook(task.project, payload) @@ -160,7 +160,7 @@ def test_push_event_task_bad_processing_non_existing_ref(client): {"message": """test message test TG-6666666 #%s ok bye! - """%(issue_status.slug)}, + """ % (issue_status.slug)}, ]} mail.outbox = [] @@ -178,7 +178,7 @@ def test_push_event_us_bad_processing_non_existing_status(client): {"message": """test message test TG-%s #non-existing-slug ok bye! - """%(user_story.ref)}, + """ % (user_story.ref)}, ]} mail.outbox = [] @@ -197,7 +197,7 @@ def test_push_event_bad_processing_non_existing_status(client): {"message": """test message test TG-%s #non-existing-slug ok bye! - """%(issue.ref)}, + """ % (issue.ref)}, ]} mail.outbox = [] @@ -244,6 +244,7 @@ def test_issues_event_opened_issue(client): assert Issue.objects.count() == 2 assert len(mail.outbox) == 1 + def test_issues_event_other_than_opened_issue(client): issue = f.IssueFactory.create() issue.project.default_issue_status = issue.status @@ -271,6 +272,7 @@ def test_issues_event_other_than_opened_issue(client): assert Issue.objects.count() == 1 assert len(mail.outbox) == 0 + def test_issues_event_bad_issue(client): issue = f.IssueFactory.create() issue.project.default_issue_status = issue.status @@ -301,7 +303,7 @@ def test_issues_event_bad_issue(client): def test_issue_comment_event_on_existing_issue_task_and_us(client): project = f.ProjectFactory() role = f.RoleFactory(project=project, permissions=["view_tasks", "view_issues", "view_us"]) - membership = f.MembershipFactory(project=project, role=role, user=project.owner) + f.MembershipFactory(project=project, role=role, user=project.owner) user = f.UserFactory() issue = f.IssueFactory.create(external_reference=["github", "http://github.com/test/project/issues/11"], owner=project.owner, project=project) @@ -412,7 +414,7 @@ def test_issues_event_bad_comment(client): def test_api_get_project_modules(client): project = f.create_project() - membership = f.MembershipFactory(project=project, user=project.owner, is_owner=True) + f.MembershipFactory(project=project, user=project.owner, is_owner=True) url = reverse("projects-modules", args=(project.id,)) @@ -427,7 +429,7 @@ def test_api_get_project_modules(client): def test_api_patch_project_modules(client): project = f.create_project() - membership = f.MembershipFactory(project=project, user=project.owner, is_owner=True) + f.MembershipFactory(project=project, user=project.owner, is_owner=True) url = reverse("projects-modules", args=(project.id,)) @@ -446,6 +448,7 @@ def test_api_patch_project_modules(client): assert config["github"]["secret"] == "test_secret" assert config["github"]["webhooks_url"] != "test_url" + def test_replace_github_references(): assert event_hooks.replace_github_references("project-url", "#2") == "[GitHub#2](project-url/issues/2)" assert event_hooks.replace_github_references("project-url", "#2 ") == "[GitHub#2](project-url/issues/2) " diff --git a/tests/integration/test_hooks_gitlab.py b/tests/integration/test_hooks_gitlab.py index 888d745a..54a44d6d 100644 --- a/tests/integration/test_hooks_gitlab.py +++ b/tests/integration/test_hooks_gitlab.py @@ -13,7 +13,6 @@ from taiga.projects.issues.models import Issue from taiga.projects.tasks.models import Task from taiga.projects.userstories.models import UserStory from taiga.projects.models import Membership -from taiga.projects.history.services import get_history_queryset_by_model_instance, take_snapshot from taiga.projects.notifications.choices import NotifyLevel from taiga.projects.notifications.models import NotifyPolicy from taiga.projects import services @@ -21,8 +20,9 @@ from .. import factories as f pytestmark = pytest.mark.django_db + def test_bad_signature(client): - project=f.ProjectFactory() + project = f.ProjectFactory() f.ProjectModulesConfigFactory(project=project, config={ "gitlab": { "secret": "tpnIwJDz4e" @@ -39,7 +39,7 @@ def test_bad_signature(client): def test_ok_signature(client): - project=f.ProjectFactory() + project = f.ProjectFactory() f.ProjectModulesConfigFactory(project=project, config={ "gitlab": { "secret": "tpnIwJDz4e", @@ -59,7 +59,7 @@ def test_ok_signature(client): def test_invalid_ip(client): - project=f.ProjectFactory() + project = f.ProjectFactory() f.ProjectModulesConfigFactory(project=project, config={ "gitlab": { "secret": "tpnIwJDz4e", @@ -79,7 +79,7 @@ def test_invalid_ip(client): def test_not_ip_filter(client): - project=f.ProjectFactory() + project = f.ProjectFactory() f.ProjectModulesConfigFactory(project=project, config={ "gitlab": { "secret": "tpnIwJDz4e", @@ -99,19 +99,19 @@ def test_not_ip_filter(client): def test_push_event_detected(client): - project=f.ProjectFactory() + project = f.ProjectFactory() url = reverse("gitlab-hook-list") - url = "%s?project=%s"%(url, project.id) + url = "%s?project=%s" % (url, project.id) data = {"commits": [ - {"message": "test message"}, + {"message": "test message"}, ]} GitLabViewSet._validate_signature = mock.Mock(return_value=True) with mock.patch.object(event_hooks.PushEventHook, "process_event") as process_event_mock: response = client.post(url, json.dumps(data), - HTTP_X_GITHUB_EVENT="push", - content_type="application/json") + HTTP_X_GITHUB_EVENT="push", + content_type="application/json") assert process_event_mock.call_count == 1 @@ -121,14 +121,14 @@ def test_push_event_detected(client): def test_push_event_issue_processing(client): creation_status = f.IssueStatusFactory() role = f.RoleFactory(project=creation_status.project, permissions=["view_issues"]) - membership = f.MembershipFactory(project=creation_status.project, role=role, user=creation_status.project.owner) + f.MembershipFactory(project=creation_status.project, role=role, user=creation_status.project.owner) new_status = f.IssueStatusFactory(project=creation_status.project) issue = f.IssueFactory.create(status=creation_status, project=creation_status.project, owner=creation_status.project.owner) payload = {"commits": [ {"message": """test message test TG-%s #%s ok bye! - """%(issue.ref, new_status.slug)}, + """ % (issue.ref, new_status.slug)}, ]} mail.outbox = [] ev_hook = event_hooks.PushEventHook(issue.project, payload) @@ -141,14 +141,14 @@ def test_push_event_issue_processing(client): def test_push_event_task_processing(client): creation_status = f.TaskStatusFactory() role = f.RoleFactory(project=creation_status.project, permissions=["view_tasks"]) - membership = f.MembershipFactory(project=creation_status.project, role=role, user=creation_status.project.owner) + f.MembershipFactory(project=creation_status.project, role=role, user=creation_status.project.owner) new_status = f.TaskStatusFactory(project=creation_status.project) task = f.TaskFactory.create(status=creation_status, project=creation_status.project, owner=creation_status.project.owner) payload = {"commits": [ {"message": """test message test TG-%s #%s ok bye! - """%(task.ref, new_status.slug)}, + """ % (task.ref, new_status.slug)}, ]} mail.outbox = [] ev_hook = event_hooks.PushEventHook(task.project, payload) @@ -161,14 +161,14 @@ def test_push_event_task_processing(client): def test_push_event_user_story_processing(client): creation_status = f.UserStoryStatusFactory() role = f.RoleFactory(project=creation_status.project, permissions=["view_us"]) - membership = f.MembershipFactory(project=creation_status.project, role=role, user=creation_status.project.owner) + f.MembershipFactory(project=creation_status.project, role=role, user=creation_status.project.owner) new_status = f.UserStoryStatusFactory(project=creation_status.project) user_story = f.UserStoryFactory.create(status=creation_status, project=creation_status.project, owner=creation_status.project.owner) payload = {"commits": [ {"message": """test message test TG-%s #%s ok bye! - """%(user_story.ref, new_status.slug)}, + """ % (user_story.ref, new_status.slug)}, ]} mail.outbox = [] @@ -182,14 +182,14 @@ def test_push_event_user_story_processing(client): def test_push_event_processing_case_insensitive(client): creation_status = f.TaskStatusFactory() role = f.RoleFactory(project=creation_status.project, permissions=["view_tasks"]) - membership = f.MembershipFactory(project=creation_status.project, role=role, user=creation_status.project.owner) + f.MembershipFactory(project=creation_status.project, role=role, user=creation_status.project.owner) new_status = f.TaskStatusFactory(project=creation_status.project) task = f.TaskFactory.create(status=creation_status, project=creation_status.project, owner=creation_status.project.owner) payload = {"commits": [ {"message": """test message test tg-%s #%s ok bye! - """%(task.ref, new_status.slug.upper())}, + """ % (task.ref, new_status.slug.upper())}, ]} mail.outbox = [] ev_hook = event_hooks.PushEventHook(task.project, payload) @@ -205,7 +205,7 @@ def test_push_event_task_bad_processing_non_existing_ref(client): {"message": """test message test TG-6666666 #%s ok bye! - """%(issue_status.slug)}, + """ % (issue_status.slug)}, ]} mail.outbox = [] @@ -223,7 +223,7 @@ def test_push_event_us_bad_processing_non_existing_status(client): {"message": """test message test TG-%s #non-existing-slug ok bye! - """%(user_story.ref)}, + """ % (user_story.ref)}, ]} mail.outbox = [] @@ -242,7 +242,7 @@ def test_push_event_bad_processing_non_existing_status(client): {"message": """test message test TG-%s #non-existing-slug ok bye! - """%(issue.ref)}, + """ % (issue.ref)}, ]} mail.outbox = [] @@ -342,7 +342,7 @@ def test_issues_event_bad_issue(client): def test_api_get_project_modules(client): project = f.create_project() - membership = f.MembershipFactory(project=project, user=project.owner, is_owner=True) + f.MembershipFactory(project=project, user=project.owner, is_owner=True) url = reverse("projects-modules", args=(project.id,)) @@ -357,7 +357,7 @@ def test_api_get_project_modules(client): def test_api_patch_project_modules(client): project = f.create_project() - membership = f.MembershipFactory(project=project, user=project.owner, is_owner=True) + f.MembershipFactory(project=project, user=project.owner, is_owner=True) url = reverse("projects-modules", args=(project.id,)) @@ -376,6 +376,7 @@ def test_api_patch_project_modules(client): assert config["gitlab"]["secret"] == "test_secret" assert config["gitlab"]["webhooks_url"] != "test_url" + def test_replace_gitlab_references(): assert event_hooks.replace_gitlab_references("project-url", "#2") == "[GitLab#2](project-url/issues/2)" assert event_hooks.replace_gitlab_references("project-url", "#2 ") == "[GitLab#2](project-url/issues/2) " diff --git a/tests/integration/test_importer_api.py b/tests/integration/test_importer_api.py index 14fd299e..6236f80f 100644 --- a/tests/integration/test_importer_api.py +++ b/tests/integration/test_importer_api.py @@ -16,7 +16,6 @@ import pytest import base64 -import datetime from django.core.urlresolvers import reverse from django.core.files.base import ContentFile @@ -30,9 +29,6 @@ from taiga.projects.userstories.models import UserStory from taiga.projects.tasks.models import Task from taiga.projects.wiki.models import WikiPage -from taiga.export_import.service import project_to_dict -from taiga.export_import.dump_service import dict_to_project - pytestmark = pytest.mark.django_db @@ -46,6 +42,7 @@ def test_invalid_project_import(client): response = client.post(url, json.dumps(data), content_type="application/json") assert response.status_code == 400 + def test_valid_project_import_without_extra_data(client): user = f.UserFactory.create() client.login(user) @@ -68,6 +65,7 @@ def test_valid_project_import_without_extra_data(client): assert all(map(lambda x: len(response_data[x]) == 0, must_empty_children)) assert response_data["owner"] == user.email + def test_valid_project_import_with_not_existing_memberships(client): user = f.UserFactory.create() client.login(user) @@ -89,6 +87,7 @@ def test_valid_project_import_with_not_existing_memberships(client): # The new membership and the owner membership assert len(response_data["memberships"]) == 2 + def test_valid_project_import_with_extra_data(client): user = f.UserFactory.create() client.login(user) @@ -142,6 +141,7 @@ def test_valid_project_import_with_extra_data(client): assert all(map(lambda x: len(response_data[x]) == 1, must_one_instance_children)) assert response_data["owner"] == user.email + def test_invalid_project_import_with_extra_data(client): user = f.UserFactory.create() client.login(user) @@ -150,14 +150,14 @@ def test_invalid_project_import_with_extra_data(client): data = { "name": "Imported project", "description": "Imported project", - "roles": [{ }], - "us_statuses": [{ }], - "severities": [{ }], - "priorities": [{ }], - "points": [{ }], - "issue_types": [{ }], - "task_statuses": [{ }], - "issue_statuses": [{ }], + "roles": [{}], + "us_statuses": [{}], + "severities": [{}], + "priorities": [{}], + "points": [{}], + "issue_types": [{}], + "task_statuses": [{}], + "issue_statuses": [{}], } response = client.post(url, json.dumps(data), content_type="application/json") @@ -166,10 +166,11 @@ def test_invalid_project_import_with_extra_data(client): assert len(response_data) == 8 assert Project.objects.filter(slug="imported-project").count() == 0 + def test_invalid_issue_import(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) client.login(user) url = reverse("importer-issue", args=[project.pk]) @@ -178,10 +179,11 @@ def test_invalid_issue_import(client): response = client.post(url, json.dumps(data), content_type="application/json") assert response.status_code == 400 + def test_valid_user_story_import(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) project.default_us_status = f.UserStoryStatusFactory.create(project=project) project.save() client.login(user) @@ -202,7 +204,7 @@ def test_valid_user_story_import(client): def test_valid_issue_import_without_extra_data(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) project.default_issue_type = f.IssueTypeFactory.create(project=project) project.default_issue_status = f.IssueStatusFactory.create(project=project) project.default_severity = f.SeverityFactory.create(project=project) @@ -221,10 +223,11 @@ def test_valid_issue_import_without_extra_data(client): assert response_data["owner"] == user.email assert response_data["ref"] is not None + def test_valid_issue_import_with_extra_data(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) project.default_issue_type = f.IssueTypeFactory.create(project=project) project.default_issue_status = f.IssueStatusFactory.create(project=project) project.default_severity = f.SeverityFactory.create(project=project) @@ -254,10 +257,11 @@ def test_valid_issue_import_with_extra_data(client): assert response_data["ref"] is not None assert response_data["finished_date"] == "2014-10-24T00:00:00+0000" + def test_invalid_issue_import_with_extra_data(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) project.default_issue_type = f.IssueTypeFactory.create(project=project) project.default_issue_status = f.IssueStatusFactory.create(project=project) project.default_severity = f.SeverityFactory.create(project=project) @@ -269,7 +273,7 @@ def test_invalid_issue_import_with_extra_data(client): data = { "subject": "Imported issue", "description": "Imported issue", - "attachments": [{ }], + "attachments": [{}], } response = client.post(url, json.dumps(data), content_type="application/json") @@ -278,10 +282,11 @@ def test_invalid_issue_import_with_extra_data(client): assert len(response_data) == 1 assert Issue.objects.filter(subject="Imported issue").count() == 0 + def test_invalid_issue_import_with_bad_choices(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) project.default_issue_type = f.IssueTypeFactory.create(project=project) project.default_issue_status = f.IssueStatusFactory.create(project=project) project.default_severity = f.SeverityFactory.create(project=project) @@ -337,10 +342,11 @@ def test_invalid_issue_import_with_bad_choices(client): response_data = json.loads(response.content.decode("utf-8")) assert len(response_data) == 1 + def test_invalid_us_import(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) client.login(user) url = reverse("importer-us", args=[project.pk]) @@ -349,10 +355,11 @@ def test_invalid_us_import(client): response = client.post(url, json.dumps(data), content_type="application/json") assert response.status_code == 400 + def test_valid_us_import_without_extra_data(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) project.default_us_status = f.UserStoryStatusFactory.create(project=project) project.save() client.login(user) @@ -368,10 +375,11 @@ def test_valid_us_import_without_extra_data(client): assert response_data["owner"] == user.email assert response_data["ref"] is not None + def test_valid_us_import_with_extra_data(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) project.default_us_status = f.UserStoryStatusFactory.create(project=project) project.save() client.login(user) @@ -396,10 +404,11 @@ def test_valid_us_import_with_extra_data(client): assert response_data["owner"] == user.email assert response_data["ref"] is not None + def test_invalid_us_import_with_extra_data(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) project.default_us_status = f.UserStoryStatusFactory.create(project=project) project.save() client.login(user) @@ -408,7 +417,7 @@ def test_invalid_us_import_with_extra_data(client): data = { "subject": "Imported us", "description": "Imported us", - "attachments": [{ }], + "attachments": [{}], } response = client.post(url, json.dumps(data), content_type="application/json") @@ -417,10 +426,11 @@ def test_invalid_us_import_with_extra_data(client): assert len(response_data) == 1 assert UserStory.objects.filter(subject="Imported us").count() == 0 + def test_invalid_us_import_with_bad_choices(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) project.default_us_status = f.UserStoryStatusFactory.create(project=project) project.save() client.login(user) @@ -437,10 +447,11 @@ def test_invalid_us_import_with_bad_choices(client): response_data = json.loads(response.content.decode("utf-8")) assert len(response_data) == 1 + def test_invalid_task_import(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) client.login(user) url = reverse("importer-task", args=[project.pk]) @@ -449,10 +460,11 @@ def test_invalid_task_import(client): response = client.post(url, json.dumps(data), content_type="application/json") assert response.status_code == 400 + def test_valid_task_import_without_extra_data(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) project.default_task_status = f.TaskStatusFactory.create(project=project) project.save() client.login(user) @@ -468,10 +480,11 @@ def test_valid_task_import_without_extra_data(client): assert response_data["owner"] == user.email assert response_data["ref"] is not None + def test_valid_task_import_with_extra_data(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) project.default_task_status = f.TaskStatusFactory.create(project=project) project.save() client.login(user) @@ -496,10 +509,11 @@ def test_valid_task_import_with_extra_data(client): assert response_data["owner"] == user.email assert response_data["ref"] is not None + def test_invalid_task_import_with_extra_data(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) project.default_task_status = f.TaskStatusFactory.create(project=project) project.save() client.login(user) @@ -508,7 +522,7 @@ def test_invalid_task_import_with_extra_data(client): data = { "subject": "Imported task", "description": "Imported task", - "attachments": [{ }], + "attachments": [{}], } response = client.post(url, json.dumps(data), content_type="application/json") @@ -517,10 +531,11 @@ def test_invalid_task_import_with_extra_data(client): assert len(response_data) == 1 assert Task.objects.filter(subject="Imported task").count() == 0 + def test_invalid_task_import_with_bad_choices(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) project.default_task_status = f.TaskStatusFactory.create(project=project) project.save() client.login(user) @@ -537,10 +552,11 @@ def test_invalid_task_import_with_bad_choices(client): response_data = json.loads(response.content.decode("utf-8")) assert len(response_data) == 1 + def test_valid_task_with_user_story(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) project.default_task_status = f.TaskStatusFactory.create(project=project) us = f.UserStoryFactory.create(project=project) project.save() @@ -557,10 +573,11 @@ def test_valid_task_with_user_story(client): assert response.status_code == 201 assert us.tasks.all().count() == 1 + def test_invalid_wiki_page_import(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) client.login(user) url = reverse("importer-wiki-page", args=[project.pk]) @@ -569,10 +586,11 @@ def test_invalid_wiki_page_import(client): response = client.post(url, json.dumps(data), content_type="application/json") assert response.status_code == 400 + def test_valid_wiki_page_import_without_extra_data(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) client.login(user) url = reverse("importer-wiki-page", args=[project.pk]) @@ -585,10 +603,11 @@ def test_valid_wiki_page_import_without_extra_data(client): response_data = json.loads(response.content.decode("utf-8")) assert response_data["owner"] == user.email + def test_valid_wiki_page_import_with_extra_data(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) client.login(user) url = reverse("importer-wiki-page", args=[project.pk]) @@ -610,17 +629,18 @@ def test_valid_wiki_page_import_with_extra_data(client): assert len(response_data["attachments"]) == 1 assert response_data["owner"] == user.email + def test_invalid_wiki_page_import_with_extra_data(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) client.login(user) url = reverse("importer-wiki-page", args=[project.pk]) data = { "slug": "imported-wiki-page", "content": "Imported wiki_page", - "attachments": [{ }], + "attachments": [{}], } response = client.post(url, json.dumps(data), content_type="application/json") @@ -629,10 +649,11 @@ def test_invalid_wiki_page_import_with_extra_data(client): assert len(response_data) == 1 assert WikiPage.objects.filter(slug="imported-wiki-page").count() == 0 + def test_invalid_wiki_link_import(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) client.login(user) url = reverse("importer-wiki-link", args=[project.pk]) @@ -641,10 +662,11 @@ def test_invalid_wiki_link_import(client): response = client.post(url, json.dumps(data), content_type="application/json") assert response.status_code == 400 + def test_valid_wiki_link_import(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) client.login(user) url = reverse("importer-wiki-link", args=[project.pk]) @@ -655,12 +677,13 @@ def test_valid_wiki_link_import(client): response = client.post(url, json.dumps(data), content_type="application/json") assert response.status_code == 201 - response_data = json.loads(response.content.decode("utf-8")) + json.loads(response.content.decode("utf-8")) + def test_invalid_milestone_import(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) client.login(user) url = reverse("importer-milestone", args=[project.pk]) @@ -669,10 +692,11 @@ def test_invalid_milestone_import(client): response = client.post(url, json.dumps(data), content_type="application/json") assert response.status_code == 400 + def test_valid_milestone_import(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) client.login(user) url = reverse("importer-milestone", args=[project.pk]) @@ -684,12 +708,13 @@ def test_valid_milestone_import(client): response = client.post(url, json.dumps(data), content_type="application/json") assert response.status_code == 201 - response_data = json.loads(response.content.decode("utf-8")) + json.loads(response.content.decode("utf-8")) + def test_milestone_import_duplicated_milestone(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory(project=project, user=user, is_owner=True) + f.MembershipFactory(project=project, user=user, is_owner=True) client.login(user) url = reverse("importer-milestone", args=[project.pk]) @@ -705,6 +730,7 @@ def test_milestone_import_duplicated_milestone(client): response_data = json.loads(response.content.decode("utf-8")) assert response_data["milestones"][0]["name"][0] == "Name duplicated for the project" + def test_invalid_dump_import(client): user = f.UserFactory.create() client.login(user) @@ -719,6 +745,7 @@ def test_invalid_dump_import(client): response_data = json.loads(response.content.decode("utf-8")) assert response_data["_error_message"] == "Invalid dump format" + def test_valid_dump_import_with_celery_disabled(client, settings): settings.CELERY_ENABLED = False @@ -740,6 +767,7 @@ def test_valid_dump_import_with_celery_disabled(client, settings): assert "id" in response_data assert response_data["name"] == "Valid project" + def test_valid_dump_import_with_celery_enabled(client, settings): settings.CELERY_ENABLED = True @@ -760,6 +788,7 @@ def test_valid_dump_import_with_celery_enabled(client, settings): response_data = json.loads(response.content.decode("utf-8")) assert "import_id" in response_data + def test_dump_import_duplicated_project(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) @@ -780,6 +809,7 @@ def test_dump_import_duplicated_project(client): assert response_data["name"] == "Test import" assert response_data["slug"] == "{}-test-import".format(user.username) + def test_dump_import_throttling(client, settings): settings.REST_FRAMEWORK["DEFAULT_THROTTLE_RATES"]["import-dump-mode"] = "1/minute" diff --git a/tests/integration/test_issues.py b/tests/integration/test_issues.py index c415b492..daee511a 100644 --- a/tests/integration/test_issues.py +++ b/tests/integration/test_issues.py @@ -45,7 +45,7 @@ def test_update_issues_order_in_bulk(): def test_api_create_issues_in_bulk(client): project = f.create_project() - membership = f.MembershipFactory(project=project, user=project.owner, is_owner=True) + f.MembershipFactory(project=project, user=project.owner, is_owner=True) url = reverse("issues-bulk-create") @@ -86,6 +86,7 @@ def test_api_filter_by_text_1(client): assert response.status_code == 200 assert number_of_issues == 1 + def test_api_filter_by_text_2(client): user = f.UserFactory(is_superuser=True) f.create_issue(owner=user) @@ -100,6 +101,7 @@ def test_api_filter_by_text_2(client): assert response.status_code == 200 assert number_of_issues == 1 + def test_api_filter_by_text_3(client): user = f.UserFactory(is_superuser=True) f.create_issue(owner=user) @@ -114,6 +116,7 @@ def test_api_filter_by_text_3(client): assert response.status_code == 200 assert number_of_issues == 2 + def test_api_filter_by_text_4(client): user = f.UserFactory(is_superuser=True) f.create_issue(owner=user) @@ -128,6 +131,7 @@ def test_api_filter_by_text_4(client): assert response.status_code == 200 assert number_of_issues == 0 + def test_api_filter_by_text_5(client): user = f.UserFactory(is_superuser=True) f.create_issue(owner=user) diff --git a/tests/integration/test_memberships.py b/tests/integration/test_memberships.py index 90fd1e97..9805006d 100644 --- a/tests/integration/test_memberships.py +++ b/tests/integration/test_memberships.py @@ -34,7 +34,7 @@ def test_api_create_bulk_members(client): joseph = f.UserFactory.create() tester = f.RoleFactory(project=project, name="Tester") gamer = f.RoleFactory(project=project, name="Gamer") - membership = f.MembershipFactory(project=project, user=project.owner, is_owner=True) + f.MembershipFactory(project=project, user=project.owner, is_owner=True) url = reverse("memberships-bulk-create") @@ -52,10 +52,11 @@ def test_api_create_bulk_members(client): assert response.data[0]["email"] == john.email assert response.data[1]["email"] == joseph.email + def test_api_create_bulk_members_with_extra_text(client, outbox): project = f.ProjectFactory() tester = f.RoleFactory(project=project, name="Tester") - membership = f.MembershipFactory(project=project, user=project.owner, is_owner=True) + f.MembershipFactory(project=project, user=project.owner, is_owner=True) url = reverse("memberships-bulk-create") invitation_extra_text = "this is a not so random invitation text" @@ -77,9 +78,10 @@ def test_api_create_bulk_members_with_extra_text(client, outbox): assert message.to == ["john@email.com"] assert "this is a not so random invitation text" in message.body + def test_api_resend_invitation(client, outbox): invitation = f.create_invitation() - membership = f.MembershipFactory(project=invitation.project, user=invitation.project.owner, is_owner=True) + f.MembershipFactory(project=invitation.project, user=invitation.project.owner, is_owner=True) url = reverse("memberships-resend-invitation", kwargs={"pk": invitation.pk}) client.login(invitation.project.owner) @@ -94,7 +96,7 @@ def test_api_invite_existing_user(client, outbox): "Should create the invitation linked to that user" user = f.UserFactory.create() role = f.RoleFactory.create() - membership = f.MembershipFactory(project=role.project, user=role.project.owner, is_owner=True) + f.MembershipFactory(project=role.project, user=role.project.owner, is_owner=True) client.login(role.project.owner) @@ -189,7 +191,7 @@ def test_api_delete_membership(client): def test_api_delete_membership_without_user(client): membership_owner = f.MembershipFactory(is_owner=True) membership_without_user_one = f.MembershipFactory(project=membership_owner.project, user=None) - membership_without_user_two = f.MembershipFactory(project=membership_owner.project, user=None) + f.MembershipFactory(project=membership_owner.project, user=None) client.login(membership_owner.user) url = reverse("memberships-detail", args=[membership_without_user_one.id]) response = client.json.delete(url) diff --git a/tests/integration/test_milestones.py b/tests/integration/test_milestones.py index ab980e35..1b3410a1 100644 --- a/tests/integration/test_milestones.py +++ b/tests/integration/test_milestones.py @@ -16,9 +16,7 @@ # along with this program. If not, see . import pytest -from unittest.mock import patch, Mock -from django.apps import apps from django.core.urlresolvers import reverse from taiga.base.utils import json @@ -29,13 +27,14 @@ from .. import factories as f pytestmark = pytest.mark.django_db + def test_update_milestone_with_userstories_list(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) role = f.RoleFactory.create(project=project) - member = f.MembershipFactory.create(project=project, user=user, role=role, is_owner=True) + f.MembershipFactory.create(project=project, user=user, role=role, is_owner=True) sprint = f.MilestoneFactory.create(project=project, owner=user) - points = f.PointsFactory.create(project=project, value=None) + f.PointsFactory.create(project=project, value=None) us = f.UserStoryFactory.create(project=project, owner=user) url = reverse("milestones-detail", args=[sprint.pk]) diff --git a/tests/integration/test_neighbors.py b/tests/integration/test_neighbors.py index 6d3b7b02..33ee8d06 100644 --- a/tests/integration/test_neighbors.py +++ b/tests/integration/test_neighbors.py @@ -15,8 +15,6 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from functools import partial - import pytest from taiga.projects.userstories.models import UserStory diff --git a/tests/integration/test_notifications.py b/tests/integration/test_notifications.py index f100af22..5e5986d3 100644 --- a/tests/integration/test_notifications.py +++ b/tests/integration/test_notifications.py @@ -45,7 +45,7 @@ def mail(): def test_attach_notify_policy_to_project_queryset(): project1 = f.ProjectFactory.create() - project2 = f.ProjectFactory.create() + f.ProjectFactory.create() qs = project1.__class__.objects.order_by("id") qs = services.attach_notify_policy_to_project_queryset(project1.owner, qs) @@ -115,7 +115,7 @@ def test_users_to_notify(): policy_model_cls = apps.get_model("notifications", "NotifyPolicy") policy1 = policy_model_cls.objects.get(user=member1.user) - policy2 = policy_model_cls.objects.get(user=member2.user) + policy_model_cls.objects.get(user=member2.user) policy3 = policy_model_cls.objects.get(user=member3.user) history = MagicMock() @@ -197,7 +197,6 @@ def test_send_notifications_using_services_method(settings, mail): services.send_notifications(issue, history=history_delete) - # Userstories us = f.UserStoryFactory.create(project=project, owner=member2.user) take_snapshot(us) @@ -240,6 +239,7 @@ def test_send_notifications_using_services_method(settings, mail): services.process_sync_notifications() assert len(mail.outbox) == 12 + def test_resource_notification_test(client, settings, mail): settings.CHANGE_NOTIFICATIONS_MIN_INTERVAL = 1 @@ -247,8 +247,8 @@ def test_resource_notification_test(client, settings, mail): user2 = f.UserFactory.create() project = f.ProjectFactory.create(owner=user1) role = f.RoleFactory.create(project=project, permissions=["view_issues"]) - member1 = f.MembershipFactory.create(project=project, user=user1, role=role, is_owner=True) - member2 = f.MembershipFactory.create(project=project, user=user2, role=role) + f.MembershipFactory.create(project=project, user=user1, role=role, is_owner=True) + f.MembershipFactory.create(project=project, user=user2, role=role) issue = f.IssueFactory.create(owner=user2, project=project) mock_path = "taiga.projects.issues.api.IssueViewSet.pre_conditions_on_save" @@ -256,7 +256,7 @@ def test_resource_notification_test(client, settings, mail): client.login(user1) - with patch(mock_path) as m: + with patch(mock_path): data = {"subject": "Fooooo", "version": issue.version} response = client.patch(url, json.dumps(data), content_type="application/json") assert response.status_code == 200 @@ -267,7 +267,7 @@ def test_resource_notification_test(client, settings, mail): assert len(mail.outbox) == 1 assert models.HistoryChangeNotification.objects.count() == 0 - with patch(mock_path) as m: + with patch(mock_path): response = client.delete(url) assert response.status_code == 204 assert len(mail.outbox) == 1 @@ -285,8 +285,8 @@ def test_watchers_assignation_for_issue(client): project2 = f.ProjectFactory.create(owner=user2) role1 = f.RoleFactory.create(project=project1) role2 = f.RoleFactory.create(project=project2) - member1 = f.MembershipFactory.create(project=project1, user=user1, role=role1, is_owner=True) - member2 = f.MembershipFactory.create(project=project2, user=user2, role=role2) + f.MembershipFactory.create(project=project1, user=user1, role=role1, is_owner=True) + f.MembershipFactory.create(project=project2, user=user2, role=role2) client.login(user1) @@ -298,7 +298,6 @@ def test_watchers_assignation_for_issue(client): response = client.json.patch(url, json.dumps(data)) assert response.status_code == 200, response.content - issue = f.create_issue(project=project1, owner=user1) data = {"version": issue.version, "watchers": [user1.pk, user2.pk]} @@ -338,8 +337,8 @@ def test_watchers_assignation_for_task(client): project2 = f.ProjectFactory.create(owner=user2) role1 = f.RoleFactory.create(project=project1) role2 = f.RoleFactory.create(project=project2) - member1 = f.MembershipFactory.create(project=project1, user=user1, role=role1, is_owner=True) - member2 = f.MembershipFactory.create(project=project2, user=user2, role=role2) + f.MembershipFactory.create(project=project1, user=user1, role=role1, is_owner=True) + f.MembershipFactory.create(project=project2, user=user2, role=role2) client.login(user1) @@ -351,7 +350,6 @@ def test_watchers_assignation_for_task(client): response = client.json.patch(url, json.dumps(data)) assert response.status_code == 200, response.content - task = f.create_task(project=project1, owner=user1) data = {"version": task.version, "watchers": [user1.pk, user2.pk]} @@ -391,8 +389,8 @@ def test_watchers_assignation_for_us(client): project2 = f.ProjectFactory.create(owner=user2) role1 = f.RoleFactory.create(project=project1) role2 = f.RoleFactory.create(project=project2) - member1 = f.MembershipFactory.create(project=project1, user=user1, role=role1, is_owner=True) - member2 = f.MembershipFactory.create(project=project2, user=user2, role=role2) + f.MembershipFactory.create(project=project1, user=user1, role=role1, is_owner=True) + f.MembershipFactory.create(project=project2, user=user2, role=role2) client.login(user1) @@ -404,7 +402,6 @@ def test_watchers_assignation_for_us(client): response = client.json.patch(url, json.dumps(data)) assert response.status_code == 200 - us = f.create_userstory(project=project1, owner=user1) data = {"version": us.version, "watchers": [user1.pk, user2.pk]} @@ -440,7 +437,6 @@ def test_watchers_assignation_for_us(client): def test_retrieve_notify_policies_by_anonymous_user(client): project = f.ProjectFactory.create() - policy_model_cls = apps.get_model("notifications", "NotifyPolicy") policy = services.get_notify_policy(project, project.owner) url = reverse("notifications-detail", args=[policy.pk]) diff --git a/tests/integration/test_occ.py b/tests/integration/test_occ.py index 4cd408b6..0e6eb974 100644 --- a/tests/integration/test_occ.py +++ b/tests/integration/test_occ.py @@ -20,10 +20,6 @@ from unittest.mock import patch from django.core.urlresolvers import reverse from taiga.base.utils import json -from taiga.projects.issues.models import Issue -from taiga.projects.wiki.models import WikiPage -from taiga.projects.userstories.models import UserStory -from taiga.projects.tasks.models import Task from .. import factories as f @@ -33,7 +29,7 @@ pytestmark = pytest.mark.django_db def test_valid_us_creation(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory.create(project=project, user=user, is_owner=True) + f.MembershipFactory.create(project=project, user=user, is_owner=True) client.login(user) @@ -50,28 +46,28 @@ def test_valid_us_creation(client): def test_invalid_concurrent_save_for_issue(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory.create(project=project, user=user, is_owner=True) + f.MembershipFactory.create(project=project, user=user, is_owner=True) client.login(user) mock_path = "taiga.projects.issues.api.IssueViewSet.pre_conditions_on_save" - with patch(mock_path) as m: + with patch(mock_path): url = reverse("issues-list") data = {"subject": "test", - "project": project.id, - "status": f.IssueStatusFactory.create(project=project).id, - "severity": f.SeverityFactory.create(project=project).id, - "type": f.IssueTypeFactory.create(project=project).id, - "priority": f.PriorityFactory.create(project=project).id} + "project": project.id, + "status": f.IssueStatusFactory.create(project=project).id, + "severity": f.SeverityFactory.create(project=project).id, + "type": f.IssueTypeFactory.create(project=project).id, + "priority": f.PriorityFactory.create(project=project).id} response = client.json.post(url, json.dumps(data)) assert response.status_code == 201, response.content issue_id = json.loads(response.content)["id"] url = reverse("issues-detail", args=(issue_id,)) - data = {"version":1, "subject": "test 1"} + data = {"version": 1, "subject": "test 1"} response = client.patch(url, json.dumps(data), content_type="application/json") assert response.status_code == 200 - data = {"version":1, "subject": "test 2"} + data = {"version": 1, "subject": "test 2"} response = client.patch(url, json.dumps(data), content_type="application/json") assert response.status_code == 400 @@ -79,28 +75,28 @@ def test_invalid_concurrent_save_for_issue(client): def test_valid_concurrent_save_for_issue_different_versions(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory.create(project=project, user=user, is_owner=True) + f.MembershipFactory.create(project=project, user=user, is_owner=True) client.login(user) mock_path = "taiga.projects.issues.api.IssueViewSet.pre_conditions_on_save" - with patch(mock_path) as m: + with patch(mock_path): url = reverse("issues-list") data = {"subject": "test", - "project": project.id, - "status": f.IssueStatusFactory.create(project=project).id, - "severity": f.SeverityFactory.create(project=project).id, - "type": f.IssueTypeFactory.create(project=project).id, - "priority": f.PriorityFactory.create(project=project).id} + "project": project.id, + "status": f.IssueStatusFactory.create(project=project).id, + "severity": f.SeverityFactory.create(project=project).id, + "type": f.IssueTypeFactory.create(project=project).id, + "priority": f.PriorityFactory.create(project=project).id} response = client.json.post(url, json.dumps(data)) assert response.status_code == 201, response.content issue_id = json.loads(response.content)["id"] url = reverse("issues-detail", args=(issue_id,)) - data = {"version":1, "subject": "test 1"} + data = {"version": 1, "subject": "test 1"} response = client.patch(url, json.dumps(data), content_type="application/json") assert response.status_code == 200 - data = {"version":2, "subject": "test 2"} + data = {"version": 2, "subject": "test 2"} response = client.patch(url, json.dumps(data), content_type="application/json") assert response.status_code == 200 @@ -108,28 +104,28 @@ def test_valid_concurrent_save_for_issue_different_versions(client): def test_valid_concurrent_save_for_issue_different_fields(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory.create(project=project, user=user, is_owner=True) + f.MembershipFactory.create(project=project, user=user, is_owner=True) client.login(user) mock_path = "taiga.projects.issues.api.IssueViewSet.pre_conditions_on_save" - with patch(mock_path) as m: + with patch(mock_path): url = reverse("issues-list") data = {"subject": "test", - "project": project.id, - "status": f.IssueStatusFactory.create(project=project).id, - "severity": f.SeverityFactory.create(project=project).id, - "type": f.IssueTypeFactory.create(project=project).id, - "priority": f.PriorityFactory.create(project=project).id} + "project": project.id, + "status": f.IssueStatusFactory.create(project=project).id, + "severity": f.SeverityFactory.create(project=project).id, + "type": f.IssueTypeFactory.create(project=project).id, + "priority": f.PriorityFactory.create(project=project).id} response = client.json.post(url, json.dumps(data)) assert response.status_code == 201, response.content issue_id = json.loads(response.content)["id"] url = reverse("issues-detail", args=(issue_id,)) - data = {"version":1, "subject": "test 1"} + data = {"version": 1, "subject": "test 1"} response = client.patch(url, json.dumps(data), content_type="application/json") assert response.status_code == 200 - data = {"version":1, "description": "test 2"} + data = {"version": 1, "description": "test 2"} response = client.patch(url, json.dumps(data), content_type="application/json") assert response.status_code == 200 @@ -137,11 +133,11 @@ def test_valid_concurrent_save_for_issue_different_fields(client): def test_invalid_concurrent_save_for_wiki_page(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory.create(project=project, user=user, is_owner=True) + f.MembershipFactory.create(project=project, user=user, is_owner=True) client.login(user) mock_path = "taiga.projects.wiki.api.WikiViewSet.pre_conditions_on_save" - with patch(mock_path) as m: + with patch(mock_path): url = reverse("wiki-list") data = {"project": project.id, "slug": "test"} response = client.json.post(url, json.dumps(data)) @@ -149,11 +145,11 @@ def test_invalid_concurrent_save_for_wiki_page(client): wiki_id = json.loads(response.content)["id"] url = reverse("wiki-detail", args=(wiki_id,)) - data = {"version":1, "content": "test 1"} + data = {"version": 1, "content": "test 1"} response = client.patch(url, json.dumps(data), content_type="application/json") assert response.status_code == 200 - data = {"version":1, "content": "test 2"} + data = {"version": 1, "content": "test 2"} response = client.patch(url, json.dumps(data), content_type="application/json") assert response.status_code == 400 @@ -161,11 +157,11 @@ def test_invalid_concurrent_save_for_wiki_page(client): def test_valid_concurrent_save_for_wiki_page_different_versions(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory.create(project=project, user=user, is_owner=True) + f.MembershipFactory.create(project=project, user=user, is_owner=True) client.login(user) mock_path = "taiga.projects.wiki.api.WikiViewSet.pre_conditions_on_save" - with patch(mock_path) as m: + with patch(mock_path): url = reverse("wiki-list") data = {"project": project.id, "slug": "test"} response = client.json.post(url, json.dumps(data)) @@ -173,11 +169,11 @@ def test_valid_concurrent_save_for_wiki_page_different_versions(client): wiki_id = json.loads(response.content)["id"] url = reverse("wiki-detail", args=(wiki_id,)) - data = {"version":1, "content": "test 1"} + data = {"version": 1, "content": "test 1"} response = client.patch(url, json.dumps(data), content_type="application/json") assert response.status_code == 200 - data = {"version":2, "content": "test 2"} + data = {"version": 2, "content": "test 2"} response = client.patch(url, json.dumps(data), content_type="application/json") assert response.status_code == 200 @@ -185,26 +181,26 @@ def test_valid_concurrent_save_for_wiki_page_different_versions(client): def test_invalid_concurrent_save_for_us(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory.create(project=project, user=user, is_owner=True) - userstory = f.UserStoryFactory.create(version=10, project=project) + f.MembershipFactory.create(project=project, user=user, is_owner=True) + f.UserStoryFactory.create(version=10, project=project) client.login(user) mock_path = "taiga.projects.userstories.api.UserStoryViewSet.pre_conditions_on_save" - with patch(mock_path) as m: + with patch(mock_path): url = reverse("userstories-list") data = {"subject": "test", - "project": project.id, - "status": f.UserStoryStatusFactory.create(project=project).id} + "project": project.id, + "status": f.UserStoryStatusFactory.create(project=project).id} response = client.json.post(url, json.dumps(data)) assert response.status_code == 201 userstory_id = json.loads(response.content)["id"] url = reverse("userstories-detail", args=(userstory_id,)) - data = {"version":1, "subject": "test 1"} + data = {"version": 1, "subject": "test 1"} response = client.patch(url, json.dumps(data), content_type="application/json") assert response.status_code == 200 - data = {"version":1, "subject": "test 2"} + data = {"version": 1, "subject": "test 2"} response = client.patch(url, json.dumps(data), content_type="application/json") assert response.status_code == 400 @@ -212,25 +208,25 @@ def test_invalid_concurrent_save_for_us(client): def test_valid_concurrent_save_for_us_different_versions(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory.create(project=project, user=user, is_owner=True) + f.MembershipFactory.create(project=project, user=user, is_owner=True) client.login(user) mock_path = "taiga.projects.userstories.api.UserStoryViewSet.pre_conditions_on_save" - with patch(mock_path) as m: + with patch(mock_path): url = reverse("userstories-list") data = {"subject": "test", - "project": project.id, - "status": f.UserStoryStatusFactory.create(project=project).id} + "project": project.id, + "status": f.UserStoryStatusFactory.create(project=project).id} response = client.json.post(url, json.dumps(data)) assert response.status_code == 201 userstory_id = json.loads(response.content)["id"] url = reverse("userstories-detail", args=(userstory_id,)) - data = {"version":1, "subject": "test 1"} + data = {"version": 1, "subject": "test 1"} response = client.patch(url, json.dumps(data), content_type="application/json") assert response.status_code == 200 - data = {"version":2, "subject": "test 2"} + data = {"version": 2, "subject": "test 2"} response = client.patch(url, json.dumps(data), content_type="application/json") assert response.status_code == 200 @@ -238,25 +234,25 @@ def test_valid_concurrent_save_for_us_different_versions(client): def test_valid_concurrent_save_for_us_different_fields(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory.create(project=project, user=user, is_owner=True) + f.MembershipFactory.create(project=project, user=user, is_owner=True) client.login(user) mock_path = "taiga.projects.userstories.api.UserStoryViewSet.pre_conditions_on_save" - with patch(mock_path) as m: + with patch(mock_path): url = reverse("userstories-list") data = {"subject": "test", - "project": project.id, - "status": f.UserStoryStatusFactory.create(project=project).id} + "project": project.id, + "status": f.UserStoryStatusFactory.create(project=project).id} response = client.json.post(url, json.dumps(data)) assert response.status_code == 201 userstory_id = json.loads(response.content)["id"] url = reverse("userstories-detail", args=(userstory_id,)) - data = {"version":1, "subject": "test 1"} + data = {"version": 1, "subject": "test 1"} response = client.patch(url, json.dumps(data), content_type="application/json") assert response.status_code == 200 - data = {"version":1, "description": "test 2"} + data = {"version": 1, "description": "test 2"} response = client.patch(url, json.dumps(data), content_type="application/json") assert response.status_code == 200 @@ -264,25 +260,25 @@ def test_valid_concurrent_save_for_us_different_fields(client): def test_invalid_concurrent_save_for_task(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory.create(project=project, user=user, is_owner=True) + f.MembershipFactory.create(project=project, user=user, is_owner=True) client.login(user) mock_path = "taiga.projects.tasks.api.TaskViewSet.pre_conditions_on_save" - with patch(mock_path) as m: + with patch(mock_path): url = reverse("tasks-list") data = {"subject": "test", - "project": project.id, - "status": f.TaskStatusFactory.create(project=project).id} + "project": project.id, + "status": f.TaskStatusFactory.create(project=project).id} response = client.json.post(url, json.dumps(data)) assert response.status_code == 201 task_id = json.loads(response.content)["id"] url = reverse("tasks-detail", args=(task_id,)) - data = {"version":1, "subject": "test 1"} + data = {"version": 1, "subject": "test 1"} response = client.patch(url, json.dumps(data), content_type="application/json") assert response.status_code == 200 - data = {"version":1, "subject": "test 2"} + data = {"version": 1, "subject": "test 2"} response = client.patch(url, json.dumps(data), content_type="application/json") assert response.status_code == 400 @@ -290,25 +286,25 @@ def test_invalid_concurrent_save_for_task(client): def test_valid_concurrent_save_for_task_different_versions(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory.create(project=project, user=user, is_owner=True) + f.MembershipFactory.create(project=project, user=user, is_owner=True) client.login(user) mock_path = "taiga.projects.tasks.api.TaskViewSet.pre_conditions_on_save" - with patch(mock_path) as m: + with patch(mock_path): url = reverse("tasks-list") data = {"subject": "test", - "project": project.id, - "status": f.TaskStatusFactory.create(project=project).id} + "project": project.id, + "status": f.TaskStatusFactory.create(project=project).id} response = client.json.post(url, json.dumps(data)) assert response.status_code == 201 task_id = json.loads(response.content)["id"] url = reverse("tasks-detail", args=(task_id,)) - data = {"version":1, "subject": "test 1"} + data = {"version": 1, "subject": "test 1"} response = client.patch(url, json.dumps(data), content_type="application/json") assert response.status_code == 200 - data = {"version":2, "subject": "test 2"} + data = {"version": 2, "subject": "test 2"} response = client.patch(url, json.dumps(data), content_type="application/json") assert response.status_code == 200 @@ -316,24 +312,24 @@ def test_valid_concurrent_save_for_task_different_versions(client): def test_valid_concurrent_save_for_task_different_fields(client): user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) - membership = f.MembershipFactory.create(project=project, user=user, is_owner=True) + f.MembershipFactory.create(project=project, user=user, is_owner=True) client.login(user) mock_path = "taiga.projects.tasks.api.TaskViewSet.pre_conditions_on_save" - with patch(mock_path) as m: + with patch(mock_path): url = reverse("tasks-list") data = {"subject": "test", - "project": project.id, - "status": f.TaskStatusFactory.create(project=project).id} + "project": project.id, + "status": f.TaskStatusFactory.create(project=project).id} response = client.json.post(url, json.dumps(data)) assert response.status_code == 201 task_id = json.loads(response.content)["id"] url = reverse("tasks-detail", args=(task_id,)) - data = {"version":1, "subject": "test 1"} + data = {"version": 1, "subject": "test 1"} response = client.patch(url, json.dumps(data), content_type="application/json") assert response.status_code == 200 - data = {"version":1, "description": "test 2"} + data = {"version": 1, "description": "test 2"} response = client.patch(url, json.dumps(data), content_type="application/json") assert response.status_code == 200 diff --git a/tests/integration/test_permissions.py b/tests/integration/test_permissions.py index aabfc34a..b16bcea3 100644 --- a/tests/integration/test_permissions.py +++ b/tests/integration/test_permissions.py @@ -88,16 +88,16 @@ def test_member_get_user_project_permissions(): def test_anon_user_has_perm(): project = factories.ProjectFactory() project.anon_permissions = ["test"] - assert service.user_has_perm(AnonymousUser(), "test", project) == True - assert service.user_has_perm(AnonymousUser(), "fail", project) == False + assert service.user_has_perm(AnonymousUser(), "test", project) is True + assert service.user_has_perm(AnonymousUser(), "fail", project) is False def test_authenticated_user_has_perm_on_project(): user1 = factories.UserFactory() project = factories.ProjectFactory() project.public_permissions = ["test"] - assert service.user_has_perm(user1, "test", project) == True - assert service.user_has_perm(user1, "fail", project) == False + assert service.user_has_perm(user1, "test", project) is True + assert service.user_has_perm(user1, "fail", project) is False def test_authenticated_user_has_perm_on_project_related_object(): @@ -106,10 +106,10 @@ def test_authenticated_user_has_perm_on_project_related_object(): project.public_permissions = ["test"] us = factories.UserStoryFactory(project=project) - assert service.user_has_perm(user1, "test", us) == True - assert service.user_has_perm(user1, "fail", us) == False + assert service.user_has_perm(user1, "test", us) is True + assert service.user_has_perm(user1, "fail", us) is False def test_authenticated_user_has_perm_on_invalid_object(): user1 = factories.UserFactory() - assert service.user_has_perm(user1, "test", user1) == False + assert service.user_has_perm(user1, "test", user1) is False diff --git a/tests/integration/test_projects.py b/tests/integration/test_projects.py index 941b3a47..29a1966f 100644 --- a/tests/integration/test_projects.py +++ b/tests/integration/test_projects.py @@ -118,7 +118,7 @@ def test_points_name_duplicated(client): def test_update_points_when_not_null_values_for_points(client): points = f.PointsFactory(name="?", value="6") - role = f.RoleFactory(project=points.project, computable=True) + f.RoleFactory(project=points.project, computable=True) assert points.project.points.filter(value__isnull=True).count() == 0 points.project.update_role_points() assert points.project.points.filter(value__isnull=True).count() == 1 @@ -130,33 +130,33 @@ def test_get_closed_bugs_per_member_stats(): membership_2 = f.MembershipFactory(project=project) issue_closed_status = f.IssueStatusFactory(is_closed=True, project=project) issue_open_status = f.IssueStatusFactory(is_closed=False, project=project) - issue_closed = f.IssueFactory(project=project, - status=issue_closed_status, - owner=membership_1.user, - assigned_to=membership_1.user) - issue_open = f.IssueFactory(project=project, - status=issue_open_status, - owner=membership_2.user, - assigned_to=membership_2.user) + f.IssueFactory(project=project, + status=issue_closed_status, + owner=membership_1.user, + assigned_to=membership_1.user) + f.IssueFactory(project=project, + status=issue_open_status, + owner=membership_2.user, + assigned_to=membership_2.user) task_closed_status = f.TaskStatusFactory(is_closed=True, project=project) task_open_status = f.TaskStatusFactory(is_closed=False, project=project) - task_closed = f.TaskFactory(project=project, - status=task_closed_status, - owner=membership_1.user, - assigned_to=membership_1.user) - task_open = f.TaskFactory(project=project, - status=task_open_status, - owner=membership_2.user, - assigned_to=membership_2.user) - task_iocaine = f.TaskFactory(project=project, - status=task_open_status, - owner=membership_2.user, - assigned_to=membership_2.user, - is_iocaine=True) + f.TaskFactory(project=project, + status=task_closed_status, + owner=membership_1.user, + assigned_to=membership_1.user) + f.TaskFactory(project=project, + status=task_open_status, + owner=membership_2.user, + assigned_to=membership_2.user) + f.TaskFactory(project=project, + status=task_open_status, + owner=membership_2.user, + assigned_to=membership_2.user, + is_iocaine=True) wiki_page = f.WikiPageFactory.create(project=project, owner=membership_1.user) take_snapshot(wiki_page, user=membership_1.user) - wiki_page.content="Frontend, future" + wiki_page.content = "Frontend, future" wiki_page.save() take_snapshot(wiki_page, user=membership_1.user) diff --git a/tests/integration/test_references_sequences.py b/tests/integration/test_references_sequences.py index 93616176..10653cea 100644 --- a/tests/integration/test_references_sequences.py +++ b/tests/integration/test_references_sequences.py @@ -17,9 +17,6 @@ import pytest -from django.core import management -from django.conf import settings - from .. import factories diff --git a/tests/integration/test_roles.py b/tests/integration/test_roles.py index 923da195..70665aff 100644 --- a/tests/integration/test_roles.py +++ b/tests/integration/test_roles.py @@ -16,31 +16,27 @@ # along with this program. If not, see . import pytest -from unittest.mock import patch, Mock -from django.apps import apps from django.core.urlresolvers import reverse -from taiga.base.utils import json - from taiga.users.models import Role from taiga.projects.models import Membership from taiga.projects.models import Project -from taiga.projects.userstories.serializers import UserStorySerializer from .. import factories as f pytestmark = pytest.mark.django_db + def test_destroy_role_and_reassign_members(client): user1 = f.UserFactory.create() user2 = f.UserFactory.create() project = f.ProjectFactory.create(owner=user1) role1 = f.RoleFactory.create(project=project) role2 = f.RoleFactory.create(project=project) - member = f.MembershipFactory.create(project=project, user=user1, role=role1, is_owner=True) - member = f.MembershipFactory.create(project=project, user=user2, role=role2) + f.MembershipFactory.create(project=project, user=user1, role=role1, is_owner=True) + f.MembershipFactory.create(project=project, user=user2, role=role2) url = reverse("roles-detail", args=[role2.pk]) + "?moveTo={}".format(role1.pk) @@ -58,6 +54,7 @@ def test_destroy_role_and_reassign_members(client): qs = Membership.objects.filter(project=project, role_id=role1.pk) assert qs.count() == 2 + def test_destroy_role_and_reassign_members_with_deleted_project(client): """ Regression test, that fixes some 500 errors on production @@ -68,8 +65,8 @@ def test_destroy_role_and_reassign_members_with_deleted_project(client): project = f.ProjectFactory.create(owner=user1) role1 = f.RoleFactory.create(project=project) role2 = f.RoleFactory.create(project=project) - member = f.MembershipFactory.create(project=project, user=user1, role=role1) - member = f.MembershipFactory.create(project=project, user=user2, role=role2) + f.MembershipFactory.create(project=project, user=user1, role=role1) + f.MembershipFactory.create(project=project, user=user2, role=role2) Project.objects.filter(pk=project.id).delete() diff --git a/tests/integration/test_searches.py b/tests/integration/test_searches.py index a10eb387..606f3304 100644 --- a/tests/integration/test_searches.py +++ b/tests/integration/test_searches.py @@ -56,21 +56,20 @@ def searches_initial_data(): m.points2 = f.PointsFactory(project=m.project2, value=None) m.role_points1 = f.RolePointsFactory.create(role=m.project1.roles.all()[0], - points=m.points1, - user_story__project=m.project1) + points=m.points1, + user_story__project=m.project1) m.role_points2 = f.RolePointsFactory.create(role=m.project1.roles.all()[0], - points=m.points1, - user_story__project=m.project1, - user_story__description="Back to the future") + points=m.points1, + user_story__project=m.project1, + user_story__description="Back to the future") m.role_points3 = f.RolePointsFactory.create(role=m.project2.roles.all()[0], - points=m.points2, - user_story__project=m.project2) + points=m.points2, + user_story__project=m.project2) m.us1 = m.role_points1.user_story m.us2 = m.role_points2.user_story m.us3 = m.role_points3.user_story - m.tsk1 = f.TaskFactory.create(project=m.project2) m.tsk2 = f.TaskFactory.create(project=m.project1) m.tsk3 = f.TaskFactory.create(project=m.project1, subject="Back to the future") @@ -79,9 +78,9 @@ def searches_initial_data(): m.iss2 = f.IssueFactory.create(project=m.project2) m.iss3 = f.IssueFactory.create(project=m.project1) - m.wiki1 = f.WikiPageFactory.create(project=m.project1) - m.wiki2 = f.WikiPageFactory.create(project=m.project1, content="Frontend, future") - m.wiki3 = f.WikiPageFactory.create(project=m.project2) + m.wiki1 = f.WikiPageFactory.create(project=m.project1) + m.wiki2 = f.WikiPageFactory.create(project=m.project1, content="Frontend, future") + m.wiki3 = f.WikiPageFactory.create(project=m.project2) return m @@ -139,4 +138,3 @@ def test_search_text_query_with_an_invalid_project_id(client, searches_initial_d response = client.get(reverse("search-list"), {"project": "new", "text": "future"}) assert response.status_code == 404 - diff --git a/tests/integration/test_stats.py b/tests/integration/test_stats.py index e102ba80..97bce3ff 100644 --- a/tests/integration/test_stats.py +++ b/tests/integration/test_stats.py @@ -1,8 +1,5 @@ import pytest -from django.conf import settings -from django.core.urlresolvers import reverse - from .. import factories as f from tests.utils import disconnect_signals, reconnect_signals diff --git a/tests/integration/test_tasks.py b/tests/integration/test_tasks.py index 06639294..2dfcabef 100644 --- a/tests/integration/test_tasks.py +++ b/tests/integration/test_tasks.py @@ -100,7 +100,7 @@ def test_api_update_order_in_bulk(client): data = { "project_id": project.id, "bulk_tasks": [{"task_id": task1.id, "order": 1}, - {"task_id": task2.id, "order": 2}] + {"task_id": task2.id, "order": 2}] } client.login(project.owner) diff --git a/tests/integration/test_throwttling.py b/tests/integration/test_throwttling.py index 4772bb28..ce36d0c4 100644 --- a/tests/integration/test_throwttling.py +++ b/tests/integration/test_throwttling.py @@ -33,7 +33,7 @@ import_rate_path = "taiga.export_import.throttling.ImportModeRateThrottle.get_ra def test_anonimous_throttling_policy(client, settings): - project = f.create_project() + f.create_project() url = reverse("projects-list") with mock.patch(anon_rate_path) as anon_rate, \ @@ -54,7 +54,7 @@ def test_anonimous_throttling_policy(client, settings): def test_user_throttling_policy(client, settings): project = f.create_project() - membership = f.MembershipFactory.create(project=project, user=project.owner, is_owner=True) + f.MembershipFactory.create(project=project, user=project.owner, is_owner=True) url = reverse("projects-detail", kwargs={"pk": project.pk}) client.login(project.owner) @@ -83,7 +83,7 @@ def test_user_throttling_policy(client, settings): def test_import_mode_throttling_policy(client, settings): project = f.create_project() - membership = f.MembershipFactory.create(project=project, user=project.owner, is_owner=True) + f.MembershipFactory.create(project=project, user=project.owner, is_owner=True) project.default_issue_type = f.IssueTypeFactory.create(project=project) project.default_issue_status = f.IssueStatusFactory.create(project=project) project.default_severity = f.SeverityFactory.create(project=project) diff --git a/tests/integration/test_timeline.py b/tests/integration/test_timeline.py index d3f84a3b..84484457 100644 --- a/tests/integration/test_timeline.py +++ b/tests/integration/test_timeline.py @@ -19,7 +19,6 @@ import pytest from .. import factories -from taiga.base.utils import json from taiga.timeline import service from taiga.timeline.models import Timeline @@ -39,6 +38,7 @@ def test_add_to_object_timeline(): assert Timeline.objects.filter(object_id=user1.id).count() == 1 assert Timeline.objects.order_by("-id")[0].data == id(user2) + def test_get_timeline(): Timeline.objects.all().delete() diff --git a/tests/integration/test_users.py b/tests/integration/test_users.py index 38b03ba1..60f2fcc7 100644 --- a/tests/integration/test_users.py +++ b/tests/integration/test_users.py @@ -74,8 +74,8 @@ def test_update_user_with_valid_email(client): assert response.status_code == 200 user = models.User.objects.get(pk=user.id) - assert user.email_token != None - assert user.new_email == "new@email.com" + assert user.email_token is not None + assert user.new_email == "new@email.com" def test_validate_requested_email_change(client): @@ -88,9 +88,9 @@ def test_validate_requested_email_change(client): assert response.status_code == 204 user = models.User.objects.get(pk=user.id) - assert user.email_token == None - assert user.new_email == None - assert user.email == "new@email.com" + assert user.email_token is None + assert user.new_email is None + assert user.email == "new@email.com" def test_validate_requested_email_change_without_token(client): diff --git a/tests/integration/test_userstories.py b/tests/integration/test_userstories.py index af33cebf..f0715bac 100644 --- a/tests/integration/test_userstories.py +++ b/tests/integration/test_userstories.py @@ -125,11 +125,11 @@ def test_update_userstory_points(client): role1 = f.RoleFactory.create(project=project) role2 = f.RoleFactory.create(project=project) - member = f.MembershipFactory.create(project=project, user=user1, role=role1, is_owner=True) - member = f.MembershipFactory.create(project=project, user=user2, role=role2) + f.MembershipFactory.create(project=project, user=user1, role=role1, is_owner=True) + f.MembershipFactory.create(project=project, user=user2, role=role2) - points1 = f.PointsFactory.create(project=project, value=None) - points2 = f.PointsFactory.create(project=project, value=1) + f.PointsFactory.create(project=project, value=None) + f.PointsFactory.create(project=project, value=1) points3 = f.PointsFactory.create(project=project, value=2) us = f.UserStoryFactory.create(project=project, owner=user1) @@ -143,7 +143,7 @@ def test_update_userstory_points(client): data = {} data["version"] = usdata["version"] data["points"] = copy.copy(usdata["points"]) - data["points"].update({'2000':points3.pk}) + data["points"].update({'2000': points3.pk}) response = client.json.patch(url, json.dumps(data)) assert response.status_code == 200 @@ -153,8 +153,7 @@ def test_update_userstory_points(client): data = {} data["version"] = usdata["version"] + 1 data["points"] = copy.copy(usdata["points"]) - data["points"].update({str(role1.pk):points3.pk}) - + data["points"].update({str(role1.pk): points3.pk}) response = client.json.patch(url, json.dumps(data)) us = models.UserStory.objects.get(pk=us.pk) @@ -163,6 +162,7 @@ def test_update_userstory_points(client): assert response.data["points"] == usdatanew['points'] assert response.data["points"] != usdata['points'] + def test_update_userstory_rolepoints_on_add_new_role(client): # This test is explicitly without assertions. It simple should # works without raising any exception. @@ -173,16 +173,16 @@ def test_update_userstory_rolepoints_on_add_new_role(client): role1 = f.RoleFactory.create(project=project) - member1 = f.MembershipFactory.create(project=project, user=user1, role=role1) + f.MembershipFactory.create(project=project, user=user1, role=role1) - points1 = f.PointsFactory.create(project=project, value=2) + f.PointsFactory.create(project=project, value=2) us = f.UserStoryFactory.create(project=project, owner=user1) # url = reverse("userstories-detail", args=[us.pk]) # client.login(user1) role2 = f.RoleFactory.create(project=project, computable=True) - member2 = f.MembershipFactory.create(project=project, user=user2, role=role2) + f.MembershipFactory.create(project=project, user=user2, role=role2) us.save() @@ -210,6 +210,7 @@ def test_archived_filter(client): response = client.get(url, data) assert len(json.loads(response.content)) == 1 + def test_get_total_points(client): project = f.ProjectFactory.create() diff --git a/tests/integration/test_vote_issues.py b/tests/integration/test_vote_issues.py index 390dfcaa..691ce432 100644 --- a/tests/integration/test_vote_issues.py +++ b/tests/integration/test_vote_issues.py @@ -17,7 +17,6 @@ import pytest from django.core.urlresolvers import reverse -from django.contrib.contenttypes.models import ContentType from .. import factories as f diff --git a/tests/models.py b/tests/models.py index 1351b41c..fe21e87c 100644 --- a/tests/models.py +++ b/tests/models.py @@ -18,7 +18,7 @@ from django.db import models from taiga.base import tags + class TaggedModel(tags.TaggedMixin, models.Model): class Meta: app_label = "tests" - diff --git a/tests/unit/test_base_api_permissions.py b/tests/unit/test_base_api_permissions.py index fb792c4a..dd736808 100644 --- a/tests/unit/test_base_api_permissions.py +++ b/tests/unit/test_base_api_permissions.py @@ -14,12 +14,9 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from taiga.base.api.permissions import (PermissionComponent, - AllowAny as TruePermissionComponent, +from taiga.base.api.permissions import (AllowAny as TruePermissionComponent, DenyAll as FalsePermissionComponent) -import pytest - def test_permission_component_composition(): assert (TruePermissionComponent() | TruePermissionComponent()).check_permissions(None, None, None) diff --git a/tests/unit/test_deferred.py b/tests/unit/test_deferred.py index 7417fc2c..c4e076c4 100644 --- a/tests/unit/test_deferred.py +++ b/tests/unit/test_deferred.py @@ -19,6 +19,7 @@ from unittest import mock from taiga import celery from taiga.deferred import defer, call_async, apply_async + def test_defer(): # settings.CELERY_ALWAYS_EAGER = True name = "task name" diff --git a/tests/unit/test_mdrender.py b/tests/unit/test_mdrender.py index 65e7e55c..6e66418c 100644 --- a/tests/unit/test_mdrender.py +++ b/tests/unit/test_mdrender.py @@ -101,18 +101,22 @@ def test_render_wikilink(): expected_result = "

test

" assert render(dummy_project, "[[test]]") == expected_result + def test_render_wikilink_1(): expected_result = "

test

" assert render(dummy_project, "[[test]]") == expected_result + def test_render_wikilink_2(): expected_result = "

test page

" assert render(dummy_project, "[[test page]]") == expected_result + def test_render_wikilink_3(): expected_result = "

TestPage

" assert render(dummy_project, "[[TestPage]]") == expected_result + def test_render_wikilink_with_custom_title(): expected_result = "

custom

" assert render(dummy_project, "[[test|custom]]") == expected_result diff --git a/tests/unit/test_permissions.py b/tests/unit/test_permissions.py index 203320f5..c1a0e765 100644 --- a/tests/unit/test_permissions.py +++ b/tests/unit/test_permissions.py @@ -17,11 +17,9 @@ from taiga.permissions import service from taiga.users.models import Role -import pytest - def test_role_has_perm(): role = Role() role.permissions = ["test"] assert service.role_has_perm(role, "test") - assert service.role_has_perm(role, "false") == False + assert service.role_has_perm(role, "false") is False diff --git a/tests/unit/test_slug.py b/tests/unit/test_slug.py index deb1961b..e687bcbd 100644 --- a/tests/unit/test_slug.py +++ b/tests/unit/test_slug.py @@ -43,6 +43,7 @@ def test_project_slug_with_special_chars(): assert project.slug == "test-han-zi" + def test_project_with_existing_name_slug_with_special_chars(): user = User.objects.create(username="test") Project.objects.create(name="漢字", description="漢字", owner=user) diff --git a/tests/unit/test_timeline.py b/tests/unit/test_timeline.py index 5380cbdf..175c34e3 100644 --- a/tests/unit/test_timeline.py +++ b/tests/unit/test_timeline.py @@ -15,7 +15,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from unittest.mock import patch, MagicMock, call +from unittest.mock import patch, call from django.core.exceptions import ValidationError @@ -41,6 +41,7 @@ def test_push_to_timeline_many_objects(): with pytest.raises(Exception): service.push_to_timeline(None, project, "test") + def test_add_to_objects_timeline(): with patch("taiga.timeline.service._add_to_object_timeline") as mock: users = [User(), User(), User()] @@ -78,7 +79,7 @@ def test_get_impl_key_from_typename(): def test_get_class_implementation(): service._timeline_impl_map["timeline.timeline.test"] = "test" assert service._get_class_implementation(Timeline, "test") == "test" - assert service._get_class_implementation(Timeline, "other") == None + assert service._get_class_implementation(Timeline, "other") is None def test_register_timeline_implementation(): diff --git a/tests/unit/test_tokens.py b/tests/unit/test_tokens.py index 626555ab..1da085e1 100644 --- a/tests/unit/test_tokens.py +++ b/tests/unit/test_tokens.py @@ -25,6 +25,7 @@ from taiga.auth.tokens import get_token_for_user, get_user_for_token pytestmark = pytest.mark.django_db + def test_valid_token(): user = f.UserFactory.create(email="old@email.com") token = get_token_for_user(user, "testing_scope") @@ -34,19 +35,19 @@ def test_valid_token(): @pytest.mark.xfail(raises=exc.NotAuthenticated) def test_invalid_token(): - user = f.UserFactory.create(email="old@email.com") - user_from_token = get_user_for_token("testing_invalid_token", "testing_scope") + f.UserFactory.create(email="old@email.com") + get_user_for_token("testing_invalid_token", "testing_scope") @pytest.mark.xfail(raises=exc.NotAuthenticated) def test_invalid_token_expiration(): user = f.UserFactory.create(email="old@email.com") token = get_token_for_user(user, "testing_scope") - user_from_token = get_user_for_token(token, "testing_scope", max_age=1) + get_user_for_token(token, "testing_scope", max_age=1) @pytest.mark.xfail(raises=exc.NotAuthenticated) def test_invalid_token_scope(): user = f.UserFactory.create(email="old@email.com") token = get_token_for_user(user, "testing_scope") - user_from_token = get_user_for_token(token, "testing_invalid_scope") + get_user_for_token(token, "testing_invalid_scope") diff --git a/tests/utils.py b/tests/utils.py index e30c90d0..10f1fd9f 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -14,7 +14,6 @@ # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -import functools from django.db.models import signals from taiga.base.utils import json @@ -60,6 +59,7 @@ def _helper_test_http_method_responses(client, method, url, data, users, after_e after_each_request() return results + def helper_test_http_method(client, method, url, data, users, after_each_request=None, content_type="application/json"): responses = _helper_test_http_method_responses(client, method, url, data, users, after_each_request, @@ -71,6 +71,7 @@ def helper_test_http_method_and_count(client, method, url, data, users, after_ea responses = _helper_test_http_method_responses(client, method, url, data, users, after_each_request) return list(map(lambda r: (r.status_code, len(json.loads(r.content.decode('utf-8')))), responses)) + def helper_test_http_method_and_keys(client, method, url, data, users, after_each_request=None): responses = _helper_test_http_method_responses(client, method, url, data, users, after_each_request) return list(map(lambda r: (r.status_code, set(json.loads(r.content.decode('utf-8')).keys())), responses))