From cb9c89e168b041e1a45a778fd5c9f23bca8867ce Mon Sep 17 00:00:00 2001 From: Adam Palay Date: Fri, 27 Mar 2015 10:35:46 -0400 Subject: [PATCH 1/2] update ORA2 to fix TNL-1758 --- requirements/edx/github.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/edx/github.txt b/requirements/edx/github.txt index c9a5c1daad..1f81ecc3c3 100644 --- a/requirements/edx/github.txt +++ b/requirements/edx/github.txt @@ -29,7 +29,7 @@ git+https://github.com/mitocw/django-cas.git@60a5b8e5a62e63e0d5d224a87f0b489201a -e git+https://github.com/edx/bok-choy.git@d62839324cbea30dda564596f20175f9d5c28516#egg=bok_choy -e git+https://github.com/edx-solutions/django-splash.git@7579d052afcf474ece1239153cffe1c89935bc4f#egg=django-splash -e git+https://github.com/edx/acid-block.git@e46f9cda8a03e121a00c7e347084d142d22ebfb7#egg=acid-xblock --e git+https://github.com/edx/edx-ora2.git@release-2015-03-16T17.59#egg=edx-ora2 +-e git+https://github.com/edx/edx-ora2.git@release-2015-03-27T14.32#egg=edx-ora2 -e git+https://github.com/edx/edx-submissions.git@8fb070d2a3087dd7656d27022e550d12e3b85ba3#egg=edx-submissions -e git+https://github.com/edx/opaque-keys.git@1254ed4d615a428591850656f39f26509b86d30a#egg=opaque-keys -e git+https://github.com/edx/ease.git@97de68448e5495385ba043d3091f570a699d5b5f#egg=ease From 9a8ecc65a720959f4bd8153178e2e3ba0da0b6bf Mon Sep 17 00:00:00 2001 From: Clinton Blackburn Date: Wed, 25 Mar 2015 23:41:54 -0400 Subject: [PATCH 2/2] 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()