diff --git a/tests/integration/test_notifications.py b/tests/integration/test_notifications.py index 682c54a1..997c0d5b 100644 --- a/tests/integration/test_notifications.py +++ b/tests/integration/test_notifications.py @@ -23,7 +23,6 @@ from unittest.mock import MagicMock, patch from django.core.urlresolvers import reverse from django.apps import apps from .. import factories as f -from .. utils import set_settings from taiga.projects.notifications import services from taiga.projects.notifications import models @@ -148,8 +147,9 @@ def test_users_to_notify(): assert len(users) == 2 assert users == {member1.user, issue.get_owner()} -@set_settings(CHANGE_NOTIFICATIONS_MIN_INTERVAL=1) -def test_send_notifications_using_services_method(mail): +def test_send_notifications_using_services_method(settings, mail): + settings.CHANGE_NOTIFICATIONS_MIN_INTERVAL = 1 + project = f.ProjectFactory.create() member1 = f.MembershipFactory.create(project=project) member2 = f.MembershipFactory.create(project=project) @@ -224,8 +224,9 @@ def test_send_notifications_using_services_method(mail): services.process_sync_notifications() assert len(mail.outbox) == 12 -@set_settings(CHANGE_NOTIFICATIONS_MIN_INTERVAL=1) -def test_resource_notification_test(client, mail): +def test_resource_notification_test(client, settings, mail): + settings.CHANGE_NOTIFICATIONS_MIN_INTERVAL = 1 + user1 = f.UserFactory.create() user2 = f.UserFactory.create() project = f.ProjectFactory.create(owner=user1) diff --git a/tests/utils.py b/tests/utils.py index f326505e..6a437129 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -17,7 +17,6 @@ import functools import json -from django.conf import settings from django.db.models import signals @@ -39,55 +38,6 @@ def signals_switch(): disconnect_signals, reconnect_signals = signals_switch() -def set_settings(**new_settings): - """Decorator for set django settings that will be only available during the - wrapped-function execution. - - For example: - @set_settings(FOO='bar') - def myfunc(): - ... - - @set_settings(FOO='bar') - class TestCase: - ... - """ - def decorator(testcase): - if type(testcase) is type: - namespace = {"OVERRIDE_SETTINGS": new_settings, "ORIGINAL_SETTINGS": {}} - wrapper = type(testcase.__name__, (SettingsTestCase, testcase), namespace) - else: - @functools.wraps(testcase) - def wrapper(*args, **kwargs): - old_settings = override_settings(new_settings) - try: - testcase(*args, **kwargs) - finally: - override_settings(old_settings) - - return wrapper - - return decorator - - -def override_settings(new_settings): - old_settings = {} - for name, new_value in new_settings.items(): - old_settings[name] = getattr(settings, name, None) - setattr(settings, name, new_value) - return old_settings - - -class SettingsTestCase(object): - @classmethod - def setup_class(cls): - cls.ORIGINAL_SETTINGS = override_settings(cls.OVERRIDE_SETTINGS) - - @classmethod - def teardown_class(cls): - override_settings(cls.ORIGINAL_SETTINGS) - cls.OVERRIDE_SETTINGS.clear() - def _helper_test_http_method_responses(client, method, url, data, users, after_each_request=None, content_type="application/json"): results = []