Пример #1
0
 def test_randomtrial(self):
     """
     Basic randomized trial.
     """
     self.assertEqual(self.ulQ.order, 0)
     from ct.fsm_plugin.lessonseq import get_specs
     f = get_specs()[0].save_graph(self.user.username)  # load FSM spec
     from ct.fsm_plugin.randomtrial import get_specs
     f = get_specs()[0].save_graph(self.user.username)  # load FSM spec
     self.assertEqual(ActivityLog.objects.count(), 0)
     fsmData = dict(testFSM='lessonseq',
                    treatmentFSM='lessonseq',
                    treatment1=self.ulQ.unit,
                    treatment2=self.ulQ.unit,
                    testUnit=self.ulQ2.unit,
                    course=self.course)
     request, fsmStack, result = self.get_fsm_request(
         'randomtrial', fsmData, dict(trialName='test'))
     self.assertEqual(self.client.session['fsmID'], fsmStack.state.pk)
     self.assertEqual(result, '/fsm/nodes/%d/' % f.startNode.pk)
     self.assertEqual(ActivityLog.objects.count(), 1)
     # rt FSM start page
     response = self.client.get(result)
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, 'answer a few preliminary questions')
     url = '/ct/courses/%d/units/%d/lessons/%d/ask/' \
           % (self.course.pk, self.ulQ2.unit.pk, self.ulQ2.pk)
     self.check_post_get(result, dict(fsmtask='next'), url,
                         'Scary Question')
     # pretest Q
     postdata = dict(text='i dunno', confidence=Response.GUESS)
     url = self.check_post_get(url, postdata, '/assess/', 'write an answer')
     # pretest assess
     assessPOST = dict(selfeval=Response.CORRECT,
                       status=DONE_STATUS,
                       liked='')
     url2 = '/ct/courses/%d/units/%d/lessons/%d/ask/' \
            % (self.course.pk, self.ulQ.unit.pk, self.ulQ.pk)
     self.check_post_get(url, assessPOST, url2, 'your quest')
     # treatment Q
     postdata = dict(text='i like rats', confidence=Response.GUESS)
     url = self.check_post_get(url2, postdata, '/assess/',
                               'write an answer')
     # treatment assess
     url2 = '/ct/courses/%d/units/%d/lessons/%d/ask/' \
            % (self.course.pk, self.ulQ2.unit.pk, self.ulQ2.pk)
     self.check_post_get(url, assessPOST, url2, 'Scary Question')
     # posttest Q
     postdata = dict(text='i still dunno', confidence=Response.GUESS)
     url = self.check_post_get(url2, postdata, '/assess/',
                               'write an answer')
     # posttest assess
     url2 = '/ct/courses/%d/units/%d/tasks/' \
            % (self.course.pk, self.ulQ.unit.pk)
     self.check_post_get(url, assessPOST, url2, 'Next Step to work on')
     self.assertEqual(
         Response.objects.filter(activity__isnull=False,
                                 confidence=Response.GUESS).count(),
         3)  # check responses logged to RT activity
Пример #2
0
    def test_randomtrial(self):
        """
        Basic randomized trial.
        """
        self.assertEqual(self.ulQ.order, 0)
        from ct.fsm_plugin.lessonseq import get_specs

        f = get_specs()[0].save_graph(self.user.username)  # load FSM spec
        from ct.fsm_plugin.randomtrial import get_specs

        f = get_specs()[0].save_graph(self.user.username)  # load FSM spec
        self.assertEqual(ActivityLog.objects.count(), 0)
        fsmData = dict(
            testFSM="lessonseq",
            treatmentFSM="lessonseq",
            treatment1=self.ulQ.unit,
            treatment2=self.ulQ.unit,
            testUnit=self.ulQ2.unit,
            course=self.course,
        )
        request, fsmStack, result = self.get_fsm_request("randomtrial", fsmData, dict(trialName="test"))
        self.assertEqual(self.client.session["fsmID"], fsmStack.state.pk)
        self.assertEqual(result, "/fsm/nodes/%d/" % f.startNode.pk)
        self.assertEqual(ActivityLog.objects.count(), 1)
        # rt FSM start page
        response = self.client.get(result)
        self.assertEqual(response.status_code, 200)
        self.assertContains(response, "answer a few preliminary questions")
        url = "/ct/courses/%d/units/%d/lessons/%d/ask/" % (self.course.pk, self.ulQ2.unit.pk, self.ulQ2.pk)
        self.check_post_get(result, dict(fsmtask="next"), url, "Scary Question")
        # pretest Q
        postdata = dict(text="i dunno", confidence=Response.GUESS)
        url = self.check_post_get(url, postdata, "/assess/", "write an answer")
        # pretest assess
        assessPOST = dict(selfeval=Response.CORRECT, status=DONE_STATUS, liked="")
        url2 = "/ct/courses/%d/units/%d/lessons/%d/ask/" % (self.course.pk, self.ulQ.unit.pk, self.ulQ.pk)
        self.check_post_get(url, assessPOST, url2, "your quest")
        # treatment Q
        postdata = dict(text="i like rats", confidence=Response.GUESS)
        url = self.check_post_get(url2, postdata, "/assess/", "write an answer")
        # treatment assess
        url2 = "/ct/courses/%d/units/%d/lessons/%d/ask/" % (self.course.pk, self.ulQ2.unit.pk, self.ulQ2.pk)
        self.check_post_get(url, assessPOST, url2, "Scary Question")
        # posttest Q
        postdata = dict(text="i still dunno", confidence=Response.GUESS)
        url = self.check_post_get(url2, postdata, "/assess/", "write an answer")
        # posttest assess
        url2 = "/ct/courses/%d/units/%d/tasks/" % (self.course.pk, self.ulQ.unit.pk)
        self.check_post_get(url, assessPOST, url2, "Next Step to work on")
        self.assertEqual(
            Response.objects.filter(activity__isnull=False, confidence=Response.GUESS).count(), 3
        )  # check responses logged to RT activity
Пример #3
0
 def test_randomtrial(self):
     """
     Basic randomized trial.
     """
     self.assertEqual(self.ulQ.order, 0)
     from ct.fsm_plugin.lessonseq import get_specs
     f = get_specs()[0].save_graph(self.user.username)  # load FSM spec
     from ct.fsm_plugin.randomtrial import get_specs
     f = get_specs()[0].save_graph(self.user.username)  # load FSM spec
     self.assertEqual(ActivityLog.objects.count(), 0)
     fsmData = dict(testFSM='lessonseq', treatmentFSM='lessonseq',
                    treatment1=self.ulQ.unit, treatment2=self.ulQ.unit,
                    testUnit=self.ulQ2.unit, course=self.course)
     request, fsmStack, result = self.get_fsm_request(
         'randomtrial', fsmData, dict(trialName='test')
     )
     self.assertEqual(self.client.session['fsmID'], fsmStack.state.pk)
     self.assertEqual(result, '/fsm/nodes/%d/' % f.startNode.pk)
     self.assertEqual(ActivityLog.objects.count(), 1)
     # rt FSM start page
     response = self.client.get(result)
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, 'answer a few preliminary questions')
     url = '/ct/courses/%d/units/%d/lessons/%d/ask/' \
           % (self.course.pk, self.ulQ2.unit.pk, self.ulQ2.pk)
     self.check_post_get(result, dict(fsmtask='next'), url, 'Scary Question')
     # pretest Q
     postdata = dict(text='i dunno', confidence=Response.GUESS)
     url = self.check_post_get(url, postdata, '/assess/', 'write an answer')
     # pretest assess
     assessPOST = dict(selfeval=Response.CORRECT, status=DONE_STATUS, liked='')
     url2 = '/ct/courses/%d/units/%d/lessons/%d/ask/' \
            % (self.course.pk, self.ulQ.unit.pk, self.ulQ.pk)
     self.check_post_get(url, assessPOST, url2, 'your quest')
     # treatment Q
     postdata = dict(text='i like rats', confidence=Response.GUESS)
     url = self.check_post_get(url2, postdata, '/assess/', 'write an answer')
     # treatment assess
     url2 = '/ct/courses/%d/units/%d/lessons/%d/ask/' \
            % (self.course.pk, self.ulQ2.unit.pk, self.ulQ2.pk)
     self.check_post_get(url, assessPOST, url2, 'Scary Question')
     # posttest Q
     postdata = dict(text='i still dunno', confidence=Response.GUESS)
     url = self.check_post_get(url2, postdata, '/assess/', 'write an answer')
     # posttest assess
     url2 = '/ct/courses/%d/units/%d/tasks/' \
            % (self.course.pk, self.ulQ.unit.pk)
     self.check_post_get(url, assessPOST, url2, 'Next Step to work on')
     self.assertEqual(Response.objects.filter(activity__isnull=False,
                                              confidence=Response.GUESS).
                      count(), 3)  # check responses logged to RT activity
Пример #4
0
    def test_start2(self):
        """
        Check basic startup of new FSM instance using FSMSpecification.
        """
        from fsm.fsm_plugin.testme import get_specs

        spec = get_specs()[0]
        f = spec.save_graph("jacob")
        self.assertTrue(f.startNode.doLogging)
        self.assertFalse(f.get_node("MID").doLogging)
        fsmStack = self.do_start(f)
        # test filter_input() plugin functionality
        edge = fsmStack.state.fsmNode.outgoing.get(name="next")
        self.assertTrue(edge.filter_input("the right stuff"))
        self.assertFalse(edge.filter_input("the WRONG stuff"))
        # test get_help() plugin functionality
        request = FakeRequest(self.user, path="/ct/about/")
        msg = fsmStack.state.fsmNode.get_help(fsmStack.state, request)
        self.assertEqual(msg, "here here!")
        request = FakeRequest(self.user, path="/ct/courses/1/")
        msg = fsmStack.state.fsmNode.get_help(fsmStack.state, request)
        self.assertEqual(msg, "there there")
        request = FakeRequest(self.user)
        msg = fsmStack.state.fsmNode.get_help(fsmStack.state, request)
        self.assertEqual(msg, None)
Пример #5
0
 def test_slideshow(self):
     """
     Basic slide show FSM.
     """
     from ct.fsm_plugin.slideshow import get_specs
     get_specs()[0].save_graph(self.user.username)  # load FSM spec
     fsmData = dict(unit=self.ulQ2.unit, course=self.course)
     request, fsmStack, result = self.get_fsm_request('slideshow', fsmData)
     self.assertEqual(result, '/ct/courses/%d/units/%d/lessons/%d/read/'
           % (self.course.pk, self.ulQ2.unit.pk, self.ulQ2.pk))
     # start page = question
     response = self.client.get(result)
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, 'Scary Question')
     # answer page
     answer = self.ulQ2.get_answers()[0]
     url = '/ct/courses/%d/units/%d/lessons/%d/read/' \
           % (self.course.pk, self.ulQ2.unit.pk, answer.pk)
     self.check_post_get(result, dict(fsmtask='next'), url, 'an answer')
     # end of slide show should dump us on concepts page
     url2 = '/ct/courses/%d/units/%d/concepts/' % (self.course.pk, self.ulQ2.unit.pk)
     self.check_post_get(url, dict(fsmtask='next'), url2, 'Pretest')
Пример #6
0
 def test_slideshow(self):
     """
     Basic slide show FSM.
     """
     from ct.fsm_plugin.slideshow import get_specs
     get_specs()[0].save_graph(self.user.username)  # load FSM spec
     fsmData = dict(unit=self.ulQ2.unit, course=self.course)
     request, fsmStack, result = self.get_fsm_request('slideshow', fsmData)
     self.assertEqual(result, '/ct/courses/%d/units/%d/lessons/%d/read/'
           % (self.course.pk, self.ulQ2.unit.pk, self.ulQ2.pk))
     # start page = question
     response = self.client.get(result)
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, 'Scary Question')
     # answer page
     answer = self.ulQ2.get_answers()[0]
     url = '/ct/courses/%d/units/%d/lessons/%d/read/' \
           % (self.course.pk, self.ulQ2.unit.pk, answer.pk)
     self.check_post_get(result, dict(fsmtask='next'), url, 'an answer')
     # end of slide show should dump us on concepts page
     url2 = '/ct/courses/%d/units/%d/concepts/' % (self.course.pk, self.ulQ2.unit.pk)
     self.check_post_get(url, dict(fsmtask='next'), url2, 'Pretest')
Пример #7
0
 def test_start2(self):
     """
     Check basic startup of new FSM instance using FSMSpecification.
     """
     from fsm.fsm_plugin.testme import get_specs
     spec = get_specs()[0]
     f = spec.save_graph('jacob')
     self.assertTrue(f.startNode.doLogging)
     self.assertFalse(f.get_node('MID').doLogging)
     fsmStack = self.do_start(f)
     # test filter_input() plugin functionality
     edge = fsmStack.state.fsmNode.outgoing.get(name='next')
     self.assertTrue(edge.filter_input('the right stuff'))
     self.assertFalse(edge.filter_input('the WRONG stuff'))
     # test get_help() plugin functionality
     request = FakeRequest(self.user, path='/ct/about/')
     msg = fsmStack.state.fsmNode.get_help(fsmStack.state, request)
     self.assertEqual(msg, 'here here!')
     request = FakeRequest(self.user, path='/ct/courses/1/')
     msg = fsmStack.state.fsmNode.get_help(fsmStack.state, request)
     self.assertEqual(msg, 'there there')
     request = FakeRequest(self.user)
     msg = fsmStack.state.fsmNode.get_help(fsmStack.state, request)
     self.assertEqual(msg, None)