def test_get_top_ten_improvable_states(self): InteractiveWidget.load_default_widgets() exp = Exploration.create( User(email='*****@*****.**'), 'exploration', 'category', 'eid') state_id = exp.init_state.get().id EventHandler.record_rule_hit( 'eid', state_id, Rule(name='Default', dest=state_id), extra_info='1') EventHandler.record_rule_hit( 'eid', state_id, Rule(name='Default', dest=state_id), extra_info='2') EventHandler.record_rule_hit( 'eid', state_id, Rule(name='Default', dest=state_id), extra_info='1') EventHandler.record_state_hit('eid', state_id) EventHandler.record_state_hit('eid', state_id) EventHandler.record_state_hit('eid', state_id) EventHandler.record_state_hit('eid', state_id) EventHandler.record_state_hit('eid', state_id) states = Statistics.get_top_ten_improvable_states(['eid']) self.assertEquals(len(states), 1) self.assertEquals(states[0]['exp_id'], 'eid') self.assertEquals(states[0]['type'], 'default') self.assertEquals(states[0]['rank'], 3) self.assertEquals(states[0]['state_id'], exp.init_state.get().id)
def test_incomplete_and_default_flags(self): InteractiveWidget.load_default_widgets() exp = Exploration.create( User(email='*****@*****.**'), 'exploration', 'category', 'eid') state_id = exp.init_state.get().id # Hit the default once, and do an incomplete twice. The result should # be classified as incomplete. for i in range(3): EventHandler.record_state_hit('eid', state_id) EventHandler.record_rule_hit( 'eid', state_id, Rule(name='Default', dest=state_id), extra_info='1') states = Statistics.get_top_ten_improvable_states(['eid']) self.assertEquals(len(states), 1) self.assertEquals(states[0]['rank'], 2) self.assertEquals(states[0]['type'], 'incomplete') # Now hit the default two more times. The result should be classified # as default. for i in range(2): EventHandler.record_state_hit('eid', state_id) EventHandler.record_rule_hit( 'eid', state_id, Rule(name='Default', dest=state_id), extra_info='1') states = Statistics.get_top_ten_improvable_states(['eid']) self.assertEquals(len(states), 1) self.assertEquals(states[0]['rank'], 3) self.assertEquals(states[0]['type'], 'default')
def reload_widgets(): """Reload the default classifiers and widgets.""" Classifier.delete_all_classifiers() Classifier.load_default_classifiers() Widget.delete_all_widgets() InteractiveWidget.load_default_widgets() NonInteractiveWidget.load_default_widgets()
def setUp(self): """Loads the default widgets and create sample users and explorations.""" super(StateModelUnitTests, self).setUp() InteractiveWidget.load_default_widgets() self.user = User(email="*****@*****.**") self.another_user = User(email="*****@*****.**") self.exploration = Exploration.create(self.user, "A title", "A category", "A exploration_id") self.exploration.put()
def test_loading_and_deletion_of_widgets(self): """Test loading and deletion of the default widgets.""" self.assertEqual(Widget.query().count(), 0) InteractiveWidget.load_default_widgets() self.assertEqual(Widget.query().count(), 7) self.assertEqual(InteractiveWidget.query().count(), 7) self.assertEqual(NonInteractiveWidget.query().count(), 0) Widget.delete_all_widgets() self.assertEqual(Widget.query().count(), 0)
def reload_demos(): """Reload default classifiers, widgets, and explorations (in that order).""" Classifier.delete_all_classifiers() Classifier.load_default_classifiers() Widget.delete_all_widgets() InteractiveWidget.load_default_widgets() NonInteractiveWidget.load_default_widgets() Exploration.delete_demo_explorations() Exploration.load_demo_explorations()
def setUp(self): """Loads the default widgets.""" super(ExplorationServicesUnitTests, self).setUp() InteractiveWidget.load_default_widgets() self.owner = User(email='*****@*****.**') self.editor = User(email='*****@*****.**') self.viewer = User(email='*****@*****.**') self.exploration = Exploration.create( self.owner, 'A title', 'A category', 'A exploration_id') self.exploration.editors.append(self.editor) self.exploration.put()
def test_two_state_default_hit(self): SECOND_STATE = 'State 2' InteractiveWidget.load_default_widgets() exp = Exploration.create( User(email='*****@*****.**'), 'exploration', 'category', 'eid') second_state = exp.add_state(SECOND_STATE) state_1_id = exp.init_state.get().id state_2_id = second_state.id # Hit the default rule of state 1 once, and the default rule of state 2 # twice. EventHandler.record_state_hit('eid', state_1_id) EventHandler.record_rule_hit( 'eid', state_1_id, Rule(name='Default', dest=state_1_id), extra_info='1') for i in range(2): EventHandler.record_state_hit('eid', state_2_id) EventHandler.record_rule_hit( 'eid', state_2_id, Rule(name='Default', dest=state_2_id), extra_info='1') states = Statistics.get_top_ten_improvable_states(['eid']) self.assertEquals(len(states), 2) self.assertEquals(states[0]['rank'], 2) self.assertEquals(states[0]['type'], 'default') self.assertEquals(states[0]['state_id'], state_2_id) self.assertEquals(states[1]['rank'], 1) self.assertEquals(states[1]['type'], 'default') self.assertEquals(states[1]['state_id'], state_1_id) # Hit the default rule of state 1 two more times. for i in range(2): EventHandler.record_state_hit('eid', state_1_id) EventHandler.record_rule_hit( 'eid', state_1_id, Rule(name='Default', dest=state_1_id), extra_info='1') states = Statistics.get_top_ten_improvable_states(['eid']) self.assertEquals(len(states), 2) self.assertEquals(states[0]['rank'], 3) self.assertEquals(states[0]['type'], 'default') self.assertEquals(states[0]['state_id'], state_1_id) self.assertEquals(states[1]['rank'], 2) self.assertEquals(states[1]['type'], 'default') self.assertEquals(states[1]['state_id'], state_2_id)
def test_no_improvement_flag_hit(self): InteractiveWidget.load_default_widgets() exp = Exploration.create( User(email='*****@*****.**'), 'exploration', 'category', 'eid') init_state = exp.init_state.get() state_id = init_state.id init_state.widget.handlers[0].rules = [ Rule(name='NotDefault', dest=state_id), Rule(name='Default', dest=state_id), ] init_state.put() EventHandler.record_rule_hit( 'eid', state_id, Rule(name='NotDefault', dest=state_id), extra_info='1') EventHandler.record_state_hit('eid', state_id) states = Statistics.get_top_ten_improvable_states(['eid']) self.assertEquals(len(states), 0)
def setUp(self): """Loads the default widgets.""" super(ExplorationDataUnitTests, self).setUp() InteractiveWidget.load_default_widgets()
def setUp(self): """Loads the default widgets.""" super(ExplorationModelUnitTests, self).setUp() InteractiveWidget.load_default_widgets() self.user = User(email='*****@*****.**') self.another_user = User(email='*****@*****.**')