def test_weer_actief(self): # mutatie van inactief lid naar actief lid # maak een test lid aan sporter = Sporter() sporter.lid_nr = 110000 sporter.geslacht = "M" sporter.voornaam = "Zweven" sporter.achternaam = "de Tester" sporter.email = "*****@*****.**" sporter.geboorte_datum = datetime.date(year=1972, month=3, day=4) sporter.sinds_datum = datetime.date(year=2010, month=11, day=12) sporter.bij_vereniging = None sporter.is_actief_lid = False sporter.save() f1 = io.StringIO() f2 = io.StringIO() with self.assert_max_queries(31): management.call_command('import_nhb_crm', './NhbStructuur/management/testfiles/testfile_13.json', '--sim_now=2020-07-01', stderr=f1, stdout=f2) # print("f1: %s" % f1.getvalue()) # print("f2: %s" % f2.getvalue()) self.assertTrue("[INFO] Lid 110000: vereniging geen --> 1000 Grote Club" in f2.getvalue()) sporter = Sporter.objects.get(pk=sporter.pk) self.assertTrue(sporter.bij_vereniging is not None) self.assertTrue(sporter.is_actief_lid)
def test_check_beheerders(self): f1 = io.StringIO() f2 = io.StringIO() with self.assert_max_queries(20): management.call_command('check_beheerders', stderr=f1, stdout=f2) self.assertTrue(f1.getvalue() == '') # geen foutmeldingen # koppel een account aan een functie, maar geen sporter self.functie_hwl.accounts.add(self.account_normaal) f1 = io.StringIO() f2 = io.StringIO() with self.assert_max_queries(20): management.call_command('check_beheerders', stderr=f1, stdout=f2) self.assertTrue(f1.getvalue() == '') self.assertTrue("LET OP: geen koppeling met NHB lid" in f2.getvalue()) # maak account ook nhblid sporter = Sporter(lid_nr=100042, voornaam='Kees', achternaam='Pijlpunt', email='*****@*****.**', geboorte_datum='1900-10-20', geslacht='M', para_classificatie='', is_actief_lid=False, sinds_datum='2020-02-20', bij_vereniging=None, lid_tot_einde_jaar=0, account=self.account_normaal) sporter.save() f1 = io.StringIO() f2 = io.StringIO() with self.assert_max_queries(20): management.call_command('check_beheerders', stderr=f1, stdout=f2) self.assertTrue(f1.getvalue() == '') self.assertTrue( "LET OP: geen lid meer bij een vereniging" in f2.getvalue()) # maak lid bij een andere vereniging ver = NhbVereniging(ver_nr=1042, naam="Andere club", plaats="Overkantje", regio=self.nhbver1.regio) ver.save() sporter.is_actief_lid = True sporter.bij_vereniging = ver sporter.save() f1 = io.StringIO() f2 = io.StringIO() with self.assert_max_queries(20): management.call_command('check_beheerders', stderr=f1, stdout=f2) self.assertTrue(f1.getvalue() == '') self.assertTrue( "LET OP: geen lid bij deze vereniging" in f2.getvalue()) # nu alles goed zetten sporter.bij_vereniging = self.nhbver1 sporter.save() f1 = io.StringIO() f2 = io.StringIO() with self.assert_max_queries(20): management.call_command('check_beheerders', stderr=f1, stdout=f2) # print('f1:', f1.getvalue()) # print('f2:', f2.getvalue()) self.assertTrue(f1.getvalue() == '') self.assertFalse("LET OP:" in f2.getvalue())
def _doe_inschrijven(self, comp): url_inschrijven = '/bondscompetities/deelnemen/leden-aanmelden/%s/' % comp.pk # meld een bak leden aan voor de competitie self.e2e_wisselnaarrol_bb() # klassengrenzen vaststellen url_klassengrenzen = '/bondscompetities/%s/klassengrenzen/vaststellen/' with self.assert_max_queries(86): resp = self.client.post(url_klassengrenzen % self.comp_18.pk) self.assert_is_redirect_not_plein(resp) # check for success with self.assert_max_queries(86): resp = self.client.post(url_klassengrenzen % self.comp_25.pk) self.assert_is_redirect_not_plein(resp) # check for success # nu in fase A2 # zet de datum voor inschrijven op vandaag for comp in Competitie.objects.filter(is_afgesloten=False): zet_competitie_fase(comp, 'B') # for lid_nr = 110000 recurve_boog_pk = BoogType.objects.get(afkorting='R').pk compound_boog_pk = BoogType.objects.get(afkorting='C').pk barebow_boog_pk = BoogType.objects.get(afkorting='BB').pk # doorloop de 2 verenigingen in deze regio for nhb_ver in NhbVereniging.objects.filter(regio=self.regio_101): # wordt HWL om voorkeuren aan te kunnen passen en in te kunnen schrijven functie_hwl = nhb_ver.functie_set.filter(rol='HWL').all()[0] self.e2e_wissel_naar_functie(functie_hwl) post_params = dict() # maak 3 leden aan for lp in range(3): lid_nr += 1 sporter = Sporter() sporter.lid_nr = lid_nr sporter.voornaam = "Lid %s" % lid_nr sporter.achternaam = "de Tester" sporter.bij_vereniging = nhb_ver sporter.is_actief_lid = True if barebow_boog_pk: sporter.geboorte_datum = datetime.date(2019-12, 1, 1) # aspirant else: sporter.geboorte_datum = datetime.date(2000, 1, 1) # senior sporter.sinds_datum = datetime.date(2010, 1, 1) sporter.geslacht = 'M' sporter.save() # haal de sporter voorkeuren op, zodat de sporterboog records aangemaakt worden url_voorkeuren = '/sporter/voorkeuren/%s/' % lid_nr with self.assert_max_queries(20): resp = self.client.get(url_voorkeuren) self.assertEqual(resp.status_code, 200) # 200 = OK # zet de recurve boog aan if lp == 1: # zet de DT voorkeur aan voor een paar sporters with self.assert_max_queries(20): resp = self.client.post(url_voorkeuren, {'sporter_pk': lid_nr, 'schiet_R': 'on', 'voorkeur_eigen_blazoen': 'on'}) # onthoud deze sporterboog om straks in bulk aan te melden # 'lid_NNNNNN_boogtype_MM' post_params['lid_%s_boogtype_%s' % (lid_nr, recurve_boog_pk)] = 'on' elif lp == 2: with self.assert_max_queries(20): resp = self.client.post(url_voorkeuren, {'sporter_pk': lid_nr, 'schiet_C': 'on'}) post_params['lid_%s_boogtype_%s' % (lid_nr, compound_boog_pk)] = 'on' elif barebow_boog_pk: with self.assert_max_queries(20): resp = self.client.post(url_voorkeuren, {'sporter_pk': lid_nr, 'schiet_BB': 'on'}) post_params['lid_%s_boogtype_%s' % (lid_nr, barebow_boog_pk)] = 'on' barebow_boog_pk = None else: with self.assert_max_queries(20): resp = self.client.post(url_voorkeuren, {'sporter_pk': lid_nr, 'schiet_R': 'on'}) post_params['lid_%s_boogtype_%s' % (lid_nr, recurve_boog_pk)] = 'on' self.assert_is_redirect_not_plein(resp) # check for success # for # schrijf in voor de competitie with self.assert_max_queries(23): resp = self.client.post(url_inschrijven, post_params) self.assert_is_redirect_not_plein(resp) # check for success
def _doe_inschrijven(self, comp): # maak leden aan voor de tests url_inschrijven = '/bondscompetities/deelnemen/leden-aanmelden/%s/' % comp.pk # wissel naar HWL self.e2e_wissel_naar_functie(self.functie_hwl) lid_nr = 110000 recurve_boog_pk = BoogType.objects.get(afkorting='R').pk compound_boog_pk = BoogType.objects.get(afkorting='C').pk barebow_boog_pk = BoogType.objects.get(afkorting='BB').pk # doorloop de 2 verenigingen in deze regio for nhb_ver in NhbVereniging.objects.filter(regio=self.regio_101): # wordt HWL om voorkeuren aan te kunnen passen en in te kunnen schrijven functie_hwl = nhb_ver.functie_set.filter(rol='HWL').all()[0] self.e2e_wissel_naar_functie(functie_hwl) post_params = dict() # maak 5 leden aan for lp in range(5): lid_nr += 1 sporter = Sporter() sporter.lid_nr = lid_nr sporter.voornaam = "Lid %s" % lid_nr sporter.achternaam = "de Tester" sporter.bij_vereniging = nhb_ver sporter.is_actief_lid = True if barebow_boog_pk: sporter.geboorte_datum = datetime.date(2019-12, 1, 1) # aspirant else: sporter.geboorte_datum = datetime.date(2000, 1, 1) # senior sporter.sinds_datum = datetime.date(2010, 1, 1) sporter.geslacht = 'M' sporter.save() # haal de schutter voorkeuren op, zodat de schutterboog records aangemaakt worden url_voorkeuren = '/sporter/voorkeuren/%s/' % lid_nr url_success = '/vereniging/leden-voorkeuren/' with self.assert_max_queries(20): resp = self.client.get(url_voorkeuren) self.assertEqual(resp.status_code, 200) # 200 = OK # zet de recurve boog aan if lp == 1: # zet de DT voorkeur aan voor een paar schutters with self.assert_max_queries(20): resp = self.client.post(url_voorkeuren, {'sporter_pk': lid_nr, 'schiet_R': 'on', 'voorkeur_eigen_blazoen': 'on'}) # onthoud deze schutterboog om straks in bulk aan te melden # 'lid_NNNNNN_boogtype_MM' post_params['lid_%s_boogtype_%s' % (lid_nr, recurve_boog_pk)] = 'on' elif lp == 2: with self.assert_max_queries(20): resp = self.client.post(url_voorkeuren, {'sporter_pk': lid_nr, 'schiet_C': 'on'}) post_params['lid_%s_boogtype_%s' % (lid_nr, compound_boog_pk)] = 'on' elif barebow_boog_pk: with self.assert_max_queries(20): resp = self.client.post(url_voorkeuren, {'sporter_pk': lid_nr, 'schiet_BB': 'on'}) post_params['lid_%s_boogtype_%s' % (lid_nr, barebow_boog_pk)] = 'on' barebow_boog_pk = None else: with self.assert_max_queries(20): resp = self.client.post(url_voorkeuren, {'sporter_pk': lid_nr, 'schiet_R': 'on'}) post_params['lid_%s_boogtype_%s' % (lid_nr, recurve_boog_pk)] = 'on' self.assert_is_redirect(resp, url_success) # redirect = succes # for # schrijf deze leden met in 4 van de 5 wedstrijden for pk in self.wedstrijd_pks[1:]: post_params['wedstrijd_%s' % pk] = 'on' # for # schrijf in voor de competitie with self.assert_max_queries(45): resp = self.client.post(url_inschrijven, post_params) self.assert_is_redirect_not_plein(resp) # check for success