Exemple #1
0
    def test_confirm_human_increments_counts(self):
        experiment_user = create_user(self.request)
        experiment_user.set_enrollment(self.experiment, TEST_ALTERNATIVE)

        self.assertEqual(self.participants(TEST_ALTERNATIVE), 0, "Counted participant before confirmed human")
        experiment_user.confirm_human()
        self.assertEqual(self.participants(TEST_ALTERNATIVE), 1, "Did not count participant after confirm human")
Exemple #2
0
    def test_counts_increment_immediately_once_confirmed_human(self):
        experiment_user = create_user(self.request)
        self.confirm_human(experiment_user)

        experiment_user.set_enrollment(self.experiment, TEST_ALTERNATIVE)
        self.assertEqual(self.participants(TEST_ALTERNATIVE), 1,
                         "Did not count participant after confirm human")
Exemple #3
0
def change_alternative(request, experiment_name, alternative_name):
    experiment = get_object_or_404(Experiment, name=experiment_name)
    if alternative_name not in experiment.alternatives.keys():
        return HttpResponseBadRequest()

    experiment_user = create_user(request)
    experiment_user.set_enrollment(experiment, alternative_name)
    return HttpResponse('OK')
Exemple #4
0
    def test_record_goal_increments_counts(self):
        experiment_user = create_user(self.request)
        self.confirm_human(experiment_user)
        experiment_user.set_enrollment(self.experiment, TEST_ALTERNATIVE)

        self.assertEqual(self.experiment.goal_count(TEST_ALTERNATIVE, TEST_GOAL), 0)
        experiment_user.record_goal(TEST_GOAL)
        self.assertEqual(self.experiment.goal_count(TEST_ALTERNATIVE, TEST_GOAL), 1)
def change_alternative(request, experiment_name, alternative_name):
    experiment = get_object_or_404(Experiment, name=experiment_name)
    if alternative_name not in experiment.alternatives.keys():
        return HttpResponseBadRequest()

    experiment_user = create_user(request)
    experiment_user.set_enrollment(experiment, alternative_name)
    return HttpResponse('OK')
Exemple #6
0
    def test_can_record_goal_multiple_times(self):
        experiment_user = create_user(self.request)
        self.confirm_human(experiment_user)
        experiment_user.set_enrollment(self.experiment, TEST_ALTERNATIVE)

        experiment_user.record_goal(TEST_GOAL)
        experiment_user.record_goal(TEST_GOAL)
        experiment_user.record_goal(TEST_GOAL)
        self.assertEqual(
            self.experiment.goal_count(TEST_ALTERNATIVE, TEST_GOAL), 1)
Exemple #7
0
 def test_bot_in_control_group(self):
     experiment_user = create_user(self.request)
     experiment_user.set_enrollment(self.experiment, TEST_ALTERNATIVE)
     self.assertEqual(experiment_user.get_enrollment(self.experiment),
                      CONTROL_GROUP, "Bot alternative is not control")
     self.assertEqual(
         experiment_user.is_enrolled(self.experiment.name, TEST_ALTERNATIVE,
                                     self.request), False,
         "Bot in test alternative")
     self.assertEqual(
         experiment_user.is_enrolled(self.experiment.name, CONTROL_GROUP,
                                     self.request), True,
         "Bot not in control group")
    def render(self, context):
        # Get User object
        request = context.get('request', None)

        if request and hasattr(request, 'experiment_user'):
            user = request.experiment_user
        else:
            user = create_user(request)

        # Should we render?
        if user.is_enrolled(self.experiment_name, self.alternative, request):
            response = self.node_list.render(context)
        else:
            response = ""

        return response
Exemple #9
0
    def render(self, context):
        # Get User object
        request = context.get('request', None)

        if request and hasattr(request, 'experiment_user'):
            user = request.experiment_user
        else:
            user = create_user(request)

        # Should we render?
        if user.is_enrolled(self.experiment_name, self.alternative, request):
            response = self.node_list.render(context)
        else:
            response = ""

        return response
Exemple #10
0
    def test_confirm_human_increments_counts(self):
        experiment_user = create_user(self.request)
        experiment_user.set_enrollment(self.experiment, TEST_ALTERNATIVE)
        experiment_user.record_goal(TEST_GOAL)

        self.assertEqual(self.participants(TEST_ALTERNATIVE), 0,
                         "Counted participant before confirmed human")
        self.assertEqual(
            self.experiment.goal_count(TEST_ALTERNATIVE, TEST_GOAL), 0,
            "Counted goal before confirmed human")
        experiment_user.confirm_human()
        self.assertEqual(self.participants(TEST_ALTERNATIVE), 1,
                         "Did not count participant after confirm human")
        self.assertEqual(
            self.experiment.goal_count(TEST_ALTERNATIVE, TEST_GOAL), 1,
            "Did not count goal after confirm human")
Exemple #11
0
 def test_user_does_not_enroll(self):
     experiment_user = create_user(self.request)
     experiment_user.set_enrollment(self.experiment, TEST_ALTERNATIVE)
     self.assertEqual(self.experiment.participant_count(TEST_ALTERNATIVE), 0, "Bot counted towards results")
Exemple #12
0
def confirm_human(request):
    experiment_user = create_user(request)
    experiment_user.confirm_human()
    return HttpResponse(status=204)
Exemple #13
0
def confirm_human(request):
    experiment_user = create_user(request)
    experiment_user.confirm_human()
    return HttpResponse(status=204)
Exemple #14
0
 def test_user_does_not_enroll(self):
     experiment_user = create_user(self.request)
     experiment_user.set_enrollment(self.experiment, TEST_ALTERNATIVE)
     self.assertEqual(self.experiment.participant_count(TEST_ALTERNATIVE),
                      0, "Bot counted towards results")
Exemple #15
0
def transfer_enrollments_to_user(sender, request, user, **kwargs):
    anon_user = create_user(session=request.session)
    authenticated_user = create_user(user=user)
    authenticated_user.incorporate(anon_user)
Exemple #16
0
 def test_user_enrolls(self):
     experiment_user = create_user(self.request)
     experiment_user.set_enrollment(self.experiment, TEST_ALTERNATIVE)
     self.assertEqual(experiment_user.get_enrollment(self.experiment),
                      TEST_ALTERNATIVE)
Exemple #17
0
 def enrollment_initially_none(self,):
     experiment_user = create_user(self.request)
     self.assertEqual(experiment_user.get_enrollment(self.experiment), None)
Exemple #18
0
 def enrollment_initially_none(self, ):
     experiment_user = create_user(self.request)
     self.assertEqual(experiment_user.get_enrollment(self.experiment), None)
Exemple #19
0
 def test_bot_in_control_group(self):
     experiment_user = create_user(self.request)
     experiment_user.set_enrollment(self.experiment, TEST_ALTERNATIVE)
     self.assertEqual(experiment_user.get_enrollment(self.experiment), CONTROL_GROUP, "Bot alternative is not control")
     self.assertEqual(experiment_user.is_enrolled(self.experiment.name, TEST_ALTERNATIVE, self.request), False, "Bot in test alternative")
     self.assertEqual(experiment_user.is_enrolled(self.experiment.name, CONTROL_GROUP, self.request), True, "Bot not in control group")
def transfer_enrollments_to_user(sender, request, user, **kwargs):
    anon_user = create_user(session=request.session)
    authenticated_user = create_user(user=user)
    authenticated_user.incorporate(anon_user)
Exemple #21
0
 def test_user_enrolls(self):
     experiment_user = create_user(self.request)
     experiment_user.set_enrollment(self.experiment, TEST_ALTERNATIVE)
     self.assertEqual(experiment_user.get_enrollment(self.experiment), TEST_ALTERNATIVE)
Exemple #22
0
    def test_counts_increment_immediately_once_confirmed_human(self):
        experiment_user = create_user(self.request)
        self.confirm_human(experiment_user)

        experiment_user.set_enrollment(self.experiment, TEST_ALTERNATIVE)
        self.assertEqual(self.participants(TEST_ALTERNATIVE), 1, "Did not count participant after confirm human")