def test_full_payment_inactive(self): user = Database.new_user() event = EventDatabase.new_event(start_date=self.date_inactive) attendee = EventDatabase.attend(user, event) Membership.objects.create( user=user, attendee=attendee, bind_date=self.date_inactive, membership_type=MembershipType.FULL ) self.assertEqual(MembershipState.INACTIVE, Membership.objects.get_membership_state(user, datetime.today()))
def test_srate_payment_active(self): user = Database.new_user() event = EventDatabase.new_event(start_date=self.date_active) attendee = EventDatabase.attend(user, event) Membership.objects.create( user=user, attendee=attendee, bind_date=self.date_active, membership_type=MembershipType.FRATE ) event = EventDatabase.new_event(start_date=self.date_active + timedelta(days=1)) attendee = EventDatabase.attend(user, event) Membership.objects.create( user=user, attendee=attendee, bind_date=self.date_active + timedelta(days=1), membership_type=MembershipType.SRATE, ) self.assertEqual(MembershipState.ACTIVE, Membership.objects.get_membership_state(user, datetime.today()))
def test_rate_payment_active(self): user = Database.new_user() event = EventDatabase.new_event(start_date=self.date_active) attendee = EventDatabase.attend(user, event) Membership.objects.create( user=user, attendee=attendee, bind_date=self.date_active, membership_type=MembershipType.RATE ) self.assertEqual(MembershipState.ACTIVE, Membership.objects.get_membership_state(user, datetime.today())) self.assertNotEqual(Membership.objects.member_since(user), None)
def test_get_expected_choices_for_active_members(self): user = Database.new_user() event = EventDatabase.new_event(start_date=self.date_active) attendee = EventDatabase.attend(user, event) event2 = EventDatabase.new_event(start_date=self.date_active + timedelta(days=1)) Membership.objects.create( user=user, attendee=attendee, bind_date=self.date_active, membership_type=MembershipType.RATE ) assert Membership.objects.get_membership_choices(user, event2) == []
def test_frate_payment_condactive(self): user = Database.new_user() event = EventDatabase.new_event(start_date=self.date_active) attendee = EventDatabase.attend(user, event) Membership.objects.create( user=user, attendee=attendee, bind_date=self.date_active, membership_type=MembershipType.FRATE ) self.assertEqual( MembershipState.CONDITIONAL_ACTIVE, Membership.objects.get_membership_state(user, datetime.today()) )
def test_pass_payment_active_at_the_relevant_event(self): user = Database.new_user() event = EventDatabase.new_event(start_date=self.date_active) attendee = EventDatabase.attend(user, event) Membership.objects.create( user=user, attendee=attendee, bind_date=self.date_active, membership_type=MembershipType.PASS ) self.assertEqual( MembershipState.ACTIVE, Membership.objects.get_membership_state(user, self.date_active, fake_upgrade_attendance_as_full=attendee), ) self.assertEqual(Membership.objects.member_since(user), None)
def test_get_expected_choices_for_inactive_but_existing_member(self): user = Database.new_user() event = EventDatabase.new_event(start_date=self.date_inactive) attendee = EventDatabase.attend(user, event) Membership.objects.create( user=user, attendee=attendee, bind_date=self.date_inactive, membership_type=MembershipType.RATE ) event2 = EventDatabase.new_event(start_date=self.date_active) assert Membership.objects.get_membership_state(user, self.date_active) == MembershipState.INACTIVE choices = Membership.objects.get_membership_choices(user, event2) assert len(choices) == 1 assert MembershipType.RATE in choices