edx/edx-platform — pull request #2042 by shnayder (2013-12-25 14:28:34+00:00)
Title: DO NOT MERGE.  WIP: Split testing support in the LMS.

(Opening a pull request just to have a convenient place to discuss. Will re-open when it's actually ready)

Adds a split_test_module XModule, that can choose one of its children
to display, based on a get_condition_for_user API added to the runtime.

To test, add something like this to an xml course, or make equivalent
tweaks in mongo.

condition 0
condition 1

Also needs an experiment configured in the course policy json: e.g.

"user_partitions": [{"id": 0,
"name": "Experiment 0",
"description": "Unicorns?",
"version": 1,
"groups": [{"id": 0,
"name": "group 0",
"version": 1},
{"id": 1,
"name": "group 1",
"version": 1}]}]

(This particular snippet will work inside a course with org MITx
and course name 6.00x)

TODO:
* arch review. Is this what the arch council had in mind?
* analytics -- actually add the user tags to all events
* add a "hidden" attribute to blocks, have verticals and ab tests pass
it up the tree, have sequentials and the accordion actually hide things.
(There is already a way to hide certain things in the course accordion.
Ideally this would be made consistent with that method.)
* docs
* performance review/testing
* test all the things