Commit af609f10 by Ned Batchelder

Merge pull request #9494 from edx/ned/move-recommender-tests

Move recommender XBlock tests to openedx/tests/external
parents 1d229a32 a16c951c
"""Tests of XBlocks integrated with edx-platform.
These tests exercise XBlocks which may live in other repos, to confirm both
that the XBlock works, and that edx-platform continues to properly support the
XBlock.
"""
...@@ -2,21 +2,24 @@ ...@@ -2,21 +2,24 @@
This test file will run through some XBlock test scenarios regarding the This test file will run through some XBlock test scenarios regarding the
recommender system recommender system
""" """
from copy import deepcopy
import json import json
import itertools import itertools
import StringIO import StringIO
import unittest
from ddt import ddt, data from ddt import ddt, data
from copy import deepcopy
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
from django.conf import settings
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory
from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase
from courseware.tests.helpers import LoginEnrollmentTestCase from lms.djangoapps.courseware.tests.helpers import LoginEnrollmentTestCase
from courseware.tests.factories import GlobalStaffFactory from lms.djangoapps.courseware.tests.factories import GlobalStaffFactory
from lms.djangoapps.lms_xblock.runtime import quote_slashes from lms.djangoapps.lms_xblock.runtime import quote_slashes
...@@ -32,6 +35,12 @@ class TestRecommender(SharedModuleStoreTestCase, LoginEnrollmentTestCase): ...@@ -32,6 +35,12 @@ class TestRecommender(SharedModuleStoreTestCase, LoginEnrollmentTestCase):
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls):
# Nose runs setUpClass methods even if a class decorator says to skip
# the class: https://github.com/nose-devs/nose/issues/946
# So, skip the test class here if we are not in the LMS.
if settings.ROOT_URLCONF != 'lms.urls':
raise unittest.SkipTest('Test only valid in lms')
super(TestRecommender, cls).setUpClass() super(TestRecommender, cls).setUpClass()
cls.course = CourseFactory.create( cls.course = CourseFactory.create(
display_name='Recommender_Test_Course' display_name='Recommender_Test_Course'
......
...@@ -145,20 +145,23 @@ class SystemTestSuite(NoseTestSuite): ...@@ -145,20 +145,23 @@ class SystemTestSuite(NoseTestSuite):
# django-nose will import them early in the test process, # django-nose will import them early in the test process,
# thereby making sure that we load any django models that are # thereby making sure that we load any django models that are
# only defined in test files. # only defined in test files.
default_test_id = "{system}/djangoapps/* common/djangoapps/* openedx/core/djangoapps/*".format( default_test_id = (
system=self.root "{system}/djangoapps/*"
" common/djangoapps/*"
" openedx/core/djangoapps/*"
" openedx/tests/*"
) )
if self.root in ('lms', 'cms'): if self.root in ('lms', 'cms'):
default_test_id += " {system}/lib/*".format(system=self.root) default_test_id += " {system}/lib/*"
if self.root == 'lms': if self.root == 'lms':
default_test_id += " {system}/tests.py".format(system=self.root) default_test_id += " {system}/tests.py"
if self.root == 'cms': if self.root == 'cms':
default_test_id += " {system}/tests/*".format(system=self.root) default_test_id += " {system}/tests/*"
return default_test_id return default_test_id.format(system=self.root)
class LibTestSuite(NoseTestSuite): class LibTestSuite(NoseTestSuite):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment