Commit Graph

125 Commits

Author SHA1 Message Date
Calen Pennington
b353ed2ea2 Better support specifying of modulestore configuration in test cases
The existing pattern of using `override_settings(MODULESTORE=...)` prevented
us from having more than one layer of subclassing in modulestore tests.

In a structure like:

    @override_settings(MODULESTORE=store_a)
    class BaseTestCase(ModuleStoreTestCase):
        def setUp(self):
            # use store

    @override_settings(MODULESTORE=store_b)
    class ChildTestCase(BaseTestCase):
        def setUp(self):
            # use store

In this case, the store actions performed in `BaseTestCase` on behalf of
`ChildTestCase` would still use `store_a`, even though the `ChildTestCase`
had specified to use `store_b`. This is because the `override_settings`
decorator would be the innermost wrapper around the `BaseTestCase.setUp` method,
no matter what `ChildTestCase` does.

To remedy this, we move the call to `override_settings` into the
`ModuleStoreTestCase.setUp` method, and use a cleanup to remove the override.
Subclasses can just defined the `MODULESTORE` class attribute to specify which
modulestore to use _for the entire `setUp` chain_.

[PLAT-419]
2015-02-04 09:09:14 -05:00
Calen Pennington
03a05fd9d4 Always call super(..).setUp() from setUp 2015-02-04 09:09:14 -05:00
Calen Pennington
980f30c17f Move lms.lib.xblock into lms.djangoapps.lms_xblock in preparation add database backed configuration to it 2014-12-12 21:45:21 -05:00
Jesse Zoldak
bf3b87bc64 Clean up all modulestore testcases
Move modulestore config for tests to an importable location
Disable pylnt warning for lms imports in common tests
Refactor all testcases that loaded all xml courses
TE-610
TE-489
2014-12-02 07:09:36 -05:00
Nimisha Asthagiri
d2b59cb6e0 get_items API: have qualifiers be a separate parameter instead of assuming kwargs. 2014-08-08 12:38:42 -04:00
Nimisha Asthagiri
ea32529866 Fix all modulestore calls to pass in user ids. 2014-07-09 21:10:12 -04:00
Nimisha Asthagiri
a9213509c3 Enable Mixed Modulestore STUD-1540
Refactor get_parent_locations STUD-1663
2014-06-26 18:00:11 -04:00
Calen Pennington
cfcbdc0145 Move to OpaqueKey implementations from the external library
[LMS-2757]
2014-05-29 17:03:35 -04:00
Julia Hansbrough
6f7bc7e174 Fixed some TODOs, removed irrelevant ones 2014-05-24 18:49:06 -04:00
Calen Pennington
9811926d97 Make course ids and usage ids opaque to LMS and Studio [partial commit]
This commit updates lms/djangoapps/courseware.

These keys are now objects with a limited interface, and the particular
internal representation is managed by the data storage layer (the
modulestore).

For the LMS, there should be no outward-facing changes to the system.
The keys are, for now, a change to internal representation only. For
Studio, the new serialized form of the keys is used in urls, to allow
for further migration in the future.

Co-Author: Andy Armstrong <andya@edx.org>
Co-Author: Christina Roberts <christina@edx.org>
Co-Author: David Baumgold <db@edx.org>
Co-Author: Diana Huang <dkh@edx.org>
Co-Author: Don Mitchell <dmitchell@edx.org>
Co-Author: Julia Hansbrough <julia@edx.org>
Co-Author: Nimisha Asthagiri <nasthagiri@edx.org>
Co-Author: Sarina Canelake <sarina@edx.org>

[LMS-2370]
2014-05-06 10:08:32 -04:00
Calen Pennington
da26ae2529 Remove lms/lib from sys.path in favore of using it as the module lms.lib 2013-11-08 11:08:48 -05:00
Calen Pennington
c3d25e1e61 Prevent unbounded nesting of lms field_datas
Previously, whenever a XModule was created from a XDescriptor, we
created another level of nesting of FieldData objects. This change
prevents that nesting.

[TKTS-393]
2013-10-25 12:21:05 -04:00
Calen Pennington
8201b1412e Use XBlock 0.3 2013-09-06 09:45:59 -04:00
Will Daly
42ac76ce0c Merge branch 'master' into lapentab/fix_network_tests
Conflicts:
	lms/djangoapps/courseware/tests/tests.py
2013-08-23 11:48:38 -04:00
Will Daly
1cb52df16b Removed unnecessary TestCase 2013-08-22 16:10:24 -04:00
lapentab
d894a065df Stylistic changes 2013-08-22 09:28:37 -04:00
lapentab
1759191370 Remove network calls in tests 2013-08-22 08:43:28 -04:00
Will Daly
8165a033b1 Pep8/pylint fixes
Fixed test_masquerade failure due to not clearing the modulestore
between tests.
2013-08-21 19:42:59 -04:00
Will Daly
48c6daacb8 Removed unnecessary settings wrangling from ModuleStoreTestCase.
Modified navigation tests to use MixedModulestore
Updated factories to find editable modulestore

Updated test_submitting_problems

Updated test_tabs.py

Updated test_view_authentication

Updated test_views

Updated courseware/tests/tests.py

Updated test_masquerade

Updated test_module_render

Pylint fixes

Updated video and word cloud tests

Updated course wiki tests

Updated license and open_ended tests.
One open_ended test still failing due to Mako initialization issues

Updated staticbook

Updated django_comment_client tests

Updated instructor tests

Updated instructor task tests

Updated external_auth tests

Updated course_groups
2013-08-21 09:36:45 -04:00
Chris Dodge
bc5e27fe17 update some more call sites in LMS to always pass in a course_id 2013-08-19 23:42:26 -04:00
Calen Pennington
0d3c44996a LMS i18n from Tsinghua 2013-07-31 19:39:15 -04:00
Don Mitchell
3722685e1a No longer persist XModule templates
Instead, we use XModule field default values when creating an empty
XModule. Driven by this use case, we also allow for XModules to be
created in memory without being persisted to the database at all. This
necessitates a change to the Modulestore api, replacing clone_item with
create_draft and save_xmodule.
2013-07-16 14:33:58 -04:00
Don Mitchell
ef8618f7ad Make DraftModuleStore mongo only
DraftModuleStore was originally designed as a mixin, but never used that
way, and with the upcoming changes to use the versioned module store,
never will be. This changes removes a circular dependency between
mongo.py and draft.py.
2013-07-16 08:55:26 -04:00
JonahStanley
7fb5f505d6 Refactored out full from the lms tests 2013-07-11 10:12:06 -04:00
Jean Manuel Nater
72b4561e3a Moved xml_store_config, mongo_store_config, and draft_mongo_store_config to xmodule/modulestore/tests/django_util.py
Removed some repeated instances of xml_store_config.
Reverted some changes to mongo_store_config so each modulestore gets it's own uuid.
2013-07-01 14:45:53 -04:00
Jean Manuel Nater
9bfddd4891 Addressed pull request feedback. 2013-06-21 14:05:57 -04:00
Jean Manuel Nater
905d884aa7 Removed a unnecessary imports from mongo_login_helpers.py and repeated code from tests.py. 2013-06-18 15:41:53 -04:00
Jean Manuel Nater
97275a3286 Refactored some of the classes in tests.py to not unnecessarily depend on the XML modulestore.
Conflicts:
	lms/djangoapps/courseware/tests/test_navigation.py
	lms/djangoapps/courseware/tests/test_view_authentication.py
	lms/djangoapps/courseware/tests/tests.py
2013-06-18 13:54:16 -04:00
Jean Manuel Nater
78128e7672 Merge branch 'master' into jnater/playground
Conflicts:
	common/lib/xmodule/xmodule/modulestore/tests/factories.py
	lms/djangoapps/courseware/tests/tests.py
2013-06-18 13:36:24 -04:00
Jean Manuel Nater
07486a4dbc Refactoring the code in tests.py to remove unnecessary dependencies on the XML Modulestore. 2013-06-17 11:54:16 -04:00
Jean Manuel Nater
a25a0d71ac refactored tests in courseware to draw course info from mongo instead of xmlmodulestore 2013-06-12 10:42:52 -04:00
Don Mitchell
168cb306d3 Move tz_aware into connection config rather than settings.
Make django use_tz
2013-06-10 17:16:35 -04:00
Don Mitchell
28f8910db4 Make pymongo tz_aware 2013-06-10 17:16:34 -04:00
Don Mitchell
d7194e6bec struct_time to datetime conversion. 2013-06-10 17:16:34 -04:00
Greg Price
de5b4d7d27 Merge branch 'master' into drupal-new 2013-05-17 16:10:56 -04:00
Diana Huang
1c2175304e Merge branch 'master' into drupal-new 2013-05-16 16:27:36 -04:00
Ned Batchelder
e947218285 Merge master to here. 2013-05-16 14:21:51 -04:00
Chris Dodge
6cec66979a fix broken tests. Also drive by fix for the sporadic failure on tests which may go to a textbook page. The URL formatting was incorrect in the test 2013-05-15 11:16:47 -04:00
Greg Price
a0fb4d6c85 Merge branch 'master' into drupal-new
Conflicts:
	lms/envs/aws.py
	lms/envs/common.py
	lms/static/sass/base/_base.scss
	lms/templates/forgot_password_modal.html
2013-05-10 10:30:10 -04:00
Chris Dodge
1b0eff52ed create test cases to simulate error exporting/importing textbooks 2013-05-10 10:01:10 -04:00
Ned Batchelder
ceb6cedaae Fix merge 2013-05-06 11:39:19 -04:00
Ned Batchelder
249ba4be33 Finish the test for computed_answer 2013-05-06 10:55:04 -04:00
Ned Batchelder
a6677aa0a8 Computed answers are run through safe_exec. 2013-05-06 10:55:04 -04:00
Ned Batchelder
6297d64528 Now these can be in the same test class 2013-05-06 10:55:04 -04:00
Ned Batchelder
ff1df569cb Refactor submitting problems so we don't need custom code for each test. 2013-05-06 10:55:04 -04:00
Ned Batchelder
33abe54e0d Work in progress to sandbox the uses of eval in LMS. 2013-05-06 10:55:03 -04:00
Ned Batchelder
9249bafd00 Add a test of a bad answer also. 2013-05-06 10:55:03 -04:00
Ned Batchelder
e69a073161 Add a test for the Python in schemaresponse, and refactor the tests while I was in there. 2013-05-06 10:55:03 -04:00
Ned Batchelder
9827a0e218 Oops, this line can go too. 2013-05-06 10:55:03 -04:00
Ned Batchelder
9cc43f1d9b Simplify this test setup. 2013-05-06 10:55:03 -04:00