def setUp(self): """ eenmalige setup voor alle tests wordt als eerste aangeroepen """ competities_aanmaken(jaar=2019) self.rk_deelcomp_1 = DeelCompetitie.objects.get(laag=LAAG_RK, competitie=self.testdata.comp18, nhb_rayon__rayon_nr=1)
def test_regio_settings_overnemen(self): self.e2e_login_and_pass_otp(self.testdata.account_bb) self.e2e_wisselnaarrol_bb() self.e2e_check_rol('BB') self.assertEqual(DeelCompetitie.objects.count(), 0) # maak een competitie aan competities_aanmaken(jaar=2019) dagdelen_105_18 = "%s,%s,%s" % (DAGDEEL_AFKORTINGEN[0], DAGDEEL_AFKORTINGEN[1], DAGDEEL_AFKORTINGEN[2]) dagdelen_105_25 = "%s,%s,%s" % (DAGDEEL_AFKORTINGEN[3], DAGDEEL_AFKORTINGEN[4], DAGDEEL_AFKORTINGEN[0]) # pas regio-instellingen aan deelcomp = DeelCompetitie.objects.get(competitie__afstand=18, nhb_regio__regio_nr=101) deelcomp.inschrijf_methode = INSCHRIJF_METHODE_1 deelcomp.save() deelcomp = DeelCompetitie.objects.get(competitie__afstand=18, nhb_regio__regio_nr=105) deelcomp.inschrijf_methode = INSCHRIJF_METHODE_3 deelcomp.toegestane_dagdelen = dagdelen_105_18 deelcomp.save() deelcomp = DeelCompetitie.objects.get(competitie__afstand=25, nhb_regio__regio_nr=105) deelcomp.inschrijf_methode = INSCHRIJF_METHODE_3 deelcomp.toegestane_dagdelen = dagdelen_105_25 deelcomp.save() # maak opnieuw een competitie aan # maak een competitie aan competities_aanmaken(jaar=2020) # controleer dat de settings overgenomen zijn for deelcomp in (DeelCompetitie.objects.select_related( 'competitie', 'nhb_regio').filter(nhb_regio__regio_nr=101)): if deelcomp.competitie.afstand == '18': self.assertEqual(deelcomp.inschrijf_methode, INSCHRIJF_METHODE_1) else: self.assertEqual(deelcomp.inschrijf_methode, INSCHRIJF_METHODE_2) # for for deelcomp in (DeelCompetitie.objects.select_related( 'competitie', 'nhb_regio').filter(nhb_regio__regio_nr=105)): self.assertEqual(deelcomp.inschrijf_methode, INSCHRIJF_METHODE_3) if deelcomp.competitie.afstand == '18': self.assertEqual(deelcomp.toegestane_dagdelen, dagdelen_105_18) else: self.assertEqual(deelcomp.toegestane_dagdelen, dagdelen_105_25)
def _maak_competitie_aan(self): # maak de competitie aan competities_aanmaken() self.comp = comp_18 = Competitie.objects.get(afstand='18') comp_25 = Competitie.objects.get(afstand='25') score_indiv_ag_opslaan(self.sporterboog_100005, 18, 9.500, None, "Test") # klassengrenzen vaststellen competitie_klassengrenzen_vaststellen(comp_18) competitie_klassengrenzen_vaststellen(comp_25) self.deelcomp_r101 = DeelCompetitie.objects.filter( laag=LAAG_REGIO, competitie=self.comp, nhb_regio=self.regio_101)[0] # login als BB self.e2e_login_and_pass_otp(self.account_bb) # wissel naar RCL functie self.e2e_wissel_naar_functie(self.deelcomp_r101.functie) # maak een regioplanning aan met 2 wedstrijden self.client.post(self.url_planning_regio % self.deelcomp_r101.pk) ronde = DeelcompetitieRonde.objects.all()[0] # maak 7 wedstrijden aan self.client.post(self.url_planning_regio_ronde % ronde.pk, {}) self.client.post(self.url_planning_regio_ronde % ronde.pk, {}) self.client.post(self.url_planning_regio_ronde % ronde.pk, {}) self.client.post(self.url_planning_regio_ronde % ronde.pk, {}) self.client.post(self.url_planning_regio_ronde % ronde.pk, {}) self.client.post(self.url_planning_regio_ronde % ronde.pk, {}) self.client.post(self.url_planning_regio_ronde % ronde.pk, {}) self.assertEqual(7, CompetitieWedstrijd.objects.count()) wedstrijd_pks = CompetitieWedstrijd.objects.all().values_list( 'pk', flat=True) # laat de wedstrijd.uitslag aanmaken en pas de wedstrijd nog wat aan self.uitslagen = list() uur = 1 for pk in wedstrijd_pks[:]: # copy to ensure stable with self.assert_max_queries(20): resp = self.client.get(self.url_uitslag_invoeren % pk) wedstrijd = CompetitieWedstrijd.objects.get(pk=pk) self.assertIsNotNone(wedstrijd.uitslag) wedstrijd.vereniging = self.ver wedstrijd.tijd_begin_wedstrijd = "%02d:00" % uur uur = (uur + 1) % 24 wedstrijd.save() self.uitslagen.append(wedstrijd.uitslag) # for # maak nog een wedstrijd aan - die blijft zonder uitslag self.client.post(self.url_planning_regio_ronde % ronde.pk, {})
def _create_competitie(self): # BB worden self.e2e_login_and_pass_otp(self.testdata.account_bb) self.e2e_wisselnaarrol_bb() self.e2e_check_rol('BB') self.assertEqual(CompetitieKlasse.objects.count(), 0) competities_aanmaken() self.comp_18 = Competitie.objects.get(afstand='18') self.comp_25 = Competitie.objects.get(afstand='25')
def _create_competitie(self): # BB worden self.e2e_login_and_pass_otp(self.testdata.account_bb) self.e2e_wisselnaarrol_bb() self.e2e_check_rol('BB') self.assertEqual(CompetitieKlasse.objects.count(), 0) competities_aanmaken() self.comp_18 = Competitie.objects.get(afstand='18') self.comp_25 = Competitie.objects.get(afstand='25') self.deelcomp_regio = DeelCompetitie.objects.get( laag=LAAG_REGIO, nhb_regio=self.regio_111, competitie__afstand=18)
def test_klassengrenzen_vaststellen(self): self.e2e_login_and_pass_otp(self.testdata.account_bb) self.e2e_wisselnaarrol_bb() self.e2e_check_rol('BB') # maak de competities aan - de voorwaarde om AG's vast te stellen competities_aanmaken() # 18m competitie comp18 = Competitie.objects.filter(afstand='18')[0] comp18_pk = comp18.pk url = self.url_klassengrenzen_vaststellen % comp18_pk with self.assert_max_queries(32, check_duration=False): resp = self.client.get(url) self.assertEqual(resp.status_code, 200) # 200 = OK self.assert_html_ok(resp) self.assert_template_used( resp, ('competitie/bb-klassengrenzen-vaststellen.dtl', 'plein/site_layout.dtl')) # nu kunnen we met een POST de klassengrenzen vaststellen count = CompetitieKlasse.objects.filter(competitie=comp18, min_ag__gt=0).count() self.assertEqual(count, 0) with self.assert_max_queries(86): resp = self.client.post(url) self.assert_is_redirect_not_plein(resp) # redirect = success count = CompetitieKlasse.objects.filter(competitie=comp18, min_ag__gt=0).count() self.assertTrue(count > 20) # TODO: check nog meer velden van de aangemaakte objecten # coverage: nog een keer vaststellen with self.assert_max_queries(20): resp = self.client.get(url) self.assertEqual(resp.status_code, 200) # 200 = OK count1 = CompetitieKlasse.objects.filter(competitie=comp18).count() with self.assert_max_queries(20): resp = self.client.post(url) self.assert_is_redirect_not_plein(resp) # redirect = success count2 = CompetitieKlasse.objects.filter(competitie=comp18).count() self.assertEqual(count1, count2) # coverage obj = CompetitieKlasse.objects.all()[0] self.assertTrue(str(obj) != "") obj.indiv = None obj.team = TeamWedstrijdklasse.objects.all()[0] self.assertTrue(str(obj) != "")
def setUp(self): """ initialisatie van de test case """ self.account_normaal = self.e2e_create_account('normaal', '*****@*****.**', 'Normaal', accepteer_vhpg=True) rayon_1 = NhbRayon.objects.get(rayon_nr=1) regio_101 = NhbRegio.objects.get(regio_nr=101) regio_105 = NhbRegio.objects.get(regio_nr=105) # creëer een competitie met deelcompetities competities_aanmaken(jaar=2019) deel1 = DeelCompetitie.objects.filter(laag=LAAG_BK)[0] self.functie_bko1 = deel1.functie self.functie_bko2 = DeelCompetitie.objects.filter( laag=LAAG_BK)[1].functie self.functie_rko1 = DeelCompetitie.objects.filter( laag=LAAG_RK, competitie=deel1.competitie, nhb_rayon=rayon_1)[0].functie self.functie_rcl101 = DeelCompetitie.objects.filter( laag=LAAG_REGIO, competitie=deel1.competitie, nhb_regio=regio_101)[0].functie self.functie_rcl105 = DeelCompetitie.objects.filter( laag=LAAG_REGIO, competitie=deel1.competitie, nhb_regio=regio_105)[0].functie # maak een test vereniging ver = NhbVereniging() ver.naam = "Grote Club" ver.ver_nr = "1000" ver.regio = regio_105 # secretaris kan nog niet ingevuld worden ver.save() self.nhbver1 = ver self.functie_sec = maak_functie("SEC test", "SEC") self.functie_sec.nhb_ver = ver self.functie_sec.save() self.functie_hwl = maak_functie("HWL test", "HWL") self.functie_hwl.nhb_ver = ver self.functie_hwl.save() self.functie_wl = maak_functie("WL test", "WL") self.functie_wl.nhb_ver = ver self.functie_wl.save()
def test_klassengrenzen_vaststellen_cornercases(self): self.e2e_login_and_pass_otp(self.testdata.account_bb) self.e2e_wisselnaarrol_bb() self.e2e_check_rol('BB') competities_aanmaken() # illegale competitie with self.assert_max_queries(20): resp = self.client.get(self.url_klassengrenzen_vaststellen % 'xx') self.assert404(resp) with self.assert_max_queries(20): resp = self.client.post(self.url_klassengrenzen_vaststellen % 'xx') self.assert404(resp) with self.assert_max_queries(20): resp = self.client.get(self.url_klassengrenzen_tonen % 999999) self.assert404(resp)
def maak_competities_en_zet_fase_b(startjaar=None): """ Competities 18m en 25m aanmaken, AG vaststellen, klassengrenzen vaststelen, instellen op fase B """ # dit voorkomt kennis en afhandelen van achtergrondtaken in alle applicatie test suites # competitie aanmaken competities_aanmaken(startjaar) comp_18 = Competitie.objects.get(afstand='18') comp_25 = Competitie.objects.get(afstand='25') # aanvangsgemiddelden vaststellen aanvangsgemiddelden_vaststellen_voor_afstand(18) aanvangsgemiddelden_vaststellen_voor_afstand(25) # klassengrenzen vaststellen competitie_klassengrenzen_vaststellen(comp_18) competitie_klassengrenzen_vaststellen(comp_25) zet_competitie_fase(comp_18, 'B') zet_competitie_fase(comp_25, 'B') return comp_18, comp_25
def test_ag_vaststellen_cornercases(self): self.e2e_login_and_pass_otp(self.testdata.account_bb) self.e2e_wisselnaarrol_bb() # maak de competities aan - de voorwaarde om AG's vast te stellen competities_aanmaken() # geen HistCompIndividueel HistCompetitieIndividueel.objects.all().delete() # haal het AG scherm op with self.assert_max_queries(20): resp = self.client.get(self.url_ag_vaststellen_afstand % 18) self.assertEqual(resp.status_code, 200) self.assert_html_ok(resp) # probeer de POST with self.assert_max_queries(15): resp = self.client.post(self.url_ag_vaststellen_afstand % 18, {'snel': 1}) self.assert_is_redirect_not_plein(resp) # geen HistComp HistCompetitie.objects.all().delete() # haal het AG scherm op with self.assert_max_queries(20): resp = self.client.get(self.url_ag_vaststellen_afstand % 18) self.assertEqual(resp.status_code, 200) self.assert_html_ok(resp) # probeer de POST with self.assert_max_queries(5): resp = self.client.post(self.url_ag_vaststellen_afstand % 18, {'snel': 1}) self.assert_is_redirect_not_plein(resp)
def test_dubbel_aanmaken(self): self.e2e_login_and_pass_otp(self.testdata.account_bb) self.e2e_wisselnaarrol_bb() self.e2e_check_rol('BB') # probeer de competities aan te maken terwijl ze al bestaan # verifieer geen effect competities_aanmaken() with self.assert_max_queries(20): resp = self.client.get(self.url_aanmaken) self.assertEqual(resp.status_code, 200) # 200 = OK self.assert_html_ok(resp) self.assert_template_used(resp, ('competitie/bb-competities-aanmaken.dtl', 'plein/site_layout.dtl')) self.assertContains(resp, "Wat doe je hier?") with self.assert_max_queries(20): resp = self.client.post(self.url_aanmaken) self.assert_is_redirect(resp, self.url_kies) self.assertEqual(Competitie.objects.count(), 2) self.assertEqual(DeelCompetitie.objects.count(), 2 * (1 + 4 + 16))
def test_ag_vaststellen(self): self.e2e_login_and_pass_otp(self.testdata.account_bb) # trigger de permissie check (want: verkeerde rol) self.e2e_wisselnaarrol_gebruiker() with self.assert_max_queries(20): resp = self.client.get(self.url_ag_vaststellen_afstand % '18') self.assert403(resp) self.e2e_wisselnaarrol_bb() self.e2e_check_rol('BB') # trigger de permissie check (want: geen competitie aangemaakt) with self.assert_max_queries(20): resp = self.client.get(self.url_ag_vaststellen_afstand % '18') self.assert404(resp) # maak de competities aan - de voorwaarde om AG's vast te stellen competities_aanmaken() comp = Competitie.objects.get(afstand=25, is_afgesloten=False) # controleer dat het "ag vaststellen" kaartje er is # om te beginnen zonder "voor het laatst gedaan" with self.assert_max_queries(20): resp = self.client.get(self.url_overzicht % comp.pk) urls = self.extract_all_urls(resp) self.assertTrue(self.url_ag_vaststellen_afstand % comp.afstand in urls) self.assertNotContains(resp, "voor het laatst gedaan") # verander de fase van de 25m competitie zodat we verschillen hebben comp = Competitie.objects.get(afstand=25, is_afgesloten=False) CompetitieKlasse(competitie=comp, min_ag=25.0).save() comp.klassengrenzen_vastgesteld = True comp.save() # maak nog een hele bak AG's aan self._maak_many_histcomp() # haal het AG scherm op with self.assert_max_queries(20): resp = self.client.get(self.url_ag_vaststellen_afstand % comp.afstand) self.assertEqual(resp.status_code, 200) self.assert_html_ok(resp) # probeer de AG's te laten vaststellen terwijl dat niet meer mag with self.assert_max_queries(20): resp = self.client.post(self.url_ag_vaststellen_afstand % '25', {'snel': 1}) self.assert404(resp) # aanmaken wordt gedaan door de achtergrondtaak, maar die draait nu niet aanvangsgemiddelden_vaststellen_voor_afstand(18) aanvangsgemiddelden_vaststellen_voor_afstand(25) # controleer dat er geen dubbele SporterBoog records aangemaakt zijn self.assertEqual( 1, SporterBoog.objects.filter(sporter=self.sporter_100001, boogtype__afkorting='R').count()) self.assertEqual( 1, SporterBoog.objects.filter(sporter=self.sporter_100002, boogtype__afkorting='BB').count()) self.assertEqual(14954, SporterBoog.objects.count()) # controleer dat het "ag vaststellen" kaartje er nog steeds is # dit keer met de "voor het laatst gedaan" notitie comp = Competitie.objects.get(afstand=18, is_afgesloten=False) with self.assert_max_queries(20): resp = self.client.get(self.url_overzicht % comp.pk) urls = self.extract_all_urls(resp, skip_menu=True) self.assertTrue(self.url_ag_vaststellen_afstand % 18 in urls) self.assertContains(resp, "voor het laatst gedaan")
def maak_bondscompetities(self, begin_jaar=None): competities_aanmaken(begin_jaar) for comp in Competitie.objects.all(): if comp.afstand == '18': self.comp18 = comp else: self.comp25 = comp # for for deelcomp in (DeelCompetitie.objects.select_related( 'competitie', 'nhb_rayon', 'nhb_regio').all()): is_18 = deelcomp.competitie.afstand == '18' if deelcomp.laag == LAAG_BK: if is_18: self.deelcomp18_bk = deelcomp else: self.deelcomp25_bk = deelcomp elif deelcomp.laag == LAAG_RK: rayon_nr = deelcomp.nhb_rayon.rayon_nr if is_18: self.deelcomp18_rk[rayon_nr] = deelcomp else: self.deelcomp25_rk[rayon_nr] = deelcomp else: # if deelcomp.laag == LAAG_REGIO: regio_nr = deelcomp.nhb_regio.regio_nr if is_18: self.deelcomp18_regio[regio_nr] = deelcomp else: self.deelcomp25_regio[regio_nr] = deelcomp # for # zorg dat er accounts gekoppeld zijn aan de functies BKO, RKO, RCL accounts = self._accounts_beheerders[:] for functie in (Functie.objects.select_related( 'nhb_regio', 'nhb_rayon').filter(rol__in=('RCL', 'RKO', 'BKO'))): is_18 = functie.comp_type == '18' account = accounts.pop(0) functie.accounts.add(account) if functie.rol == 'RCL': regio_nr = functie.nhb_regio.regio_nr if is_18: self.comp18_functie_rcl[regio_nr] = functie self.comp18_account_rcl[regio_nr] = account else: self.comp25_functie_rcl[regio_nr] = functie self.comp25_account_rcl[regio_nr] = account elif functie.rol == 'RKO': rayon_nr = functie.nhb_rayon.rayon_nr if is_18: self.comp18_functie_rko[rayon_nr] = functie self.comp18_account_rko[rayon_nr] = account else: self.comp25_functie_rko[rayon_nr] = functie self.comp25_account_rko[rayon_nr] = account else: # elif functie.rol == 'BKO': if is_18: self.comp18_functie_bko = functie self.comp18_account_bko = account else: self.comp25_functie_bko = functie self.comp25_account_bko = account # for for klasse in (CompetitieKlasse.objects.select_related( 'competitie', 'indiv__boogtype', 'team__team_type').all()): if klasse.indiv: afkorting = klasse.indiv.boogtype.afkorting if klasse.competitie.afstand == '18': klassen = self.comp18_klassen_indiv else: klassen = self.comp25_klassen_indiv else: afkorting = klasse.team.team_type.afkorting if klasse.competitie.afstand == '18': klassen = self.comp18_klassen_team else: klassen = self.comp25_klassen_team try: klassen[afkorting].append(klasse) except KeyError: klassen[afkorting] = [klasse]
def setUp(self): """ eenmalige setup voor alle tests wordt als eerste aangeroepen """ self._next_lid_nr = 100001 self.rayon_1 = NhbRayon.objects.get(rayon_nr=1) self.rayon_2 = NhbRayon.objects.get(rayon_nr=2) self.regio_101 = NhbRegio.objects.get(regio_nr=101) # maak een test vereniging ver = NhbVereniging() ver.naam = "Grote Club" ver.ver_nr = "1000" ver.regio = self.regio_101 # secretaris kan nog niet ingevuld worden ver.save() self._ver = ver # maak HWL functie aan voor deze vereniging self.functie_hwl = maak_functie("HWL Vereniging %s" % ver.ver_nr, "HWL") self.functie_hwl.nhb_ver = ver self.functie_hwl.save() # maak test leden aan die we kunnen koppelen aan beheerders functies self.account_bko = self._prep_beheerder_lid('BKO') self.account_rko = self._prep_beheerder_lid('RKO') self.account_rcl = self._prep_beheerder_lid('RCL') self.account_schutter = self._prep_beheerder_lid('Schutter') # creëer een competitie met deelcompetities competities_aanmaken(jaar=2019) # nu in fase A self.comp_18 = Competitie.objects.get(afstand='18') self.comp_25 = Competitie.objects.get(afstand='25') for deelcomp in DeelCompetitie.objects.filter(laag=LAAG_BK).all(): deelcomp.functie.accounts.add(self.account_bko) # for for deelcomp in DeelCompetitie.objects.filter(laag=LAAG_RK, nhb_rayon=self.rayon_2).all(): deelcomp.functie.accounts.add(self.account_rko) # for for deelcomp in DeelCompetitie.objects.filter(laag=LAAG_REGIO, nhb_regio=self.regio_101).all(): deelcomp.functie.accounts.add(self.account_rcl) # for # maak nog een test vereniging, zonder HWL functie ver = NhbVereniging() ver.naam = "Kleine Club" ver.ver_nr = "1100" ver.regio = self.regio_101 # secretaris kan nog niet ingevuld worden ver.save() self._ver2 = ver # maak HWL functie aan voor deze vereniging hwl = maak_functie("HWL Vereniging %s" % ver.ver_nr, "HWL") hwl.nhb_ver = ver hwl.save()
def setUp(self): """ eenmalige setup voor alle tests wordt als eerste aangeroepen """ self._next_lid_nr = 100001 self.rayon_1 = NhbRayon.objects.get(rayon_nr=1) self.rayon_2 = NhbRayon.objects.get(rayon_nr=2) self.regio_101 = NhbRegio.objects.get(regio_nr=101) self.regio_105 = NhbRegio.objects.get(regio_nr=105) self.regio_112 = NhbRegio.objects.get(regio_nr=112) # maak een test vereniging ver = NhbVereniging() ver.naam = "Zuidelijke Club" ver.ver_nr = "1111" ver.regio = self.regio_112 # secretaris kan nog niet ingevuld worden ver.save() self.nhbver_112 = ver # maak een test vereniging ver = NhbVereniging() ver.naam = "Grote Club" ver.ver_nr = "1000" ver.regio = self.regio_101 # secretaris kan nog niet ingevuld worden ver.save() self.nhbver_101 = ver loc = WedstrijdLocatie(banen_18m=1, banen_25m=1, adres='De Spanning 1, Houtdorp') loc.save() loc.verenigingen.add(ver) self.loc = loc # maak HWL functie aan voor deze vereniging self.functie_hwl = maak_functie("HWL Vereniging %s" % ver.ver_nr, "HWL") self.functie_hwl.nhb_ver = ver self.functie_hwl.save() # maak test leden aan die we kunnen koppelen aan beheerders functies self.account_bko_18 = self._prep_beheerder_lid('BKO') self.account_rko1_18 = self._prep_beheerder_lid('RKO1') self.account_rko2_18 = self._prep_beheerder_lid('RKO2') self.account_rcl101_18 = self._prep_beheerder_lid('RCL101') self.account_rcl101_25 = self._prep_beheerder_lid('RCL101-25') self.account_rcl112_18 = self._prep_beheerder_lid('RCL112') self.account_schutter = self._prep_beheerder_lid('Schutter') self.lid_sporter_1 = Sporter.objects.get(lid_nr=self.account_schutter.username) self.account_schutter2 = self._prep_beheerder_lid('Schutter2') self.lid_sporter_2 = Sporter.objects.get(lid_nr=self.account_schutter2.username) self.boog_r = BoogType.objects.get(afkorting='R') self.sporterboog = SporterBoog(sporter=self.lid_sporter_1, boogtype=self.boog_r, voor_wedstrijd=True) self.sporterboog.save() # creëer een competitie met deelcompetities competities_aanmaken(jaar=2019) self.comp_18 = Competitie.objects.get(afstand='18') self.comp_25 = Competitie.objects.get(afstand='25') # klassengrenzen vaststellen om de competitie voorbij fase A te krijgen self.e2e_login_and_pass_otp(self.testdata.account_bb) self.e2e_wisselnaarrol_bb() self.url_klassengrenzen_vaststellen_18 = '/bondscompetities/%s/klassengrenzen/vaststellen/' % self.comp_18.pk resp = self.client.post(self.url_klassengrenzen_vaststellen_18) self.assert_is_redirect_not_plein(resp) # check for success self.deelcomp_bond_18 = DeelCompetitie.objects.filter(competitie=self.comp_18, laag=LAAG_BK)[0] self.deelcomp_rayon1_18 = DeelCompetitie.objects.filter(competitie=self.comp_18, laag=LAAG_RK, nhb_rayon=self.rayon_1)[0] self.deelcomp_regio_101 = DeelCompetitie.objects.filter(competitie=self.comp_18, laag=LAAG_REGIO, nhb_regio=self.regio_101)[0] self.functie_bko_18 = self.deelcomp_bond_18.functie self.functie_bko_18.accounts.add(self.account_bko_18) self.functie_rko1_18 = self.deelcomp_rayon1_18.functie self.functie_rko1_18.accounts.add(self.account_rko1_18) # maak nog een test vereniging, zonder HWL functie ver = NhbVereniging() ver.naam = "Kleine Club" ver.ver_nr = "1100" ver.regio = self.regio_101 # secretaris kan nog niet ingevuld worden ver.save()
def test_klassengrenzen_tonen(self): # competitie opstarten self.e2e_login_and_pass_otp(self.testdata.account_bb) self.e2e_wisselnaarrol_bb() self.e2e_check_rol('BB') # maak de competities aan competities_aanmaken() comp_18 = Competitie.objects.filter(afstand=18).all()[0] comp_25 = Competitie.objects.filter(afstand=25).all()[0] with self.assert_max_queries(20): resp = self.client.get(self.url_klassengrenzen_tonen % comp_18.pk) self.assertEqual(resp.status_code, 200) self.assert_html_ok(resp) self.assert_template_used( resp, ('competitie/klassengrenzen-tonen.dtl', 'plein/site_layout.dtl')) self.assertContains(resp, ' zijn nog niet vastgesteld') self.assertContains(resp, 'De klassengrenzen voor de ') # klassengrenzen vaststellen (18m en 25m) # s1 = timezone.now() with self.assert_max_queries(86): resp = self.client.post(self.url_klassengrenzen_vaststellen % comp_18.pk) # s2 = timezone.now() # print('duration:', s2-s1) self.assert_is_redirect_not_plein(resp) # redirect = success with self.assert_max_queries(86): resp = self.client.post(self.url_klassengrenzen_vaststellen % comp_25.pk) self.assert_is_redirect_not_plein(resp) # redirect = success # kies pagina ophalen als BB, dan worden alle competities getoond zet_competitie_fase(comp_18, 'B') with self.assert_max_queries(20): resp = self.client.get(self.url_kies) self.assertEqual(resp.status_code, 200) self.assert_html_ok(resp) self.assert_template_used( resp, ('competitie/kies.dtl', 'plein/site_layout.dtl')) self.e2e_logout() # kies pagina ophalen als bezoeker with self.assert_max_queries(20): resp = self.client.get(self.url_kies) self.assertEqual(resp.status_code, 200) self.assert_html_ok(resp) self.assert_template_used( resp, ('competitie/kies.dtl', 'plein/site_layout.dtl')) # nog een keer with self.assert_max_queries(20): resp = self.client.get(self.url_klassengrenzen_tonen % comp_25.pk) self.assertEqual(resp.status_code, 200) self.assert_html_ok(resp) self.assert_template_used( resp, ('competitie/klassengrenzen-tonen.dtl', 'plein/site_layout.dtl')) self.assertNotContains(resp, ' zijn nog niet vastgesteld') self.assertNotContains(resp, 'De klassengrenzen voor de ') with self.assert_max_queries(20): resp = self.client.get(self.url_klassengrenzen_tonen % comp_18.pk) self.assertEqual(resp.status_code, 200) self.assert_html_ok(resp) self.assert_template_used( resp, ('competitie/klassengrenzen-tonen.dtl', 'plein/site_layout.dtl')) self.assertNotContains(resp, ' zijn nog niet vastgesteld') self.assertNotContains(resp, 'De klassengrenzen voor de ')
def setUp(self): """ eenmalige setup voor alle tests wordt als eerste aangeroepen """ self._next_lid_nr = 100001 self.rayon_2 = NhbRayon.objects.get(rayon_nr=2) self.regio_101 = NhbRegio.objects.get(regio_nr=101) # maak een test vereniging ver = NhbVereniging() ver.naam = "Grote Club" ver.ver_nr = "1000" ver.regio = self.regio_101 # secretaris kan nog niet ingevuld worden ver.save() self._ver = ver self.nhb_ver1 = ver # maak HWL functie aan voor deze vereniging self.functie_hwl = maak_functie("HWL Vereniging %s" % ver.ver_nr, "HWL") self.functie_hwl.nhb_ver = ver self.functie_hwl.save() # maak test leden aan die we kunnen koppelen aan beheerders functies self.account_bko = self._prep_beheerder_lid('BKO') self.account_rko = self._prep_beheerder_lid('RKO') self.account_rcl = self._prep_beheerder_lid('RCL') self.account_hwl = self._prep_beheerder_lid('HWL') self.account_schutter = self._prep_beheerder_lid('Schutter') # creëer een competitie met deelcompetities competities_aanmaken(jaar=2019) self.functie_bko = DeelCompetitie.objects.filter( laag=LAAG_BK)[0].functie self.functie_rko = DeelCompetitie.objects.filter( laag=LAAG_RK, nhb_rayon=self.rayon_2)[0].functie self.functie_rcl = DeelCompetitie.objects.filter( laag=LAAG_REGIO, nhb_regio=self.regio_101)[0].functie self.functie_bko.accounts.add(self.account_bko) self.functie_rko.accounts.add(self.account_rko) self.functie_rcl.accounts.add(self.account_rcl) self.functie_hwl.accounts.add(self.account_hwl) # maak nog een test vereniging, zonder HWL functie ver = NhbVereniging() ver.naam = "Kleine Club" ver.ver_nr = "1100" ver.regio = self.regio_101 # secretaris kan nog niet ingevuld worden ver.save() # stop de vereniging in clusters cluster = NhbCluster.objects.filter(regio=ver.regio, gebruik='18').all()[0] ver.clusters.add(cluster) cluster = NhbCluster.objects.filter(regio=ver.regio, gebruik='25').all()[2] ver.clusters.add(cluster) self.nhb_ver2 = ver