def test_unauthenticated_user_redirect(self): form_data = { "initials": "J.D.", "first_name": "John", "last_name": "Doe", "date_of_birth": "1970-01-01", "email": "*****@*****.**", "street": "Main Street", "house_number": "69", "city": "New York", "country": "U.S.A.", "member_since": "1970-01-01", "educational_institution": "University of Toronto", } checkAccessPermissionsMember(self, '/account/membership/edit', 'post', PermissionType.TYPE_NO_MEMBER, data=form_data, redirectUrl='/no_member') member = Member.objects.filter( id=self.member_to_run_tests_on.id).first() self.assertIsNotNone(member) # Ensure no values were changed old_serialized_data = MemberSerializer( self.member_to_run_tests_on).data new_serialized_data = MemberSerializer(member).data for field, value in old_serialized_data.items(): # All other fields remain the same self.assertEqual(value, new_serialized_data[field], f"{field} did not match!")
def test_correct_edit(self): form_data = { "initials": "J.D.", "first_name": "John", "last_name": "Doe", "date_of_birth": "1970-01-01", "email": "*****@*****.**", "street": "Main Street", "house_number": "69", "city": "New York", "country": "U.S.A.", "member_since": "1970-01-01", "educational_institution": "University of Toronto", } checkAccessPermissionsMember(self, '/account/membership/edit', 'post', PermissionType.TYPE_MEMBER, user=self.user, redirectUrl='/account/membership', data=form_data) member = Member.objects.filter( id=self.member_to_run_tests_on.id).first() self.assertIsNotNone(member) # Ensure the correct values were changed old_serialized_data = MemberSerializer( self.member_to_run_tests_on).data new_serialized_data = MemberSerializer(member).data for field, value in old_serialized_data.items(): if field == 'house_number': # House Number was updated self.assertEqual(69, new_serialized_data['house_number']) elif field == 'last_updated_date': # last_updated_date was updated self.assertTrue( value < new_serialized_data['last_updated_date']) elif field == 'last_updated_by': # last_updated_by was updated self.assertEqual(new_serialized_data['user'], self.user.id) else: # All other fields remain the same self.assertEqual(value, new_serialized_data[field], f"{field} did not match!")
def test_ignore_fields(self): other_user = User.objects.create(username="******", password="******") other_user.save() form_data = { "initials": "J.D.", "first_name": "John", "last_name": "Doe", "date_of_birth": "1970-01-01", "email": "*****@*****.**", "street": "Main Street", "house_number": "69", "city": "New York", "country": "U.S.A.", "member_since": "1970-01-01", "educational_institution": "University of Toronto", "user": other_user.id, "last_updated_by": "", "last_updated_date": "02/02/2002", } # Should still be redirected to the account page checkAccessPermissionsMember(self, '/account/membership/edit', 'post', PermissionType.TYPE_MEMBER, user=self.user, data=form_data, redirectUrl='/account/membership') member = Member.objects.filter( id=self.member_to_run_tests_on.id).first() self.assertIsNotNone(member) # Ensure the 'user' field is not edited self.assertEqual(self.member_to_run_tests_on.user, member.user) # Ensure the 'last updated by' and 'last updated date' fields are edited properly self.assertEqual(self.user, member.last_updated_by) self.assertTrue(self.member_to_run_tests_on.last_updated_date < member.last_updated_date)
def test_member_edit_info_page_redirect(self): checkAccessPermissionsMember(self, '/account/membership/edit', 'get', PermissionType.TYPE_NO_MEMBER, redirectUrl='/no_member')
def test_member_edit_info_page(self): checkAccessPermissionsMember(self, '/account/membership/edit', 'get', PermissionType.TYPE_MEMBER)