Exemple #1
0
    def setUp(self):
        """ initialisatie van de test case """

        self.url_planning_regio = '/bondscompetities/regio/planning/%s/'  # deelcomp_pk
        self.url_planning_regio_ronde = '/bondscompetities/regio/planning/ronde/%s/'  # ronde_pk
        self.url_uitslag_invoeren = '/bondscompetities/scores/uitslag-invoeren/%s/'  # wedstrijd_pk
        self.url_inschrijven = '/bondscompetities/deelnemen/leden-aanmelden/%s/'  # comp_pk

        # deze test is afhankelijk van de standaard regio's
        self.regio_101 = NhbRegio.objects.get(regio_nr=101)
        self.boog_r = BoogType.objects.get(afkorting='R')

        # maak een BB aan, nodig om de competitie defaults in te zien
        self.account_bb = self.e2e_create_account('bb',
                                                  '*****@*****.**',
                                                  'BB',
                                                  accepteer_vhpg=True)
        self.account_bb.is_BB = True
        self.account_bb.save()

        # maak een test vereniging
        ver = NhbVereniging()
        ver.naam = "Grote Club"
        ver.plaats = "Boogstad"
        ver.ver_nr = 1000
        ver.regio = self.regio_101
        # secretaris kan nog niet ingevuld worden
        ver.save()
        self.ver = ver

        # login als BB
        self.e2e_login_and_pass_otp(self.account_bb)
        self.e2e_wisselnaarrol_bb()
        self.e2e_check_rol('BB')

        self._maak_leden_aan()
        self._maak_competitie_aan()

        # schrijf de leden in
        schuttersboog = [
            self.sporterboog_100001, self.sporterboog_100002,
            self.sporterboog_100004, self.sporterboog_100005
        ]
        self._schrijf_in_voor_competitie(self.deelcomp_r101, schuttersboog)

        self.functie_bko = DeelCompetitie.objects.get(
            competitie=self.comp, laag=LAAG_BK, competitie__afstand=18).functie

        self.client.logout()
Exemple #2
0
    def test_overstap(self):
        # test schutters die overstappen naar een andere vereniging

        # maak een paar score + scorehist
        self._score_opslaan(self.uitslagen[0], self.sporterboog_100001, 123)
        self._score_opslaan(self.uitslagen[2], self.sporterboog_100001, 124)
        f1 = io.StringIO()
        f2 = io.StringIO()
        with self.assert_max_queries(164):
            management.call_command('regiocomp_tussenstand',
                                    '2',
                                    '--quick',
                                    stderr=f1,
                                    stdout=f2)
        self.assertTrue(
            'Scores voor 1 schuttersboog bijgewerkt' in f2.getvalue())

        deelnemer = RegioCompetitieSchutterBoog.objects.get(
            sporterboog=self.sporterboog_100001)
        self.assertEqual(deelnemer.bij_vereniging.ver_nr, self.ver.ver_nr)
        sporter = self.sporterboog_100001.sporter

        # zet de sporter tijdelijk 'zwevend', ook al voorkomt de CRM import deze situatie tegenwoordig
        sporter.bij_vereniging = None
        sporter.save(update_fields=['bij_vereniging'])

        f1 = io.StringIO()
        f2 = io.StringIO()
        with self.assert_max_queries(165):
            management.call_command('regiocomp_tussenstand',
                                    '2',
                                    '--all',
                                    '--quick',
                                    stderr=f1,
                                    stdout=f2)
        self.assertFalse("[INFO] Verwerk overstap" in f2.getvalue())

        # maak een tweede vereniging aan
        regio_116 = NhbRegio.objects.get(regio_nr=116)
        ver = NhbVereniging()
        ver.naam = "Zuidelijke Club"
        ver.plaats = "Grensstad"
        ver.ver_nr = 1100
        ver.regio = regio_116
        # secretaris kan nog niet ingevuld worden
        ver.save()

        sporter.bij_vereniging = ver
        sporter.save(update_fields=['bij_vereniging'])

        f1 = io.StringIO()
        f2 = io.StringIO()
        with self.assert_max_queries(165):
            management.call_command('regiocomp_tussenstand',
                                    '2',
                                    '--quick',
                                    stderr=f1,
                                    stdout=f2)
        self.assertTrue(
            "[INFO] Verwerk overstap 100001: [101] [1000] Grote Club --> [116] [1100] Zuidelijke Club"
            in f2.getvalue())

        # overstap naar vereniging in zelfde regio
        self.ver.regio = regio_116
        self.ver.save()
        sporter.bij_vereniging = self.ver
        sporter.save(update_fields=['bij_vereniging'])

        f1 = io.StringIO()
        f2 = io.StringIO()
        with self.assert_max_queries(165):
            management.call_command('regiocomp_tussenstand',
                                    '2',
                                    '--quick',
                                    stderr=f1,
                                    stdout=f2)
        self.assertTrue(
            "[INFO] Verwerk overstap 100001: [116] [1100] Zuidelijke Club --> [116] [1000] Grote Club"
            in f2.getvalue())

        # zet the competitie in een later fase zodat overschrijvingen niet meer gedaan worden
        for comp in Competitie.objects.all():
            zet_competitie_fase(comp, 'K')
            comp.bepaal_fase()
            self.assertEqual(comp.fase, 'K')
        # for
        sporter.bij_vereniging = ver
        sporter.save()
        f1 = io.StringIO()
        f2 = io.StringIO()
        with self.assert_max_queries(160):
            management.call_command('regiocomp_tussenstand',
                                    '2',
                                    '--quick',
                                    stderr=f1,
                                    stdout=f2)
        # print("f1: %s" % f1.getvalue())
        # print("f2: %s" % f2.getvalue())
        self.assertFalse('Verwerk overstap' in f2.getvalue())