def _deelnemers_aanmaken(self): KampioenschapSchutterBoog( deelcompetitie=self.deelcomp_rayon1_18, sporterboog=self.sporterboog, klasse=self.klasse_r, bij_vereniging=self.sporterboog.sporter.bij_vereniging).save() KampioenschapSchutterBoog( deelcompetitie=self.deelcomp_rayon1_18, sporterboog=self.sporterboog, klasse=self.klasse_r, bij_vereniging=self.sporterboog.sporter.bij_vereniging).save() KampioenschapSchutterBoog( deelcompetitie=self.deelcomp_rayon1_18, sporterboog=self.sporterboog, klasse=self.klasse_r, bij_vereniging=self.sporterboog.sporter.bij_vereniging).save() KampioenschapSchutterBoog( deelcompetitie=self.deelcomp_rayon1_18, sporterboog=self.sporterboog, klasse=self.klasse_c, bij_vereniging=self.sporterboog.sporter.bij_vereniging).save() KampioenschapSchutterBoog( deelcompetitie=self.deelcomp_rayon1_18, sporterboog=self.sporterboog, klasse=self.klasse_c, bij_vereniging=self.sporterboog.sporter.bij_vereniging).save()
def test_bad_wijzig_status(self): self.client.logout() url = self.url_wijzig_status % 999999 with self.assert_max_queries(20): resp = self.client.get(url) self.assert403(resp) # RKO self.e2e_login_and_pass_otp(self.account_rko1_18) self.e2e_wissel_naar_functie(self.functie_rko1_18) with self.assert_max_queries(20): resp = self.client.get(url) self.assert404(resp) # 404 = Not allowed with self.assert_max_queries(20): resp = self.client.post(url) self.assert404(resp) # 404 = Not allowed # verkeerde RKO self.e2e_login_and_pass_otp(self.account_rko2_18) self.e2e_wissel_naar_functie(self.functie_rko2_18) zet_competitie_fase(self.comp_18, 'J') deelnemer = KampioenschapSchutterBoog( deelcompetitie=self.deelcomp_rayon1_18, sporterboog=self.sporterboog, bij_vereniging=self.sporterboog.sporter.bij_vereniging, klasse=self.klasse_r) deelnemer.save() url = self.url_wijzig_status % deelnemer.pk with self.assert_max_queries(20): resp = self.client.get(url) self.assert403(resp) with self.assert_max_queries(20): resp = self.client.post(url) self.assert403(resp)
def test_doorzetten_bk(self): self.e2e_login_and_pass_otp(self.testdata.account_bb) self.e2e_wissel_naar_functie(self.functie_bko_18) url = self.url_doorzetten_bk % self.comp_18.pk # fase M: pagina zonder knop 'doorzetten' zet_competitie_fase(self.comp_18, 'M') self.comp_18.bepaal_fase() self.assertEqual(self.comp_18.fase, 'M') with self.assert_max_queries(20): resp = self.client.get(url) self.assertEqual(resp.status_code, 200) # 200 = OK self.assert_html_ok(resp) self.assert_template_used(resp, ('competitie/bko-doorzetten-naar-bk.dtl', 'plein/site_layout.dtl')) # alle rayonkampioenschappen afsluiten for obj in DeelCompetitie.objects.filter(competitie=self.comp_18, is_afgesloten=False, laag=LAAG_RK): obj.is_afgesloten = True obj.save() # for # fase N: pagina met knop 'doorzetten' zet_competitie_fase(self.comp_18, 'N') self.comp_18.bepaal_fase() self.assertEqual(self.comp_18.fase, 'N') with self.assert_max_queries(20): resp = self.client.get(url) self.assertEqual(resp.status_code, 200) # 200 = OK self.assert_html_ok(resp) self.assert_template_used(resp, ('competitie/bko-doorzetten-naar-bk.dtl', 'plein/site_layout.dtl')) # nu echt doorzetten with self.assert_max_queries(20): resp = self.client.post(url) self.assert_is_redirect(resp, '/bondscompetities/') # redirect = Success self.assertTrue(str(self.deelcomp_bond_18) != '') deelcomp_bk_18 = DeelCompetitie.objects.get(competitie=self.comp_18, laag=LAAG_BK) objs = KampioenschapSchutterBoog.objects.filter(deelcompetitie=deelcomp_bk_18) self.assertEqual(objs.count(), 0) # worden nog niet gemaakt, dus 0 team_klasse = CompetitieKlasse.objects.filter(indiv=None)[0] deeln_bk = KampioenschapSchutterBoog(deelcompetitie=deelcomp_bk_18, sporterboog=self.sporterboog, klasse=team_klasse) self.assertTrue(str(deeln_bk) != '')
def maak_rk_deelnemers(self, afstand, ver_nr, regio_nr): """ Maak de RK deelnemers aan, alsof ze doorgestroomd zijn vanuit de regiocompetitie rank en volgorde wordt ingevuld door maak_label_regiokampioenen afstand = 18 / 25 ver_nr = regio_nr * 10 + volgnummer """ ver = self.vereniging[ver_nr] if afstand == 18: deelcomp_rk = self.deelcomp18_rk[ver.regio.rayon.rayon_nr] klassen = self.comp18_klassen_indiv else: deelcomp_rk = self.deelcomp25_rk[ver.regio.rayon.rayon_nr] klassen = self.comp25_klassen_indiv ag = 7000 # 7.0 ag += ver_nr max_ag = 9000 if (regio_nr % 4) == 0: max_ag = 9500 # zorg dat de regiokampioenen niet allemaal bovenaan staan bulk = list() for sporterboog in (SporterBoog.objects.filter( sporter__bij_vereniging__ver_nr=ver_nr, voor_wedstrijd=True).select_related('boogtype')): ag = 7000 if ag > max_ag else ag + 25 afk = sporterboog.boogtype.afkorting klasse = klassen[afk][0] deelnemer = KampioenschapSchutterBoog( deelcompetitie=deelcomp_rk, sporterboog=sporterboog, klasse=klasse, bij_vereniging=sporterboog.sporter.bij_vereniging, kampioen_label='', volgorde=0, rank=0, # bevestiging_gevraagd_op (date/time) = None # deelname=DEELNAME_ONBEKEND gemiddelde=Decimal(ag) / 1000) bulk.append(deelnemer) # for KampioenschapSchutterBoog.objects.bulk_create(bulk) del bulk
def test_wijzig_status_hwl(self): # HWL self.e2e_login_and_pass_otp(self.account_bko_18) self.e2e_wissel_naar_functie(self.functie_hwl) zet_competitie_fase(self.comp_18, 'J') deelnemer = KampioenschapSchutterBoog( deelcompetitie=self.deelcomp_rayon1_18, sporterboog=self.sporterboog, bij_vereniging=self.sporterboog.sporter.bij_vereniging, klasse=self.klasse_r) deelnemer.save() # probeer als HWL van een andere vereniging de status van deze sporter aan te passen url = self.url_wijzig_status % deelnemer.pk with self.assert_max_queries(20): resp = self.client.get(url) self.assertEqual(resp.status_code, 200) # 200 = OK self.assert_html_ok(resp) with self.assert_max_queries(20): resp = self.client.post(url, {}) self.assertEqual(resp.status_code, 302) # 302 = redirect sporter = self.sporterboog.sporter sporter.bij_vereniging = self.ver_1100 sporter.save() deelnemer = KampioenschapSchutterBoog( deelcompetitie=self.deelcomp_rayon1_18, sporterboog=self.sporterboog, bij_vereniging=self.ver_1100, klasse=self.klasse_r) deelnemer.save() # probeer als HWL van een andere vereniging de status van deze sporter aan te passen url = self.url_wijzig_status % deelnemer.pk with self.assert_max_queries(20): resp = self.client.get(url) self.assert403(resp) with self.assert_max_queries(20): resp = self.client.post(url, {}) self.assert403(resp)
def test_wijzig_status_rko(self): # RKO self.e2e_login_and_pass_otp(self.account_rko1_18) self.e2e_wissel_naar_functie(self.functie_rko1_18) zet_competitie_fase(self.comp_18, 'J') deelnemer = KampioenschapSchutterBoog( deelcompetitie=self.deelcomp_rayon1_18, sporterboog=self.sporterboog, bij_vereniging=self.sporterboog.sporter.bij_vereniging, klasse=self.klasse_r) deelnemer.save() url = self.url_wijzig_status % deelnemer.pk with self.assert_max_queries(20): resp = self.client.get(url) self.assertEqual(resp.status_code, 200) # 200 = OK self.assert_html_ok(resp) self.assert_template_used(resp, ('comprayon/wijzig-status-rk-deelnemer.dtl', 'plein/site_layout.dtl')) # geen vereniging deelnemer.bij_vereniging = None deelnemer.save() with self.assert_max_queries(20): resp = self.client.get(url) self.assertEqual(resp.status_code, 200) # 200 = OK self.assert_html_ok(resp) self.assertEqual(CompetitieMutatie.objects.count(), 0) with self.assert_max_queries(20): resp = self.client.post(url, { 'bevestig': '0', 'afmelden': '0', 'snel': 1 }) self.assertEqual(CompetitieMutatie.objects.count(), 0) with self.assert_max_queries(20): resp = self.client.post(url, { 'bevestig': '0', 'afmelden': '1', 'snel': 1 }) self.assertEqual(CompetitieMutatie.objects.count(), 1) # bevestigen mag niet, want geen lid bij vereniging with self.assert_max_queries(20): resp = self.client.post(url, { 'bevestig': '1', 'afmelden': '0', 'snel': 1 }) self.assertEqual(CompetitieMutatie.objects.count(), 1) # verbouw 'time' en voer een test uit zonder 'snel' time.sleep = self._dummy_sleep with self.assert_max_queries(20): resp = self.client.post(url, {'bevestig': '0', 'afmelden': '1'}) time.sleep = sleep_oud self.assertEqual(CompetitieMutatie.objects.count(), 2)
def test_lijst_rk(self): # RKO self.e2e_login_and_pass_otp(self.account_rko1_18) self.e2e_wissel_naar_functie(self.functie_rko1_18) url = self.url_lijst_rk % self.deelcomp_rayon1_18.pk with self.assert_max_queries(20): resp = self.client.get(url) self.assertEqual(resp.status_code, 200) # 200 = OK self.assert_html_ok(resp) self.assert_template_used( resp, ('comprayon/rko-rk-selectie.dtl', 'plein/site_layout.dtl')) # nu doorzetten naar RK fase self.competitie_sluit_alle_regiocompetities(self.comp_18) self.e2e_login_and_pass_otp(self.account_bko_18) self.e2e_wissel_naar_functie(self.functie_bko_18) resp = self.client.post(self.url_doorzetten_rk % self.comp_18.pk) self.assert_is_redirect_not_plein(resp) # check for success # laat de mutaties verwerken management.call_command('regiocomp_mutaties', '1', '--quick', stderr=io.StringIO(), stdout=io.StringIO()) # zet een limiet limiet = DeelcompetitieKlasseLimiet( deelcompetitie=self.deelcomp_rayon1_18, klasse=self.klasse_r, limiet=20) limiet.save() self.assertTrue(str(limiet) != "") # coverage only # nu nog een keer, met een RK deelnemerslijst self.e2e_login_and_pass_otp(self.account_rko1_18) self.e2e_wissel_naar_functie(self.functie_rko1_18) deelnemer = KampioenschapSchutterBoog( deelcompetitie=self.deelcomp_rayon1_18, sporterboog=self.sporterboog, bij_vereniging=self.sporterboog.sporter.bij_vereniging, klasse=self.klasse_r) deelnemer.save() self.assertTrue(str(deelnemer) != "") # coverage only deelnemer = KampioenschapSchutterBoog( deelcompetitie=self.deelcomp_rayon1_18, sporterboog=self.sporterboog, bij_vereniging=self.sporterboog.sporter.bij_vereniging, klasse=self.klasse_c) deelnemer.save() with self.assert_max_queries(20): resp = self.client.get(url) self.assertEqual(resp.status_code, 200) # 200 = OK self.assert_html_ok(resp) self.assert_template_used( resp, ('comprayon/rko-rk-selectie.dtl', 'plein/site_layout.dtl')) deelnemer.deelname = DEELNAME_JA deelnemer.save() with self.assert_max_queries(20): resp = self.client.get(url) self.assertEqual(resp.status_code, 200) # 200 = OK self.assert_html_ok(resp) self.assert_template_used( resp, ('comprayon/rko-rk-selectie.dtl', 'plein/site_layout.dtl')) deelnemer.rank = 100 deelnemer.save() with self.assert_max_queries(20): resp = self.client.get(url) self.assertEqual(resp.status_code, 200) # 200 = OK self.assert_html_ok(resp) self.assert_template_used( resp, ('comprayon/rko-rk-selectie.dtl', 'plein/site_layout.dtl')) deelnemer.bij_vereniging = None deelnemer.rank = 1 deelnemer.deelname = DEELNAME_NEE deelnemer.save() # twee deelnemers in dezelfde klasse deelnemer.pk = None deelnemer.save() with self.assert_max_queries(20): resp = self.client.get(url) self.assertEqual(resp.status_code, 200) # 200 = OK self.assert_html_ok(resp) self.assert_template_used( resp, ('comprayon/rko-rk-selectie.dtl', 'plein/site_layout.dtl')) url = self.url_lijst_bestand % self.deelcomp_rayon1_18.pk with self.assert_max_queries(20): resp = self.client.get(url) self.assertEqual(resp.status_code, 200) # 200 = OK self.assertContains(resp, "100007") self.assertContains(resp, "Schutter Test") self.assertContains(resp, "[1000] Grote Club") self.assertContains(resp, "(deelname onzeker)") self.assertContains(resp, "Recurve klasse 1")
def test_wijzig_limiet(self): # RKO self.e2e_login_and_pass_otp(self.account_rko1_18) self.e2e_wissel_naar_functie(self.functie_rko1_18) # zonder limiet aanwezig url = self.url_wijzig_limiet % self.deelcomp_rayon1_18.pk with self.assert_max_queries(20): resp = self.client.get(url) self.assertEqual(resp.status_code, 200) # 200 = OK self.assert_html_ok(resp) self.assert_template_used( resp, ('comprayon/wijzig-limieten-rk.dtl', 'plein/site_layout.dtl')) sel = 'sel_%s' % self.klasse_r.pk # limiet op default zetten self.assertEqual(DeelcompetitieKlasseLimiet.objects.count(), 0) with self.assert_max_queries(20): resp = self.client.post(url, {sel: 24, 'snel': 1}) self.assert_is_redirect_not_plein(resp) # check for success self.assertEqual(DeelcompetitieKlasseLimiet.objects.count(), 0) # limiet zetten self.assertEqual(DeelcompetitieKlasseLimiet.objects.count(), 0) with self.assert_max_queries(20): resp = self.client.post(url, {sel: 20, 'snel': 1}) self.assert_is_redirect_not_plein(resp) # check for success self._verwerk_mutaties() self.assertEqual(DeelcompetitieKlasseLimiet.objects.count(), 1) # limiet opnieuw zetten, geen wijziging with self.assert_max_queries(20): resp = self.client.post(url, {sel: 20, 'snel': 1}) self.assert_is_redirect_not_plein(resp) # check for success self._verwerk_mutaties() self.assertEqual(DeelcompetitieKlasseLimiet.objects.count(), 1) # limiet aanpassen with self.assert_max_queries(20): resp = self.client.post(url, {sel: 16, 'snel': 1}) self.assert_is_redirect_not_plein(resp) # check for success self._verwerk_mutaties() self.assertEqual(DeelcompetitieKlasseLimiet.objects.count(), 1) # met limiet aanwezig url = self.url_wijzig_limiet % self.deelcomp_rayon1_18.pk with self.assert_max_queries(20): resp = self.client.get(url) self.assertEqual(resp.status_code, 200) # 200 = OK self.assert_html_ok(resp) # limiet verwijderen, zonder 'snel' time.sleep = self._dummy_sleep with self.assert_max_queries(20): resp = self.client.post(url, {sel: 24}) self.assert_is_redirect_not_plein(resp) # check for success self._verwerk_mutaties() self.assertEqual(DeelcompetitieKlasseLimiet.objects.count(), 0) time.sleep = sleep_oud # nu met een deelnemer, zodat de mutatie opgestart wordt deelnemer = KampioenschapSchutterBoog( deelcompetitie=self.deelcomp_rayon1_18, sporterboog=self.sporterboog, bij_vereniging=self.sporterboog.sporter.bij_vereniging, klasse=self.klasse_r) deelnemer.save() aantal = CompetitieMutatie.objects.count() with self.assert_max_queries(20): resp = self.client.post(url, {sel: 4, 'snel': 1}) self.assert_is_redirect_not_plein(resp) # check for success self._verwerk_mutaties() self.assertEqual(CompetitieMutatie.objects.count(), aantal + 1)