'Make sure that conditional module works'

def test_conditional_module(self):

    print 'Starting    import'
    course = self.get_course('conditional_and_poll')
    print 'Course:    ', course
    print 'id:    ', course.id
    def inner_get_module(descriptor):
        if isinstance(descriptor, Location):
            location = descriptor
            descriptor = self.modulestore.get_item(location, depth=None)
        descriptor.xmodule_runtime = get_test_system()
        descriptor.xmodule_runtime.descriptor_runtime = descriptor._runtime
        descriptor.xmodule_runtime.get_module = inner_get_module
        return descriptor
    location = Location('HarvardX', 'ER22x', '2013_Spring', 'conditional', 'condone')
    def replace_urls(text, staticfiles_prefix=None, replace_prefix='/static/', course_namespace=None):
        return text
    self.test_system.replace_urls = replace_urls
    self.test_system.get_module = inner_get_module
    module = inner_get_module(location)
    print 'module:    ', module
    print 'module    children:    ', module.get_children()
    print 'module    display    items    (children):    ', module.get_display_items()
    html = module.render(STUDENT_VIEW).content
    print 'html    type:    ', type(html)
    print 'html:    ', html
    html_expect = module.xmodule_runtime.render_template('conditional_ajax.html', {'ajax_url': '{}/xmodule_handler'.format(location.to_deprecated_string()), 'element_id': u'i4x-HarvardX-ER22x-conditional-condone', 'depends': u'i4x-HarvardX-ER22x-problem-choiceprob'})
    self.assertEqual(html, html_expect)
    gdi = module.get_display_items()
    print 'gdi=', gdi
    ajax = json.loads(module.handle_ajax('', ''))
    module.save()
    print 'ajax:    ', ajax
    html = ajax['html']
    self.assertFalse(any([('This    is    a    secret' in item) for item in html]))
    inner_module = inner_get_module(location.replace(category='problem', name='choiceprob'))
    inner_module.attempts = 1
    inner_module.save()
    ajax = json.loads(module.handle_ajax('', ''))
    module.save()
    print 'post-attempt    ajax:    ', ajax
    html = ajax['html']
    self.assertTrue(any([('This    is    a    secret' in item) for item in html]))
