From 9a8ecc65a720959f4bd8153178e2e3ba0da0b6bf Mon Sep 17 00:00:00 2001 From: Clinton Blackburn Date: Wed, 25 Mar 2015 23:41:54 -0400 Subject: [PATCH] Removed invalid kwarg --- cms/djangoapps/contentstore/tests/test_import.py | 3 ++- cms/djangoapps/contentstore/tests/test_libraries.py | 3 ++- .../djangoapps/content/course_structures/signals.py | 2 +- .../djangoapps/content/course_structures/tests.py | 13 ++++++++++++- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/cms/djangoapps/contentstore/tests/test_import.py b/cms/djangoapps/contentstore/tests/test_import.py index 34c0f4bfe5..4efb1cb8ec 100644 --- a/cms/djangoapps/contentstore/tests/test_import.py +++ b/cms/djangoapps/contentstore/tests/test_import.py @@ -11,6 +11,7 @@ from django.conf import settings import ddt import copy +from openedx.core.djangoapps.content.course_structures.tests import SignalDisconnectTestMixin from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase from xmodule.modulestore import ModuleStoreEnum from xmodule.modulestore.django import modulestore @@ -28,7 +29,7 @@ TEST_DATA_DIR = settings.COMMON_TEST_DATA_ROOT @ddt.ddt @override_settings(CONTENTSTORE=TEST_DATA_CONTENTSTORE) -class ContentStoreImportTest(ModuleStoreTestCase): +class ContentStoreImportTest(SignalDisconnectTestMixin, ModuleStoreTestCase): """ Tests that rely on the toy and test_import_course courses. NOTE: refactor using CourseFactory so they do not. diff --git a/cms/djangoapps/contentstore/tests/test_libraries.py b/cms/djangoapps/contentstore/tests/test_libraries.py index 12ed0402da..0ff0bfabce 100644 --- a/cms/djangoapps/contentstore/tests/test_libraries.py +++ b/cms/djangoapps/contentstore/tests/test_libraries.py @@ -19,6 +19,7 @@ from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory from mock import Mock from opaque_keys.edx.locator import CourseKey, LibraryLocator +from openedx.core.djangoapps.content.course_structures.tests import SignalDisconnectTestMixin class LibraryTestCase(ModuleStoreTestCase): @@ -457,7 +458,7 @@ class TestLibraries(LibraryTestCase): @ddt.ddt -class TestLibraryAccess(LibraryTestCase): +class TestLibraryAccess(SignalDisconnectTestMixin, LibraryTestCase): """ Test Roles and Permissions related to Content Libraries """ diff --git a/openedx/core/djangoapps/content/course_structures/signals.py b/openedx/core/djangoapps/content/course_structures/signals.py index 966dcd05e8..4070c5787e 100644 --- a/openedx/core/djangoapps/content/course_structures/signals.py +++ b/openedx/core/djangoapps/content/course_structures/signals.py @@ -10,4 +10,4 @@ def listen_for_course_publish(sender, course_key, **kwargs): # pylint: disable= # Note: The countdown=0 kwarg is set to to ensure the method below does not attempt to access the course # before the signal emitter has finished all operations. This is also necessary to ensure all tests pass. - update_course_structure.delay(unicode(course_key), countdown=0) + update_course_structure.apply_async([unicode(course_key)], countdown=0) diff --git a/openedx/core/djangoapps/content/course_structures/tests.py b/openedx/core/djangoapps/content/course_structures/tests.py index 93fc780d11..5c645049bf 100644 --- a/openedx/core/djangoapps/content/course_structures/tests.py +++ b/openedx/core/djangoapps/content/course_structures/tests.py @@ -1,12 +1,23 @@ import json +from xmodule.modulestore.django import SignalHandler from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory - from openedx.core.djangoapps.content.course_structures.models import CourseStructure +from openedx.core.djangoapps.content.course_structures.signals import listen_for_course_publish from openedx.core.djangoapps.content.course_structures.tasks import _generate_course_structure, update_course_structure +class SignalDisconnectTestMixin(object): + """ + Mixin for tests to disable calls to signals.listen_for_course_publish when the course_published signal is fired. + """ + + def setUp(self): + super(SignalDisconnectTestMixin, self).setUp() + SignalHandler.course_published.disconnect(listen_for_course_publish) + + class CourseStructureTaskTests(ModuleStoreTestCase): def setUp(self, **kwargs): super(CourseStructureTaskTests, self).setUp()