Esempio n. 1
0
    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)
Esempio n. 2
0
    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)
Esempio n. 3
0
    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, {})
Esempio n. 4
0
    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')
Esempio n. 5
0
    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)
Esempio n. 6
0
    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) != "")
Esempio n. 7
0
    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()
Esempio n. 8
0
    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)
Esempio n. 9
0
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
Esempio n. 10
0
    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)
Esempio n. 11
0
    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))
Esempio n. 12
0
    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")
Esempio n. 13
0
    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]
Esempio n. 14
0
    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()
Esempio n. 15
0
    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()
Esempio n. 16
0
    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 ')
Esempio n. 17
0
    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