mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-10-31 15:50:03 +01:00 
			
		
		
		
	More WEI tests, > 97 % coverage
This commit is contained in:
		| @@ -25,9 +25,7 @@ class WEISurveyInformation: | ||||
|         If the algorithm ran, return the prefered bus according to the survey. | ||||
|         In the other case, return None. | ||||
|         """ | ||||
|         if not self.valid: | ||||
|             return None | ||||
|         return Bus.objects.get(pk=self.selected_bus_pk) | ||||
|         return Bus.objects.get(pk=self.selected_bus_pk) if self.valid else None | ||||
|  | ||||
|     def save(self, registration) -> None: | ||||
|         """ | ||||
|   | ||||
| @@ -85,21 +85,21 @@ class WEIRegistrationTable(tables.Table): | ||||
|     ) | ||||
|  | ||||
|     def render_validate(self, record): | ||||
|         if PermissionBackend.check_perm(get_current_authenticated_user(), "wei.add_weimembership", WEIMembership( | ||||
|         hasperm = PermissionBackend.check_perm( | ||||
|             get_current_authenticated_user(), "wei.add_weimembership", WEIMembership( | ||||
|                 club=record.wei, | ||||
|                 user=record.user, | ||||
|                 date_start=timezone.now().date(), | ||||
|                 date_end=timezone.now().date(), | ||||
|                 fee=0, | ||||
|                 registration=record, | ||||
|         )): | ||||
|             return _("Validate") | ||||
|         return format_html("<span class='no-perm'></span>") | ||||
|             ) | ||||
|         ) | ||||
|         return _("Validate") if hasperm else format_html("<span class='no-perm'></span>") | ||||
|  | ||||
|     def render_delete(self, record): | ||||
|         if PermissionBackend.check_perm(get_current_authenticated_user(), "wei.delete_weimembership", record): | ||||
|             return _("Delete") | ||||
|         return format_html("<span class='no-perm'></span>") | ||||
|         hasperm = PermissionBackend.check_perm(get_current_authenticated_user(), "wei.delete_weimembership", record) | ||||
|         return _("Delete") if hasperm else format_html("<span class='no-perm'></span>") | ||||
|  | ||||
|     class Meta: | ||||
|         attrs = { | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
| # SPDX-License-Identifier: GPL-3.0-or-later | ||||
|  | ||||
| import subprocess | ||||
| from datetime import timedelta | ||||
| from datetime import timedelta, date | ||||
|  | ||||
| from django.conf import settings | ||||
| from django.contrib.auth.models import User | ||||
| @@ -11,9 +11,10 @@ from django.test import TestCase | ||||
| from django.urls import reverse | ||||
| from django.utils import timezone | ||||
| from member.models import Membership | ||||
| from note.models import NoteClub | ||||
| from note.models import NoteClub, SpecialTransaction | ||||
| from treasury.models import SogeCredit | ||||
|  | ||||
| from ..forms import CurrentSurvey | ||||
| from ..forms import CurrentSurvey, WEISurveyAlgorithm, WEISurvey | ||||
| from ..models import WEIClub, Bus, BusTeam, WEIRole, WEIRegistration, WEIMembership | ||||
|  | ||||
|  | ||||
| @@ -38,6 +39,7 @@ class TestWEIList(TestCase): | ||||
|         response = self.client.get(reverse("wei:current_wei_detail")) | ||||
|         self.assertRedirects(response, reverse("wei:wei_list"), 302, 200) | ||||
|  | ||||
|  | ||||
| class TestWEIRegistration(TestCase): | ||||
|     """ | ||||
|     Test the whole WEI app | ||||
| @@ -54,6 +56,7 @@ class TestWEIRegistration(TestCase): | ||||
|             password="admin", | ||||
|             email="admin@example.com", | ||||
|         ) | ||||
|         self.user.save() | ||||
|         self.client.force_login(self.user) | ||||
|         sess = self.client.session | ||||
|         sess["permission_mask"] = 42 | ||||
| @@ -66,11 +69,11 @@ class TestWEIRegistration(TestCase): | ||||
|             parent_club_id=2, | ||||
|             membership_fee_paid=12500, | ||||
|             membership_fee_unpaid=5500, | ||||
|             membership_start=str(self.year) + "-01-01", | ||||
|             membership_end=str(self.year) + "-12-31", | ||||
|             membership_start=date(self.year, 1, 1), | ||||
|             membership_end=date(self.year, 12, 31), | ||||
|             year=self.year, | ||||
|             date_start=timezone.now().date() + timedelta(days=2), | ||||
|             date_end=str(self.year) + "-12-31", | ||||
|             date_end=date(self.year, 12, 31), | ||||
|         ) | ||||
|         NoteClub.objects.create(club=self.wei) | ||||
|         self.bus = Bus.objects.create( | ||||
| @@ -89,7 +92,7 @@ class TestWEIRegistration(TestCase): | ||||
|             wei_id=self.wei.id, | ||||
|             soge_credit=True, | ||||
|             caution_check=True, | ||||
|             birth_date="2000-01-01", | ||||
|             birth_date=date(2000, 1, 1), | ||||
|             gender="nonbinary", | ||||
|             clothing_cut="male", | ||||
|             clothing_size="XL", | ||||
| @@ -99,7 +102,7 @@ class TestWEIRegistration(TestCase): | ||||
|             ml_events_registration=True, | ||||
|             ml_sport_registration=True, | ||||
|             ml_art_registration=True, | ||||
|             first_year=True, | ||||
|             first_year=False, | ||||
|         ) | ||||
|  | ||||
|     def test_create_wei(self): | ||||
| @@ -156,7 +159,7 @@ class TestWEIRegistration(TestCase): | ||||
|         self.assertTrue(qs.exists()) | ||||
|  | ||||
|         # Check that if the WEI is started, we can't update a wei | ||||
|         self.wei.date_start = '2000-01-01' | ||||
|         self.wei.date_start = date(2000, 1, 1) | ||||
|         self.wei.save() | ||||
|         response = self.client.get(reverse("wei:wei_update", kwargs=dict(pk=self.wei.pk))) | ||||
|         self.assertRedirects(response, reverse("wei:wei_closed", kwargs=dict(pk=self.wei.pk)), 302, 200) | ||||
| @@ -190,10 +193,11 @@ class TestWEIRegistration(TestCase): | ||||
|         qs = Bus.objects.filter(name="Create Bus Test") | ||||
|         self.assertTrue(qs.exists()) | ||||
|         bus = qs.get() | ||||
|         CurrentSurvey.get_algorithm_class().get_bus_information(bus).save() | ||||
|         self.assertRedirects(response, reverse("wei:manage_bus", kwargs=dict(pk=bus.pk)), 302, 200) | ||||
|  | ||||
|         # Check that if the WEI is started, we can't create a bus | ||||
|         self.wei.date_start = '2000-01-01' | ||||
|         self.wei.date_start = date(2000, 1, 1) | ||||
|         self.wei.save() | ||||
|         response = self.client.get(reverse("wei:add_bus", kwargs=dict(pk=self.wei.pk))) | ||||
|         self.assertRedirects(response, reverse("wei:wei_closed", kwargs=dict(pk=self.wei.pk)), 302, 200) | ||||
| @@ -221,7 +225,7 @@ class TestWEIRegistration(TestCase): | ||||
|         self.assertTrue(qs.exists()) | ||||
|  | ||||
|         # Check that if the WEI is started, we can't update a bus | ||||
|         self.wei.date_start = '2000-01-01' | ||||
|         self.wei.date_start = date(2000, 1, 1) | ||||
|         self.wei.save() | ||||
|         response = self.client.get(reverse("wei:update_bus", kwargs=dict(pk=self.bus.pk))) | ||||
|         self.assertRedirects(response, reverse("wei:wei_closed", kwargs=dict(pk=self.wei.pk)), 302, 200) | ||||
| @@ -245,7 +249,7 @@ class TestWEIRegistration(TestCase): | ||||
|         self.assertRedirects(response, reverse("wei:manage_bus_team", kwargs=dict(pk=team.pk)), 302, 200) | ||||
|  | ||||
|         # Check that if the WEI is started, we can't create a team | ||||
|         self.wei.date_start = '2000-01-01' | ||||
|         self.wei.date_start = date(2000, 1, 1) | ||||
|         self.wei.save() | ||||
|         response = self.client.get(reverse("wei:add_team", kwargs=dict(pk=self.bus.pk))) | ||||
|         self.assertRedirects(response, reverse("wei:wei_closed", kwargs=dict(pk=self.wei.pk)), 302, 200) | ||||
| @@ -274,7 +278,7 @@ class TestWEIRegistration(TestCase): | ||||
|         self.assertTrue(qs.exists()) | ||||
|  | ||||
|         # Check that if the WEI is started, we can't update a team | ||||
|         self.wei.date_start = '2000-01-01' | ||||
|         self.wei.date_start = date(2000, 1, 1) | ||||
|         self.wei.save() | ||||
|         response = self.client.get(reverse("wei:update_bus_team", kwargs=dict(pk=self.team.pk))) | ||||
|         self.assertRedirects(response, reverse("wei:wei_closed", kwargs=dict(pk=self.wei.pk)), 302, 200) | ||||
| @@ -286,16 +290,13 @@ class TestWEIRegistration(TestCase): | ||||
|         response = self.client.get(reverse("wei:wei_register_2A", kwargs=dict(wei_pk=self.wei.pk))) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|  | ||||
|         response = self.client.get(reverse("wei:wei_register_2A_myself", kwargs=dict(wei_pk=self.wei.pk))) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|  | ||||
|         user = User.objects.create(username="toto", email="toto@example.com") | ||||
|  | ||||
|         # Try with an invalid form | ||||
|         response = self.client.post(reverse("wei:wei_register_2A", kwargs=dict(wei_pk=self.wei.pk)), dict( | ||||
|             user=user.id, | ||||
|             soge_credit=True, | ||||
|             birth_date='2000-01-01', | ||||
|             birth_date=date(2000, 1, 1), | ||||
|             gender='nonbinary', | ||||
|             clothing_cut='female', | ||||
|             clothing_size='XS', | ||||
| @@ -312,7 +313,7 @@ class TestWEIRegistration(TestCase): | ||||
|         response = self.client.post(reverse("wei:wei_register_2A", kwargs=dict(wei_pk=self.wei.pk)), dict( | ||||
|             user=user.id, | ||||
|             soge_credit=True, | ||||
|             birth_date='2000-01-01', | ||||
|             birth_date=date(2000, 1, 1), | ||||
|             gender='nonbinary', | ||||
|             clothing_cut='female', | ||||
|             clothing_size='XS', | ||||
| @@ -331,7 +332,7 @@ class TestWEIRegistration(TestCase): | ||||
|         response = self.client.post(reverse("wei:wei_register_2A", kwargs=dict(wei_pk=self.wei.pk)), dict( | ||||
|             user=user.id, | ||||
|             soge_credit=True, | ||||
|             birth_date='2000-01-01', | ||||
|             birth_date=date(2000, 1, 1), | ||||
|             gender='nonbinary', | ||||
|             clothing_cut='female', | ||||
|             clothing_size='XS', | ||||
| @@ -345,8 +346,22 @@ class TestWEIRegistration(TestCase): | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|         self.assertTrue("This user is already registered to this WEI." in str(response.context["form"].errors)) | ||||
|  | ||||
|         # Test the render of the page to register ourself if we have already opened a Société générale account | ||||
|         SogeCredit.objects.create(user=self.user, credit_transaction=SpecialTransaction.objects.create( | ||||
|             source_id=4,    # Bank transfer | ||||
|             destination=self.user.note, | ||||
|             quantity=1, | ||||
|             amount=0, | ||||
|             reason="Test", | ||||
|             first_name="toto", | ||||
|             last_name="toto", | ||||
|             bank="Société générale", | ||||
|         )) | ||||
|         response = self.client.get(reverse("wei:wei_register_2A_myself", kwargs=dict(wei_pk=self.wei.pk))) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|  | ||||
|         # Check that if the WEI is started, we can't register anyone | ||||
|         self.wei.date_start = '2000-01-01' | ||||
|         self.wei.date_start = date(2000, 1, 1) | ||||
|         self.wei.save() | ||||
|         response = self.client.get(reverse("wei:wei_register_2A", kwargs=dict(wei_pk=self.wei.pk))) | ||||
|         self.assertRedirects(response, reverse("wei:wei_closed", kwargs=dict(pk=self.wei.pk)), 302, 200) | ||||
| @@ -365,7 +380,7 @@ class TestWEIRegistration(TestCase): | ||||
|         response = self.client.post(reverse("wei:wei_register_1A", kwargs=dict(wei_pk=self.wei.pk)), dict( | ||||
|             user=user.id, | ||||
|             soge_credit=True, | ||||
|             birth_date='2000-01-01', | ||||
|             birth_date=date(2000, 1, 1), | ||||
|             gender='nonbinary', | ||||
|             clothing_cut='female', | ||||
|             clothing_size='XS', | ||||
| @@ -392,12 +407,15 @@ class TestWEIRegistration(TestCase): | ||||
|             self.assertIsNotNone(getattr(survey.information, "word" + str(i)), "Survey page #" + str(i) + " failed") | ||||
|         survey = CurrentSurvey(registration) | ||||
|         self.assertTrue(survey.is_complete()) | ||||
|         survey.select_bus(self.bus) | ||||
|         survey.save() | ||||
|         self.assertIsNotNone(survey.information.get_selected_bus()) | ||||
|  | ||||
|         # Check that the user can't be registered twice | ||||
|         response = self.client.post(reverse("wei:wei_register_1A", kwargs=dict(wei_pk=self.wei.pk)), dict( | ||||
|             user=user.id, | ||||
|             soge_credit=True, | ||||
|             birth_date='2000-01-01', | ||||
|             birth_date=date(2000, 1, 1), | ||||
|             gender='nonbinary', | ||||
|             clothing_cut='female', | ||||
|             clothing_size='XS', | ||||
| @@ -423,7 +441,7 @@ class TestWEIRegistration(TestCase): | ||||
|         response = self.client.post(reverse("wei:wei_register_1A", kwargs=dict(wei_pk=second_wei.pk)), dict( | ||||
|             user=user.id, | ||||
|             soge_credit=True, | ||||
|             birth_date='2000-01-01', | ||||
|             birth_date=date(2000, 1, 1), | ||||
|             gender='nonbinary', | ||||
|             clothing_cut='female', | ||||
|             clothing_size='XS', | ||||
| @@ -439,11 +457,14 @@ class TestWEIRegistration(TestCase): | ||||
|                         in str(response.context["form"].errors)) | ||||
|  | ||||
|         # Check that if the WEI is started, we can't register anyone | ||||
|         self.wei.date_start = '2000-01-01' | ||||
|         self.wei.date_start = date(2000, 1, 1) | ||||
|         self.wei.save() | ||||
|         response = self.client.get(reverse("wei:wei_register_1A", kwargs=dict(wei_pk=self.wei.pk))) | ||||
|         self.assertRedirects(response, reverse("wei:wei_closed", kwargs=dict(pk=self.wei.pk)), 302, 200) | ||||
|  | ||||
|         response = self.client.get(reverse("wei:wei_survey", kwargs=dict(pk=registration.pk))) | ||||
|         self.assertRedirects(response, reverse("wei:wei_closed", kwargs=dict(pk=self.wei.pk)), 302, 200) | ||||
|  | ||||
|     def test_wei_survey_ended(self): | ||||
|         """ | ||||
|         Test display the end page of a survey. | ||||
| @@ -455,9 +476,6 @@ class TestWEIRegistration(TestCase): | ||||
|         """ | ||||
|         Test update a registration. | ||||
|         """ | ||||
|         response = self.client.get(reverse("wei:wei_update_registration", kwargs=dict(pk=self.registration.pk))) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|  | ||||
|         self.registration.information = dict( | ||||
|             preferred_bus_pk=[], | ||||
|             preferred_team_pk=[], | ||||
| @@ -465,6 +483,9 @@ class TestWEIRegistration(TestCase): | ||||
|         ) | ||||
|         self.registration.save() | ||||
|  | ||||
|         response = self.client.get(reverse("wei:wei_update_registration", kwargs=dict(pk=self.registration.pk))) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|  | ||||
|         response = self.client.post( | ||||
|             reverse("wei:wei_update_registration", kwargs=dict(pk=self.registration.pk)), | ||||
|             dict( | ||||
| @@ -487,16 +508,95 @@ class TestWEIRegistration(TestCase): | ||||
|         self.assertTrue(qs.exists()) | ||||
|         self.assertRedirects(response, reverse("wei:validate_registration", kwargs=dict(pk=qs.get().pk)), 302, 200) | ||||
|  | ||||
|         # Check the page when the registration is already validated | ||||
|         membership = WEIMembership( | ||||
|             user=self.user, | ||||
|             club=self.wei, | ||||
|             registration=self.registration, | ||||
|             bus=self.bus, | ||||
|             team=self.team, | ||||
|         ) | ||||
|         membership._soge = True | ||||
|         membership._force_renew_parent = True | ||||
|         membership.save() | ||||
|         soge_credit = SogeCredit.objects.get(user=self.user) | ||||
|         soge_credit.credit_transaction = SpecialTransaction.objects.create( | ||||
|             source_id=4,  # Bank transfer | ||||
|             destination=self.user.note, | ||||
|             quantity=1, | ||||
|             amount=0, | ||||
|             reason="Test", | ||||
|             first_name="toto", | ||||
|             last_name="toto", | ||||
|             bank="Société générale", | ||||
|         ) | ||||
|         soge_credit.save() | ||||
|  | ||||
|         sess = self.client.session | ||||
|         sess["permission_mask"] = 0 | ||||
|         sess.save() | ||||
|         response = self.client.get(reverse("wei:wei_update_registration", kwargs=dict(pk=self.registration.pk))) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|         sess["permission_mask"] = 42 | ||||
|         sess.save() | ||||
|  | ||||
|         response = self.client.post( | ||||
|             reverse("wei:wei_update_registration", kwargs=dict(pk=self.registration.pk)), | ||||
|             dict( | ||||
|                 user=self.user.id, | ||||
|                 soge_credit=False, | ||||
|                 birth_date='2015-01-01', | ||||
|                 gender='male', | ||||
|                 clothing_cut='female', | ||||
|                 clothing_size='L', | ||||
|                 health_issues='I am really a bot', | ||||
|                 emergency_contact_name='Note Kfet 2020', | ||||
|                 emergency_contact_phone='+33600000000', | ||||
|                 bus=[self.bus.id], | ||||
|                 team=[self.team.id], | ||||
|                 roles=[role.id for role in WEIRole.objects.filter(name="Adhérent WEI").all()], | ||||
|                 information_json=self.registration.information_json, | ||||
|             ) | ||||
|         ) | ||||
|         qs = WEIRegistration.objects.filter(user_id=self.user.id, clothing_size="L") | ||||
|         self.assertTrue(qs.exists()) | ||||
|         self.assertRedirects(response, reverse("wei:validate_registration", kwargs=dict(pk=qs.get().pk)), 302, 200) | ||||
|  | ||||
|         # Test invalid form | ||||
|         response = self.client.post( | ||||
|             reverse("wei:wei_update_registration", kwargs=dict(pk=self.registration.pk)), | ||||
|             dict( | ||||
|                 user=self.user.id, | ||||
|                 soge_credit=False, | ||||
|                 birth_date='2015-01-01', | ||||
|                 gender='male', | ||||
|                 clothing_cut='female', | ||||
|                 clothing_size='L', | ||||
|                 health_issues='I am really a bot', | ||||
|                 emergency_contact_name='Note Kfet 2020', | ||||
|                 emergency_contact_phone='+33600000000', | ||||
|                 bus=[], | ||||
|                 team=[], | ||||
|                 roles=[], | ||||
|                 information_json=self.registration.information_json, | ||||
|             ) | ||||
|         ) | ||||
|         self.assertFalse(response.context["membership_form"].is_valid()) | ||||
|  | ||||
|         # Check that if the WEI is started, we can't update a registration | ||||
|         self.wei.date_start = '2000-01-01' | ||||
|         self.wei.date_start = date(2000, 1, 1) | ||||
|         self.wei.update_membership_dates() | ||||
|         self.wei.save() | ||||
|         response = self.client.get(reverse("wei:validate_registration", kwargs=dict(pk=self.registration.pk))) | ||||
|         response = self.client.get(reverse("wei:wei_update_registration", kwargs=dict(pk=self.registration.pk))) | ||||
|         self.assertRedirects(response, reverse("wei:wei_closed", kwargs=dict(pk=self.wei.pk)), 302, 200) | ||||
|  | ||||
|     def test_delete_registration(self): | ||||
|         """ | ||||
|         Test delete a WEI registration. | ||||
|         """ | ||||
|         response = self.client.get(reverse("wei:wei_delete_registration", kwargs=dict(pk=self.registration.pk))) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|  | ||||
|         response = self.client.delete(reverse("wei:wei_delete_registration", kwargs=dict(pk=self.registration.pk))) | ||||
|         self.assertRedirects(response, reverse("wei:wei_detail", kwargs=dict(pk=self.wei.pk)), 302, 200) | ||||
|  | ||||
| @@ -507,6 +607,32 @@ class TestWEIRegistration(TestCase): | ||||
|         response = self.client.get(reverse("wei:validate_registration", kwargs=dict(pk=self.registration.pk))) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|  | ||||
|         self.registration.first_year = True | ||||
|         self.registration.save() | ||||
|  | ||||
|         response = self.client.get(reverse("wei:validate_registration", kwargs=dict(pk=self.registration.pk))) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|  | ||||
|         self.registration.first_year = False | ||||
|         self.registration.save() | ||||
|  | ||||
|         # Check that a team must belong to the bus | ||||
|         second_bus = Bus.objects.create(wei=self.wei, name="Second bus") | ||||
|         second_team = BusTeam.objects.create(bus=second_bus, name="Second team", color=42) | ||||
|         response = self.client.post(reverse("wei:validate_registration", kwargs=dict(pk=self.registration.pk)), dict( | ||||
|             roles=[WEIRole.objects.get(name="GC WEI").id], | ||||
|             bus=self.bus.pk, | ||||
|             team=second_team.pk, | ||||
|             credit_type=4,  # Bank transfer | ||||
|             credit_amount=420, | ||||
|             last_name="admin", | ||||
|             first_name="admin", | ||||
|             bank="Société générale", | ||||
|         )) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|         self.assertFalse(response.context["form"].is_valid()) | ||||
|         self.assertTrue("This team doesn't belong to the given bus." in str(response.context["form"].errors)) | ||||
|  | ||||
|         response = self.client.post(reverse("wei:validate_registration", kwargs=dict(pk=self.registration.pk)), dict( | ||||
|             roles=[WEIRole.objects.get(name="GC WEI").id], | ||||
|             bus=self.bus.pk, | ||||
| @@ -543,6 +669,12 @@ class TestWEIRegistration(TestCase): | ||||
|             self.assertFalse(kfet_membership.transaction.valid) | ||||
|             self.assertFalse(bde_membership.transaction.valid) | ||||
|  | ||||
|         # Check that if the WEI is started, we can't update a wei | ||||
|         self.wei.date_start = date(2000, 1, 1) | ||||
|         self.wei.save() | ||||
|         response = self.client.get(reverse("wei:validate_registration", kwargs=dict(pk=self.registration.pk))) | ||||
|         self.assertRedirects(response, reverse("wei:wei_closed", kwargs=dict(pk=self.wei.pk)), 302, 200) | ||||
|  | ||||
|     def test_registrations_list(self): | ||||
|         """ | ||||
|         Test display the registration list, with or without a research | ||||
| @@ -579,34 +711,114 @@ class TestWEIRegistration(TestCase): | ||||
|         """ | ||||
|         Test display the membership list as a PDF file | ||||
|         """ | ||||
|         if not self.is_latex_installed(): | ||||
|             return | ||||
|  | ||||
|         response = self.client.get(reverse("wei:wei_memberships_pdf", kwargs=dict(wei_pk=self.wei.pk))) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|         self.assertEqual(response["content-type"], "application/pdf") | ||||
|         if self.is_latex_installed(): | ||||
|             response = self.client.get(reverse("wei:wei_memberships_pdf", kwargs=dict(wei_pk=self.wei.pk))) | ||||
|             self.assertEqual(response.status_code, 200) | ||||
|             self.assertEqual(response["content-type"], "application/pdf") | ||||
|  | ||||
|     def test_bus_memberships_pdf_list(self): | ||||
|         """ | ||||
|         Test display the membership list of a bus as a PDF file | ||||
|         """ | ||||
|         if not self.is_latex_installed(): | ||||
|             return | ||||
|  | ||||
|         response = self.client.get(reverse("wei:wei_memberships_bus_pdf", kwargs=dict(wei_pk=self.wei.pk, | ||||
|                                                                                       bus_pk=self.bus.pk))) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|         self.assertEqual(response["content-type"], "application/pdf") | ||||
|         if self.is_latex_installed(): | ||||
|             response = self.client.get(reverse("wei:wei_memberships_bus_pdf", kwargs=dict(wei_pk=self.wei.pk, | ||||
|                                                                                           bus_pk=self.bus.pk))) | ||||
|             self.assertEqual(response.status_code, 200) | ||||
|             self.assertEqual(response["content-type"], "application/pdf") | ||||
|  | ||||
|     def test_team_memberships_pdf_list(self): | ||||
|         """ | ||||
|         Test display the membership list of a bus team as a PDF file | ||||
|         """ | ||||
|         if not self.is_latex_installed(): | ||||
|             return | ||||
|         if self.is_latex_installed(): | ||||
|             response = self.client.get(reverse("wei:wei_memberships_team_pdf", kwargs=dict(wei_pk=self.wei.pk, | ||||
|                                                                                            bus_pk=self.bus.pk, | ||||
|                                                                                            team_pk=self.team.pk))) | ||||
|             self.assertEqual(response.status_code, 200) | ||||
|             self.assertEqual(response["content-type"], "application/pdf") | ||||
|  | ||||
|         response = self.client.get(reverse("wei:wei_memberships_team_pdf", kwargs=dict(wei_pk=self.wei.pk, | ||||
|                                                                                        bus_pk=self.bus.pk, | ||||
|                                                                                        team_pk=self.team.pk))) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|         self.assertEqual(response["content-type"], "application/pdf") | ||||
|  | ||||
| class TestDefaultWEISurvey(TestCase): | ||||
|     """ | ||||
|     Doesn't test anything, just cover the default Survey classes. | ||||
|     """ | ||||
|     def check_not_implemented(self, fun: callable, *args, **kwargs): | ||||
|         self.assertRaises(NotImplementedError, fun, *args, **kwargs) | ||||
|  | ||||
|     def test_survey_classes(self): | ||||
|         WEISurveyAlgorithm.get_bus_information_class() | ||||
|         self.check_not_implemented(WEISurveyAlgorithm.get_survey_class) | ||||
|         self.check_not_implemented(WEISurveyAlgorithm.get_registrations) | ||||
|         self.check_not_implemented(WEISurveyAlgorithm.get_buses) | ||||
|         self.check_not_implemented(WEISurveyAlgorithm().run_algorithm) | ||||
|  | ||||
|         self.check_not_implemented(WEISurvey, registration=None) | ||||
|         self.check_not_implemented(WEISurvey.get_wei) | ||||
|         self.check_not_implemented(WEISurvey.get_survey_information_class) | ||||
|         self.check_not_implemented(WEISurvey.get_algorithm_class) | ||||
|         self.check_not_implemented(WEISurvey.get_form_class, None) | ||||
|         self.check_not_implemented(WEISurvey.form_valid, None, None) | ||||
|         self.check_not_implemented(WEISurvey.is_complete, None) | ||||
|         # noinspection PyTypeChecker | ||||
|         WEISurvey.update_form(None, None) | ||||
|  | ||||
|         self.assertEqual(CurrentSurvey.get_algorithm_class().get_survey_class(), CurrentSurvey) | ||||
|         self.assertEqual(CurrentSurvey.get_year(), 2020) | ||||
|  | ||||
|  | ||||
| class TestWEISurveyAlgorithm(TestCase): | ||||
|     """ | ||||
|     Run the WEI Algorithm. | ||||
|     TODO: Improve this test with some test data once the algorithm will be implemented. | ||||
|     """ | ||||
|     fixtures = ("initial",) | ||||
|  | ||||
|     def setUp(self) -> None: | ||||
|         self.year = timezone.now().year | ||||
|         self.wei = WEIClub.objects.create( | ||||
|             name="Test WEI", | ||||
|             email="gc.wei@example.com", | ||||
|             parent_club_id=2, | ||||
|             membership_fee_paid=12500, | ||||
|             membership_fee_unpaid=5500, | ||||
|             membership_start=date(self.year, 1, 1), | ||||
|             membership_end=date(self.year, 12, 31), | ||||
|             year=self.year, | ||||
|             date_start=timezone.now().date() + timedelta(days=2), | ||||
|             date_end=date(self.year, 12, 31), | ||||
|         ) | ||||
|         NoteClub.objects.create(club=self.wei) | ||||
|         self.bus = Bus.objects.create( | ||||
|             name="Test Bus", | ||||
|             wei=self.wei, | ||||
|             description="Test Bus", | ||||
|         ) | ||||
|         self.team = BusTeam.objects.create( | ||||
|             name="Test Team", | ||||
|             bus=self.bus, | ||||
|             color=0xFFFFFF, | ||||
|             description="Test Team", | ||||
|         ) | ||||
|  | ||||
|         self.user = User.objects.create(username="toto") | ||||
|         self.registration = WEIRegistration.objects.create( | ||||
|             user_id=self.user.id, | ||||
|             wei_id=self.wei.id, | ||||
|             soge_credit=True, | ||||
|             caution_check=True, | ||||
|             birth_date=date(2000, 1, 1), | ||||
|             gender="nonbinary", | ||||
|             clothing_cut="male", | ||||
|             clothing_size="XL", | ||||
|             health_issues="I am a bot", | ||||
|             emergency_contact_name="Pikachu", | ||||
|             emergency_contact_phone="+33123456789", | ||||
|             ml_events_registration=True, | ||||
|             ml_sport_registration=True, | ||||
|             ml_art_registration=True, | ||||
|             first_year=True, | ||||
|         ) | ||||
|         CurrentSurvey(self.registration).save() | ||||
|  | ||||
|     def test_survey_algorithm(self): | ||||
|         CurrentSurvey.get_algorithm_class()().run_algorithm() | ||||
|   | ||||
| @@ -824,10 +824,7 @@ class WEIValidateRegistrationView(ProtectQuerysetMixin, LoginRequiredMixin, Crea | ||||
|         # Force the membership of the clubs BDE and Kfet | ||||
|         membership._force_renew_parent = True | ||||
|  | ||||
|         if user.profile.paid: | ||||
|             fee = club.membership_fee_paid | ||||
|         else: | ||||
|             fee = club.membership_fee_unpaid | ||||
|         fee = club.membership_fee_paid if user.profile.paid else club.membership_fee_unpaid | ||||
|  | ||||
|         kfet = club.parent_club | ||||
|         bde = kfet.parent_club | ||||
|   | ||||
		Reference in New Issue
	
	Block a user