Пример #1
0
    def test_multiple_years(self):
        now = datetime(2000, 1, 1, 0, 0, 0, 0)
        datetimes = [
            datetime(2000, 1, 1, 0, 0, 0, 0),
            datetime(1999, 12, 1, 0, 0, 0, 0),
            datetime(1999, 1, 1, 0, 0, 0, 0),
            datetime(1998, 12, 1, 0, 0, 0, 0),
            datetime(1997, 12, 1, 0, 0, 0, 0),
        ]

        # 12 months back ignores datetime(1999, 1, 1, 0, 0, 0, 0)
        self.assertEqual(
            Months.filter(datetimes, number=12, now=now),
            set([
                datetime(1999, 12, 1, 0, 0, 0, 0),
                datetime(2000, 1, 1, 0, 0, 0, 0)
            ]))

        # But 13 months back gets it
        self.assertEqual(
            Months.filter(datetimes, number=13, now=now),
            set([
                datetime(1999, 1, 1, 0, 0, 0, 0),
                datetime(1999, 12, 1, 0, 0, 0, 0),
                datetime(2000, 1, 1, 0, 0, 0, 0)
            ]))

        # But 14 months back gets datetime(1998, 12, 1, 0, 0, 0, 0)
        self.assertEqual(
            Months.filter(datetimes, number=14, now=now),
            set([
                datetime(1998, 12, 1, 0, 0, 0, 0),
                datetime(1999, 1, 1, 0, 0, 0, 0),
                datetime(1999, 12, 1, 0, 0, 0, 0),
                datetime(2000, 1, 1, 0, 0, 0, 0)
            ]))

        # As does 24 months back
        self.assertEqual(
            Months.filter(datetimes, number=24, now=now),
            set([
                datetime(1998, 12, 1, 0, 0, 0, 0),
                datetime(1999, 1, 1, 0, 0, 0, 0),
                datetime(1999, 12, 1, 0, 0, 0, 0),
                datetime(2000, 1, 1, 0, 0, 0, 0)
            ]))

        # 36 months back should get datetime(1997, 12, 1, 0, 0, 0, 0)
        self.assertEqual(
            Months.filter(datetimes, number=36, now=now),
            set([
                datetime(1997, 12, 1, 0, 0, 0, 0),
                datetime(1998, 12, 1, 0, 0, 0, 0),
                datetime(1999, 1, 1, 0, 0, 0, 0),
                datetime(1999, 12, 1, 0, 0, 0, 0),
                datetime(2000, 1, 1, 0, 0, 0, 0)
            ]))
Пример #2
0
    def test_all_input(self):
        self.assertEqual(Months.filter(self.datetimes, number=5, now=self.now),
                         set([datetime(1999, 10, 1, 0, 0, 0, 0),
                              datetime(1999, 12, 31, 23, 59, 59, 999999),
                              datetime(2000, 1, 1, 0, 0, 0, 0),
                              datetime(2000, 2, 1, 0, 0, 0, 0)]))

        self.assertEqual(Months.filter(self.datetimes, number=6, now=self.now),
                         set([datetime(1999, 10, 1, 0, 0, 0, 0),
                              datetime(1999, 12, 31, 23, 59, 59, 999999),
                              datetime(2000, 1, 1, 0, 0, 0, 0),
                              datetime(2000, 2, 1, 0, 0, 0, 0)]))
Пример #3
0
 def test_before_start(self):
     # datetime(1999, 10, 1, 0, 0, 0, 0) is too old to show up
     # in the results
     self.assertEqual(Months.filter(self.datetimes, number=4, now=self.now),
                      set([datetime(1999, 12, 31, 23, 59, 59, 999999),
                           datetime(2000, 1, 1, 0, 0, 0, 0),
                           datetime(2000, 2, 1, 0, 0, 0, 0)]))
Пример #4
0
 def test_new_year(self):
     self.assertEqual(
         Months.filter(self.datetimes, number=3, now=self.now),
         set([
             datetime(1999, 12, 31, 23, 59, 59, 999999),
             datetime(2000, 1, 1, 0, 0, 0, 0),
             datetime(2000, 2, 1, 0, 0, 0, 0)
         ]))
Пример #5
0
    def test_all_input(self):
        self.assertEqual(
            Months.filter(self.datetimes, number=5, now=self.now),
            set([
                datetime(1999, 10, 1, 0, 0, 0, 0),
                datetime(1999, 12, 31, 23, 59, 59, 999999),
                datetime(2000, 1, 1, 0, 0, 0, 0),
                datetime(2000, 2, 1, 0, 0, 0, 0)
            ]))

        self.assertEqual(
            Months.filter(self.datetimes, number=6, now=self.now),
            set([
                datetime(1999, 10, 1, 0, 0, 0, 0),
                datetime(1999, 12, 31, 23, 59, 59, 999999),
                datetime(2000, 1, 1, 0, 0, 0, 0),
                datetime(2000, 2, 1, 0, 0, 0, 0)
            ]))
Пример #6
0
 def test_duplicates(self):
     # Ensure we get the oldest per-month datetime when there are
     # duplicates: i.e. not datetime(2000, 1, 1, 1, 0, 0, 0)
     self.assertEqual(
         Months.filter(self.datetimes, number=2, now=self.now),
         set([
             datetime(2000, 1, 1, 0, 0, 0, 0),
             datetime(2000, 2, 1, 0, 0, 0, 0)
         ]))
Пример #7
0
 def test_before_start(self):
     # datetime(1999, 10, 1, 0, 0, 0, 0) is too old to show up
     # in the results
     self.assertEqual(
         Months.filter(self.datetimes, number=4, now=self.now),
         set([
             datetime(1999, 12, 31, 23, 59, 59, 999999),
             datetime(2000, 1, 1, 0, 0, 0, 0),
             datetime(2000, 2, 1, 0, 0, 0, 0)
         ]))
Пример #8
0
    def test_multiple_years(self):
        now = datetime(2000, 1, 1, 0, 0, 0, 0)
        datetimes = [
            datetime(2000, 1, 1, 0, 0, 0, 0),
            datetime(1999, 12, 1, 0, 0, 0, 0),
            datetime(1999, 1, 1, 0, 0, 0, 0),
            datetime(1998, 12, 1, 0, 0, 0, 0),
            datetime(1997, 12, 1, 0, 0, 0, 0),
        ]

        # 12 months back ignores datetime(1999, 1, 1, 0, 0, 0, 0)
        self.assertEqual(Months.filter(datetimes, number=12, now=now),
                         set([datetime(1999, 12, 1, 0, 0, 0, 0),
                              datetime(2000, 1, 1, 0, 0, 0, 0)]))

        # But 13 months back gets it
        self.assertEqual(Months.filter(datetimes, number=13, now=now),
                         set([datetime(1999, 1, 1, 0, 0, 0, 0),
                              datetime(1999, 12, 1, 0, 0, 0, 0),
                              datetime(2000, 1, 1, 0, 0, 0, 0)]))

        # But 14 months back gets datetime(1998, 12, 1, 0, 0, 0, 0)
        self.assertEqual(Months.filter(datetimes, number=14, now=now),
                         set([datetime(1998, 12, 1, 0, 0, 0, 0),
                              datetime(1999, 1, 1, 0, 0, 0, 0),
                              datetime(1999, 12, 1, 0, 0, 0, 0),
                              datetime(2000, 1, 1, 0, 0, 0, 0)]))

        # As does 24 months back
        self.assertEqual(Months.filter(datetimes, number=24, now=now),
                         set([datetime(1998, 12, 1, 0, 0, 0, 0),
                              datetime(1999, 1, 1, 0, 0, 0, 0),
                              datetime(1999, 12, 1, 0, 0, 0, 0),
                              datetime(2000, 1, 1, 0, 0, 0, 0)]))

        # 36 months back should get datetime(1997, 12, 1, 0, 0, 0, 0)
        self.assertEqual(Months.filter(datetimes, number=36, now=now),
                         set([datetime(1997, 12, 1, 0, 0, 0, 0),
                              datetime(1998, 12, 1, 0, 0, 0, 0),
                              datetime(1999, 1, 1, 0, 0, 0, 0),
                              datetime(1999, 12, 1, 0, 0, 0, 0),
                              datetime(2000, 1, 1, 0, 0, 0, 0)]))
Пример #9
0
 def test_no_input(self):
     self.assertEqual(Months.filter([], number=1, now=self.now),
                      set())
Пример #10
0
 def test_current(self):
     self.assertEqual(Months.filter(self.datetimes, number=1, now=self.now),
                      set([datetime(2000, 2, 1, 0, 0, 0, 0)]))
Пример #11
0
 def test_no_results(self):
     self.assertEqual(Months.filter([self.now], number=0, now=self.now),
                      set())
     self.assertEqual(Months.filter(self.datetimes, number=0, now=self.now),
                      set())
Пример #12
0
 def test_no_input(self):
     self.assertEqual(Months.filter([], number=1, now=self.now), set())
Пример #13
0
 def test_no_results(self):
     self.assertEqual(Months.filter([self.now], number=0, now=self.now),
                      set())
     self.assertEqual(Months.filter(self.datetimes, number=0, now=self.now),
                      set())
Пример #14
0
 def test_future(self):
     datetimes = [datetime(2010, 1, 15, 0, 0, 0, 0)]  # Wikipedia
     self.assertEqual(Months.filter(datetimes, number=0, now=self.now),
                      set(datetimes))
     self.assertEqual(Months.filter(datetimes, number=1, now=self.now),
                      set(datetimes))
Пример #15
0
 def test_future(self):
     datetimes = [datetime(2010, 1, 15, 0, 0, 0, 0)]  # Wikipedia
     self.assertEqual(Months.filter(datetimes, number=0, now=self.now),
                      set(datetimes))
     self.assertEqual(Months.filter(datetimes, number=1, now=self.now),
                      set(datetimes))
Пример #16
0
 def test_current(self):
     self.assertEqual(Months.filter(self.datetimes, number=1, now=self.now),
                      set([datetime(2000, 2, 1, 0, 0, 0, 0)]))
Пример #17
0
 def test_duplicates(self):
     # Ensure we get the oldest per-month datetime when there are
     # duplicates: i.e. not datetime(2000, 1, 1, 1, 0, 0, 0)
     self.assertEqual(Months.filter(self.datetimes, number=2, now=self.now),
                      set([datetime(2000, 1, 1, 0, 0, 0, 0),
                           datetime(2000, 2, 1, 0, 0, 0, 0)]))
Пример #18
0
 def test_new_year(self):
     self.assertEqual(Months.filter(self.datetimes, number=3, now=self.now),
                      set([datetime(1999, 12, 31, 23, 59, 59, 999999),
                           datetime(2000, 1, 1, 0, 0, 0, 0),
                           datetime(2000, 2, 1, 0, 0, 0, 0)]))
Пример #19
0
 def test_mask(self):
     self.assertEqual(
         Months.mask(datetime(1999, 12, 31, 23, 59, 59, 999999)),
         datetime(1999, 12, 1, 0, 0, 0, 0))
Пример #20
0
 def test_mask(self):
     self.assertEqual(
         Months.mask(datetime(1999, 12, 31, 23, 59, 59, 999999)),
         datetime(1999, 12, 1, 0, 0, 0, 0)
     )