def test_recalculate_results(self): util.rebuild_denorm_models( [self.objs.teams.last_year, self.objs.teams.other_subsidiary]) queryset = models.UserAttendance.objects.all() actions.recalculate_results(self.modeladmin, self.request, queryset) message = get_messages(self.request)._queued_messages[0].message self.assertEqual(str(message), "Výsledky přepočítány")
def test_admin_draw_results_fq_lb(self): models.Payment.objects.create( user_attendance_id=self.objs.userattendances.userattendance2.pk, status=models.Status.DONE, amount=1, ) models.Payment.objects.create( user_attendance_id=self.objs.userattendances.registered.pk, status=models.Status.DONE, amount=1, ) util.rebuild_denorm_models( models.UserAttendance.objects.filter(id__in=[ self.objs.userattendances.userattendance2.pk, self.objs.userattendances.registered.pk, ], ), ) competition = models.Competition.objects.get(slug="FQ-LB") cr = models.CompetitionResult.objects.get( team_id=self.objs.teams.basic.pk, competition=competition) cr.result = 0.8 cr.save() address = reverse("admin_draw_results", kwargs={"competition_slug": "FQ-LB"}) response = self.client.get(address) self.assertContains( response, "Testing team 1 z organizace Testing company", ) self.assertContains( response, "pravidelnost jízd 80 %", ) self.assertContains( response, " <ul>" " <li>" " Testing User: "******" </li>" " </ul>", html=True, ) self.assertContains( response, " <ul>" " <li>" " Testing User 1: " " </li>" " </ul>", html=True, ) self.assertContains( response, " " " <ul>" " <li>" " Registered User 1: " " </li>" " </ul>", html=True, )
def test_touch_items_user_attendance(self): util.rebuild_denorm_models(models.Team.objects.filter(pk__in=[2, 3])) queryset = models.UserAttendance.objects.all() actions.touch_items(self.modeladmin, self.request, queryset) message = get_messages(self.request)._queued_messages[0].message self.assertEquals( str(message), "Obnova 8 denormalizovaných položek byla zadána ke zpracování")
def setUp(self): super().setUp() self.client = APIClient(HTTP_HOST="testing-campaign.testserver", HTTP_REFERER="test-referer") self.client.force_login(User.objects.get(pk=1128), settings.AUTHENTICATION_BACKENDS[0]) util.rebuild_denorm_models(Team.objects.filter(pk=1)) util.rebuild_denorm_models(UserAttendance.objects.filter(pk=1115))
def setUp(self): self.client = Client(HTTP_HOST="testing-campaign.testserver") self.client.force_login(User.objects.get(username='******'), settings.AUTHENTICATION_BACKENDS[0]) util.rebuild_denorm_models( models.UserAttendance.objects.filter(pk__in=[1115, 2115, 1015])) util.rebuild_denorm_models(Team.objects.filter(pk=1)) self.user_attendance = UserAttendance.objects.filter(pk=1115)
def test_payment_unknown_none(self): models.Payment.objects.all().delete() util.rebuild_denorm_models(models.Team.objects.filter(pk__in=[1, 3])) util.rebuild_denorm_models(models.UserAttendance.objects.filter(pk=1016)) user = models.UserAttendance.objects.get(pk=1016) self.assertEqual(user.payment_status, "none") self.assertEqual(user.representative_payment, None) self.assertEqual(user.payment_class(), "error") self.assertEqual(str(user.get_payment_status_display()), "žádné platby")
def test_touch_items_user_attendance(self): util.rebuild_denorm_models( [self.objs.teams.last_year, self.objs.teams.other_subsidiary]) queryset = models.UserAttendance.objects.all() actions.touch_items(self.modeladmin, self.request, queryset) message = get_messages(self.request)._queued_messages[0].message self.assertEqual( str(message), "Obnova 8 denormalizovaných položek byla zadána ke zpracování")
def setUp(self): PriceLevelRecipe.make() self.user_attendance = UserAttendancePaidRecipe.make( approved_for_team='approved') util.rebuild_denorm_models([self.user_attendance]) util.rebuild_denorm_models([self.user_attendance.team]) self.user_attendance.refresh_from_db() self.user_attendance.team.refresh_from_db() ContentType.objects.clear_cache( ) # https://groups.google.com/forum/#!topic/django-users/g88m9u8-ozs
def test_approve_am_payment(self): self.objs.payments.done_bill_ua2115.delete() util.rebuild_denorm_models([self.objs.userattendances.registered]) queryset = models.UserAttendance.objects.all() payment = self.objs.payments.new_bill_2014 self.assertEqual(payment.status, 1) actions.approve_am_payment(self.modeladmin, self.request, queryset) payment = models.Payment.objects.get(pk=self.objs.payments.new_bill_2014.pk) self.assertEqual(payment.status, 99) message = get_messages(self.request)._queued_messages[0].message self.assertEqual(str(message), "Platby potvrzeny")
def setUp(self): self.modeladmin = admin.ModelAdmin(models.UserAttendance, "") self.factory = RequestFactory() self.request = self.factory.get("") self.request.subdomain = "testing-campaign" self.request.user = models.User.objects.get(username="******") setattr(self.request, 'session', 'session') self.messages = FallbackStorage(self.request) setattr(self.request, '_messages', self.messages) call_command('denorm_init') util.rebuild_denorm_models(models.Team.objects.filter(pk=1))
def test_approve_am_payment(self): models.Payment.objects.get(pk=17).delete() util.rebuild_denorm_models( models.UserAttendance.objects.filter(pk=2115)) queryset = models.UserAttendance.objects.all() payment = models.Payment.objects.get(pk=5) self.assertEquals(payment.status, 1) actions.approve_am_payment(self.modeladmin, self.request, queryset) payment = models.Payment.objects.get(pk=5) self.assertEquals(payment.status, 99) message = get_messages(self.request)._queued_messages[0].message self.assertEquals(str(message), "Platby potvrzeny")
def test_admin_draw_results_fq_lb_not_all_paying(self): models.Payment.objects.all().delete() util.rebuild_denorm_models( models.UserAttendance.objects.filter(id__in=[1115, 1015, 2115])) competition = models.Competition.objects.get(slug="FQ-LB") cr = models.CompetitionResult.objects.get(team_id=1, competition=competition) cr.result = 0.8 cr.save() address = reverse('admin_draw_results', kwargs={'competition_slug': "FQ-LB"}) response = self.client.get(address) self.assertContains(response, "Tato soutěž nemá žádné týmy splňující kritéria")
def test_admin_questionnaire_answers_no_permission(self): util.rebuild_denorm_models( models.UserAttendance.objects.filter(pk=2115)) competition = models.Competition.objects.filter(slug="FQ-LB") competition.get().recalculate_results() cr = models.CompetitionResult.objects.get( competition=competition.get()) address = "%s?uid=%s" % (reverse('admin_questionnaire_answers', kwargs={'competition_slug': "FQ-LB" }), cr.id) response = self.client.get(address) self.assertContains( response, "Soutěž je vypsána ve městě, pro které nemáte oprávnění.")
def test_get_userprofile_frequency(self): competition = mommy.make( 'Competition', competition_type='frequency', competitor_type='team', campaign=self.testing_campaign, date_from=datetime.date(2017, 4, 3), date_to=datetime.date(2017, 5, 23), commute_modes=models.CommuteMode.objects.filter( slug__in=('bicycle', 'by_foot')), ) util.rebuild_denorm_models([self.user_attendance]) self.user_attendance.refresh_from_db() self.user_attendance.team.refresh_from_db() result = self.user_attendance.get_rides_count_denorm self.assertEquals(result, 3) result = self.user_attendance.get_working_rides_base_count() self.assertEquals(result, 48) result = self.user_attendance.frequency self.assertEquals(result, 0.0625) result = self.user_attendance.team.frequency self.assertEquals(result, 0.03125) result = self.user_attendance.team.get_rides_count_denorm self.assertEquals(result, 3) result = self.user_attendance.team.get_working_trips_count() self.assertEquals(result, 96) result = results.get_working_trips_count(self.user_attendance, competition) self.assertEquals(result, 48) result = results.get_userprofile_frequency(self.user_attendance, competition) self.assertEquals(result, (3, 48, 3 / 48.0)) result = results.get_team_frequency( self.user_attendance.team.members(), competition) self.assertEquals(result, (3, 96, 3 / 96.0))
def test_admin_draw_results_fq_lb_not_all_paying(self): models.Payment.objects.all().delete() util.rebuild_denorm_models( models.UserAttendance.objects.filter(id__in=[ self.objs.userattendances.userattendance.pk, self.objs.userattendances.userattendance2.pk, self.objs.userattendances.registered.pk, ], ), ) competition = models.Competition.objects.get(slug="FQ-LB") cr = models.CompetitionResult.objects.get( team_id=self.objs.teams.basic.pk, competition=competition) cr.result = 0.8 cr.save() address = reverse("admin_draw_results", kwargs={"competition_slug": "FQ-LB"}) response = self.client.get(address) self.assertContains(response, "Tato soutěž nemá žádné týmy splňující kritéria")
def test_admin_draw_results_fq_lb(self): models.Payment.objects.create(user_attendance_id=1015, status=models.Status.DONE, amount=1) models.Payment.objects.create(user_attendance_id=2115, status=models.Status.DONE, amount=1) util.rebuild_denorm_models( models.UserAttendance.objects.filter(id__in=[1015, 2115])) competition = models.Competition.objects.get(slug="FQ-LB") cr = models.CompetitionResult.objects.get(team_id=1, competition=competition) cr.result = 0.8 cr.save() address = reverse('admin_draw_results', kwargs={'competition_slug': "FQ-LB"}) response = self.client.get(address) self.assertContains( response, "<li>" "1. tah: Tým Testing team 1 z organizace Testing company" "<br/>" "pravidelnost jízd 80 %" " <br/>" " Členové:" " <ul>" " <li>" " Testing User: "******" </li>" " </ul>" " <ul>" " <li>" " Testing User 1: " " </li>" " </ul>" " " " <ul>" " <li>" " Registered User 1: " " </li>" " </ul>" "</li>", html=True, )
def test_name_with_members(self): util.rebuild_denorm_models(models.Team.objects.filter(pk__in=[2, 3])) user_attendance = models.UserAttendance.objects.get(pk=1115) user_attendance.team.save() call_command('denorm_flush') self.assertEqual( user_attendance.team.name_with_members, "Testing team 1 (Nick, Registered User 1, Testing User 1)") self.assertEqual(user_attendance.team.unapproved_member_count, 0) self.assertEqual(user_attendance.team.member_count, 3) user_attendance.userprofile.nickname = "Testing nick" user_attendance.userprofile.save() call_command('denorm_flush') user_attendance = models.UserAttendance.objects.get(pk=1115) self.assertEqual( user_attendance.team.name_with_members, "Testing team 1 (Nick, Registered User 1, Testing nick)") self.assertEqual(user_attendance.team.unapproved_member_count, 0) self.assertEqual(user_attendance.team.member_count, 3)
def test_get_userprofile_length(self): competition = mommy.make( 'Competition', competition_type='length', competitor_type='single_user', campaign=self.testing_campaign, date_from=datetime.date(2017, 4, 3), date_to=datetime.date(2017, 5, 23), commute_modes=models.CommuteMode.objects.filter( slug__in=('bicycle', 'by_foot')), ) result = results.get_userprofile_length([self.user_attendance], competition) self.assertEquals(result, 5.0) util.rebuild_denorm_models([self.user_attendance]) self.user_attendance.refresh_from_db() result = self.user_attendance.trip_length_total self.assertEquals(result, 5.0)
def test_get_userprofile_length_recreational(self): competition = mommy.make( "Competition", competition_type="length", competitor_type="single_user", campaign=self.testing_campaign, date_from=datetime.date(2017, 4, 3), date_to=datetime.date(2017, 5, 23), commute_modes=models.CommuteMode.objects.filter( slug__in=("bicycle", "by_foot")), ) result = results.get_userprofile_length([self.user_attendance], competition, recreational=True) self.assertEqual(result, 8.0) util.rebuild_denorm_models([self.user_attendance]) self.user_attendance.refresh_from_db() result = self.user_attendance.total_trip_length_including_recreational self.assertEqual(result, 8.0)
def setUp(self): self.objs = Fixtures({ "userattendances", "campaigns", "payments", "phases", "price_levels", "teams", "invoices", "trips", "company_admins", "competitions", }) self.modeladmin = admin.ModelAdmin(models.UserAttendance, "") self.factory = RequestFactory() self.request = self.factory.get("") self.request.subdomain = "testing-campaign" self.request.user = self.objs.users.user setattr(self.request, "session", "session") self.messages = FallbackStorage(self.request) setattr(self.request, "_messages", self.messages) call_command("denorm_init") util.rebuild_denorm_models([self.objs.teams.basic])
def setUp(self): super().setUp() self.campaign = CampaignRecipe.make( slug="testing-campaign", name='Testing campaign', mailing_list_type='campaign_monitor', mailing_list_id='12345abcde', pk=339, year=2019, ) util.rebuild_denorm_models(models.Team.objects.filter(pk=1)) self.client = Client(HTTP_HOST="testing-campaign.testserver") PriceLevelRecipe.make() self.user_attendance = UserAttendancePaidRecipe.make( approved_for_team='approved', personal_data_opt_in=True, userprofile__user__pk=1128, team__subsidiary__city__slug='testing-city', userprofile__mailing_opt_in=True, userprofile__sex='male', userprofile__user__email='*****@*****.**', userprofile__user__first_name='Testing', userprofile__user__last_name='User 1', ) mommy.make( 'CompanyAdmin', userprofile=self.user_attendance.userprofile, campaign=self.campaign, company_admin_approved='approved', ) UserAttendancePaidRecipe.make( team=self.user_attendance.team, approved_for_team='approved', ) UserAttendancePaidRecipe.make( team=self.user_attendance.team, approved_for_team='approved', ) util.rebuild_denorm_models(models.UserAttendance.objects.all()) util.rebuild_denorm_models(models.Team.objects.all()) Token.objects.filter( user=self.user_attendance.userprofile.user).update( key='d201a3c9e88ecd433fdbbc3a2e451cbd3f80c4ba') self.user_attendance.refresh_from_db() self.user_attendance.team.refresh_from_db() self.user_attendance.userprofile.user.refresh_from_db() self.campaign.refresh_from_db()
def __init__(self, userattendances, teams, **kwargs): self.new_klub_pratel = mommy.make( # was pk=9 "dpnk.payment", amount=150, pay_type="am", user_attendance=userattendances.registered, status=1, created="2015-1-01", ) self.new_bill_2014 = mommy.make( # was pk=5 "dpnk.payment", amount=150, pay_type="fc", trans_id="2055-1", session_id="2075-1J1455206453", user_attendance=userattendances.registered, status=1, created="2014-12-01", ) self.no_status_ua1115 = mommy.make( # was pk=3 "dpnk.payment", amount=150, trans_id="2075-1", session_id="2075-1J1455206433", user_attendance=userattendances.userattendance, ) self.done_bill_ua1115 = mommy.make( # was pk=4 "dpnk.payment", amount=145, pay_type="fc", trans_id="2075-2", session_id="2075-1J1455206444", user_attendance=userattendances.userattendance, status=99, realized="2010-11-01", ) self.done_bill_ua1015 = mommy.make( # was pk=16 "dpnk.payment", amount=145, pay_type="fc", trans_id="2075-2", session_id="2075-1J145520666", user_attendance=userattendances.userattendance2, status=99, realized="2010-11-01", ) self.done_bill_ua2115 = mommy.make( # was pk=17 "dpnk.payment", amount=145, pay_type="fc", trans_id="2075-3", session_id="2075-1J145520667", user_attendance=userattendances.registered, status=99, realized="2010-11-01", ) self.done_bill_ua1016 = mommy.make( # was pk=18 "dpnk.payment", amount=145, pay_type="fc", trans_id="2075-3", session_id="2075-1J145520668", user_attendance=userattendances.null_userattendance, status=99, realized="2010-11-01", ) util.rebuild_denorm_models([ userattendances.null_userattendance, userattendances.registered, userattendances.userattendance2, userattendances.userattendance, ]) util.rebuild_denorm_models([ teams.basic, teams.last_year, teams.other_subsidiary, ])
def __init__(self, users, teams, tshirt_sizes, campaigns, **kwargs): with suppress_autotime(UserAttendance, ["created", "updated"]): self.userattendance = mommy.make( # was pk=1115 "dpnk.userattendance", approved_for_team="approved", campaign=campaigns.c2010, created="2015-11-12T18:18:40.223", get_rides_count_denorm=0, t_shirt_size=tshirt_sizes.basic, team=teams.basic, updated="2015-11-12T18:18:40.223", payment_status="done", personal_data_opt_in=True, userprofile=users.userprofile, ) self.userattendance2009 = mommy.make( # was pk=1116 "dpnk.userattendance", approved_for_team="approved", campaign=campaigns.c2009, created="2015-11-12T18:18:40.223", get_rides_count_denorm=0, t_shirt_size=tshirt_sizes.basic, team=teams.last_year, updated="2015-11-12T18:18:40.223", personal_data_opt_in=True, userprofile=users.userprofile, ) self.userattendance2 = mommy.make( # was pk=1015 "dpnk.userattendance", approved_for_team="approved", campaign=campaigns.c2010, created="2015-11-12T18:18:40.223", get_rides_count_denorm=0, t_shirt_size=None, team=teams.basic, updated="2015-11-12T18:18:40.223", payment_status="done", personal_data_opt_in=True, userprofile=users.user2_userprofile, ) self.null_userattendance = mommy.make( # was pk=1016 "dpnk.userattendance", approved_for_team="approved", campaign=campaigns.c2010, created="2015-11-12T18:18:40.223", get_rides_count_denorm=0, t_shirt_size=None, team=teams.other_subsidiary, updated="2015-11-12T18:18:40.223", userprofile=users.null_userprofile, ) self.whithout_team = mommy.make( # was pk=3 "dpnk.userattendance", approved_for_team="undecided", campaign=campaigns.c2010, created="2015-11-12T18:18:40.223", distance=None, get_rides_count_denorm=0, t_shirt_size=None, team=None, updated="2015-11-12T18:18:40.223", userprofile=users.user_without_team_userprofile, ) self.unapproved_userattendance = mommy.make( # was pk=5 "dpnk.userattendance", approved_for_team="undecided", campaign=campaigns.c2010, created="2015-11-12T18:18:40.223", get_rides_count_denorm=0, t_shirt_size=None, team=teams.other_subsidiary, updated="2015-11-12T18:18:40.223", userprofile=users.unapproved_user_userprofile, ) self.todo_useraddendance_for_user_without_userattendance = ( mommy.make( # was pk=1027 "dpnk.userattendance", approved_for_team="approved", campaign=campaigns.c2009, created="2015-11-12T18:18:40.223", get_rides_count_denorm=0, t_shirt_size=tshirt_sizes.basic, team=None, updated="2015-11-12T18:18:40.223", userprofile=users.user_without_userattendance_userprofile, )) self.registered = mommy.make( # was pk=2115 "dpnk.userattendance", approved_for_team="approved", campaign=campaigns.c2010, created="2015-11-12T18:18:40.223", get_rides_count_denorm=0, t_shirt_size=tshirt_sizes.basic, team=teams.basic, updated="2015-11-12T18:18:40.223", payment_status="done", personal_data_opt_in=True, userprofile=users.registered_user_userprofile, ) util.rebuild_denorm_models([self.userattendance, self.userattendance2])
def test_recalculate_results(self): util.rebuild_denorm_models(models.Team.objects.filter(pk__in=[2, 3])) queryset = models.UserAttendance.objects.all() actions.recalculate_results(self.modeladmin, self.request, queryset) message = get_messages(self.request)._queued_messages[0].message self.assertEquals(str(message), "Výsledky přepočítány")
def setUp(self): super().setUp() util.rebuild_denorm_models( models.Team.objects.filter(pk__in=[4, 3, 1]))
def setUp(self): super().setUp() util.rebuild_denorm_models( models.UserAttendance.objects.filter(pk__in=[1115, 2115, 1015])) util.rebuild_denorm_models(models.Team.objects.filter(pk=1))