示例#1
0
    def test_renewed_near_end(self, current_membership_expires):
        """Renewing at the end of a membership adds 12 full months."""
        # It's early January, and our membership expires in two weeks
        datetime_paid = datetime(2018, 1, 1, 12, 47)
        membership_expires_on = date(2018, 1, 15)
        current_membership_expires.return_value = membership_expires_on

        # The resulting membership lasts one year, starting after the last one
        self.assertEqual(membership_expires_on, db.membership_start(37, datetime_paid))
示例#2
0
    def test_renewed_very_early(self, current_membership_expires):
        """Renewing too early adds 12 months from the date renewed."""
        # In January, we're renewing a membership that expires in June
        datetime_paid = datetime(2018, 1, 1, 12, 47)
        date_paid_EST = date(2018, 1, 1)

        current_membership_expires.return_value = date(2018, 6, 6)

        # Our resulting membership will only be valid until next January
        self.assertEqual(date_paid_EST, db.membership_start(37, datetime_paid))
示例#3
0
    def test_new_member_expiration(self, current_membership_expires):
        """New memberships start on the date of payment in Boston."""
        current_membership_expires.return_value = None
        test_cases = [
            # Normal case: It's the same day in both EST and UTC
            (datetime(2018, 5, 2, 6, 13), date(2018, 5, 2)),
            # UTC -5 in February
            (datetime(2018, 2, 2, 5, 57), date(2018, 2, 2)),
            (datetime(2018, 2, 2, 4, 57), date(2018, 2, 1)),
            # UTC -4 when DST is observed in the summer
            (datetime(2018, 6, 2, 4, 57), date(2018, 6, 2)),
            (datetime(2018, 6, 2, 3, 57), date(2018, 6, 1)),
        ]

        for datetime_paid, expected in test_cases:
            self.assertEqual(expected, db.membership_start(37, datetime_paid))