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")
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")
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')
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 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)
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
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")
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")
def confirm_human(request): experiment_user = create_user(request) experiment_user.confirm_human() return HttpResponse(status=204)
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)
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)
def enrollment_initially_none(self,): experiment_user = create_user(self.request) self.assertEqual(experiment_user.get_enrollment(self.experiment), None)
def enrollment_initially_none(self, ): experiment_user = create_user(self.request) self.assertEqual(experiment_user.get_enrollment(self.experiment), None)
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")