def test_runtime_handle(): # Test a simple handler and a fallback handler key_store = DictKeyValueStore() field_data = KvsFieldData(key_store) runtime = TestRuntime(services={"field-data": field_data}) tester = TestXBlock(runtime, scope_ids=Mock(spec=ScopeIds)) runtime = MockRuntimeForQuerying() # string we want to update using the handler update_string = "user state update" assert_equals(runtime.handle(tester, "existing_handler", update_string), "I am the existing test handler") assert_equals(tester.user_state, update_string) # when the handler needs to use the fallback as given name can't be found new_update_string = "new update" assert_equals(runtime.handle(tester, "test_fallback_handler", new_update_string), "I have been handled") assert_equals(tester.user_state, new_update_string) # request to use a handler which doesn't have XBlock.handler decoration # should use the fallback new_update_string = "new update" assert_equals(runtime.handle(tester, "handler_without_correct_decoration", new_update_string), "gone to fallback") assert_equals(tester.user_state, new_update_string) # handler can't be found & no fallback handler supplied, should throw an exception tester = TestXBlockNoFallback(runtime, scope_ids=Mock(spec=ScopeIds)) ultimate_string = "ultimate update" with assert_raises(NoSuchHandlerError): runtime.handle(tester, "test_nonexistant_fallback_handler", ultimate_string) # request to use a handler which doesn't have XBlock.handler decoration # and no fallback should raise NoSuchHandlerError with assert_raises(NoSuchHandlerError): runtime.handle(tester, "handler_without_correct_decoration", "handled")
def test_runtime_handle(): # Test a simple handler and a fallback handler key_store = DictKeyValueStore() field_data = KvsFieldData(key_store) runtime = TestRuntime(services={'field-data': field_data}) tester = TestXBlock(runtime, scope_ids=Mock(spec=ScopeIds)) runtime = MockRuntimeForQuerying() # string we want to update using the handler update_string = "user state update" assert_equals(runtime.handle(tester, 'existing_handler', update_string), 'I am the existing test handler') assert_equals(tester.user_state, update_string) # when the handler needs to use the fallback as given name can't be found new_update_string = "new update" assert_equals( runtime.handle(tester, 'test_fallback_handler', new_update_string), 'I have been handled') assert_equals(tester.user_state, new_update_string) # request to use a handler which doesn't have XBlock.handler decoration # should use the fallback new_update_string = "new update" assert_equals( runtime.handle(tester, 'handler_without_correct_decoration', new_update_string), 'gone to fallback') assert_equals(tester.user_state, new_update_string) # handler can't be found & no fallback handler supplied, should throw an exception tester = TestXBlockNoFallback(runtime, scope_ids=Mock(spec=ScopeIds)) ultimate_string = "ultimate update" with assert_raises(NoSuchHandlerError): runtime.handle(tester, 'test_nonexistant_fallback_handler', ultimate_string) # request to use a handler which doesn't have XBlock.handler decoration # and no fallback should raise NoSuchHandlerError with assert_raises(NoSuchHandlerError): runtime.handle(tester, 'handler_without_correct_decoration', 'handled')