def test_local(self): self.assertTrue( Pendulum.create_from_date(2012, 1, 1, 'America/Toronto').local) self.assertTrue( Pendulum.create_from_date(2012, 1, 1, 'America/New_York').local) self.assertFalse(Pendulum.create_from_date(2012, 1, 1, 'UTC').local) self.assertFalse( Pendulum.create_from_date(2012, 1, 1, 'Europe/London').local)
def test_week_of_month(self): self.assertEqual(5, Pendulum.create_from_date(2012, 9, 30).week_of_month) self.assertEqual(4, Pendulum.create_from_date(2012, 9, 28).week_of_month) self.assertEqual(3, Pendulum.create_from_date(2012, 9, 20).week_of_month) self.assertEqual(2, Pendulum.create_from_date(2012, 9, 8).week_of_month) self.assertEqual(1, Pendulum.create_from_date(2012, 9, 1).week_of_month)
def test_create_from_date_with_timezone(self): d = Pendulum.create_from_date(1975, 12, 25, tz=timezone('Europe/London')) self.assertPendulum(d, 1975, 12, 25) self.assertEqual('Europe/London', d.timezone_name)
def test_utc(self): self.assertFalse(Pendulum.create_from_date(2012, 1, 1, 'America/Toronto').utc) self.assertFalse(Pendulum.create_from_date(2012, 1, 1, 'Europe/Paris').utc) self.assertTrue(Pendulum.create_from_date(2012, 1, 1, 'Atlantic/Reykjavik').utc) self.assertTrue(Pendulum.create_from_date(2012, 1, 1, 'Europe/Lisbon').utc) self.assertTrue(Pendulum.create_from_date(2012, 1, 1, 'Africa/Casablanca').utc) self.assertTrue(Pendulum.create_from_date(2012, 1, 1, 'Africa/Dakar').utc) self.assertTrue(Pendulum.create_from_date(2012, 1, 1, 'UTC').utc) self.assertTrue(Pendulum.create_from_date(2012, 1, 1, 'GMT').utc)
def test_create_from_date_with_tzinfo(self): tz = timezone('Europe/London') d = Pendulum.create_from_date(1975, 12, 25, tz=TimezoneInfo.create( tz, 3600, True, '')) self.assertPendulum(d, 1975, 12, 25) self.assertEqual('Europe/London', d.timezone_name)
def test_utc(self): self.assertFalse( Pendulum.create_from_date(2012, 1, 1, 'America/Toronto').utc) self.assertFalse( Pendulum.create_from_date(2012, 1, 1, 'Europe/Paris').utc) self.assertTrue( Pendulum.create_from_date(2012, 1, 1, 'Atlantic/Reykjavik').utc) self.assertTrue( Pendulum.create_from_date(2012, 1, 1, 'Europe/Lisbon').utc) self.assertTrue( Pendulum.create_from_date(2012, 1, 1, 'Africa/Casablanca').utc) self.assertTrue( Pendulum.create_from_date(2012, 1, 1, 'Africa/Dakar').utc) self.assertTrue(Pendulum.create_from_date(2012, 1, 1, 'UTC').utc) self.assertTrue(Pendulum.create_from_date(2012, 1, 1, 'GMT').utc)
def test_last_day_of_quarter_that_will_not_exist_in_the_last_month(self): d = Pendulum.create_from_date(2014, 5, 31).last_of('quarter', ) self.assertPendulum(d, 2014, 6, 30, 0, 0, 0)
def test_create_from_date_with_day(self): d = Pendulum.create_from_date(None, None, 25) self.assertEqual(d.day, 25) d = Pendulum.create_from_date(day=25) self.assertEqual(d.day, 25)
def test_create_from_date_with_defaults(self): d = Pendulum.create_from_date() self.assertEqual(d.timestamp, Pendulum().timestamp)
def test_next_monday(self): d = Pendulum.create_from_date(1975, 5, 21).next(Pendulum.MONDAY) self.assertPendulum(d, 1975, 5, 26, 0, 0, 0)
def test_end_of_week_crossing_year_boundary(self): d = Pendulum.create_from_date(2013, 12, 31).end_of('week') self.assertPendulum(d, 2014, 1, 5, 23, 59, 59)
def test_previous_saturday(self): d = Pendulum.create_from_date(1975, 5, 21).previous(6) self.assertPendulum(d, 1975, 5, 17, 0, 0, 0)
def test_end_of_week_crossing_year_boundary(self): d = Pendulum.create_from_date(2013, 12, 31).end_of('week') self.assertPendulum(d, 2014, 1, 5, 23, 59, 59)
def test_next_saturday(self): d = Pendulum.create_from_date(1975, 5, 21).next(6) self.assertPendulum(d, 1975, 5, 24, 0, 0, 0)
def test_offset_hours_with_dst(self): self.assertEqual(-5, Pendulum.create_from_date(2012, 1, 1, 'America/Toronto').offset_hours)
def test_last_tuesday_of_month(self): d = Pendulum.create_from_date(1975, 12, 1).last_of('month', Pendulum.TUESDAY) self.assertPendulum(d, 1975, 12, 30, 0, 0, 0)
def test_previous(self): d = Pendulum.create_from_date(1975, 5, 21).previous() self.assertPendulum(d, 1975, 5, 14, 0, 0, 0)
def test_last_day_of_month(self): d = Pendulum.create_from_date(1975, 12, 5).last_of('month', ) self.assertPendulum(d, 1975, 12, 31, 0, 0, 0)
def test_first_friday_of_month(self): d = Pendulum.create_from_date(1975, 11, 21).first_of('month', 5) self.assertPendulum(d, 1975, 11, 7, 0, 0, 0)
def test_first_wednesday_of_month(self): d = Pendulum.create_from_date(1975, 11, 21).first_of('month', Pendulum.WEDNESDAY) self.assertPendulum(d, 1975, 11, 5, 0, 0, 0)
def test_2nd_monday_of_quarter(self): d = Pendulum.create_from_date(1975, 8, 5).nth_of('quarter', 2, pendulum.MONDAY) self.assertPendulum(d, 1975, 7, 14, 0, 0, 0)
def test_is_leap_year(self): self.assertTrue(Pendulum.create_from_date(2012, 1, 1).is_leap_year()) self.assertFalse(Pendulum.create_from_date(2011, 1, 1).is_leap_year())
def test_first_wednesday_of_year(self): d = Pendulum.create_from_date(1975, 11, 21).first_of('year', pendulum.WEDNESDAY) self.assertPendulum(d, 1975, 1, 1, 0, 0, 0)
def test_is_long_year(self): self.assertTrue(Pendulum.create_from_date(2015, 1, 1).is_long_year()) self.assertFalse(Pendulum.create_from_date(2016, 1, 1).is_long_year())
def test_7th_thursday_of_year(self): d = Pendulum.create_from_date(1975, 8, 31).nth_of('year', 7, pendulum.THURSDAY) self.assertPendulum(d, 1975, 2, 13, 0, 0, 0)
def test_week_of_month(self): self.assertEqual(5, Pendulum.create_from_date(2012, 9, 30).week_of_month) self.assertEqual(4, Pendulum.create_from_date(2012, 9, 28).week_of_month) self.assertEqual(3, Pendulum.create_from_date(2012, 9, 20).week_of_month) self.assertEqual(2, Pendulum.create_from_date(2012, 9, 8).week_of_month) self.assertEqual(1, Pendulum.create_from_date(2012, 9, 1).week_of_month)
def test_next_monday(self): d = Pendulum.create_from_date(1975, 5, 21).next(pendulum.MONDAY) self.assertPendulum(d, 1975, 5, 26, 0, 0, 0)
def test_week_of_year_first_week(self): self.assertEqual(52, Pendulum.create_from_date(2012, 1, 1).week_of_year) self.assertEqual(1, Pendulum.create_from_date(2012, 1, 2).week_of_year)
def test_first_friday_of_month(self): d = Pendulum.create_from_date(1975, 11, 21).first_of('month', 5) self.assertPendulum(d, 1975, 11, 7, 0, 0, 0)
def test_week_of_year_last_week(self): self.assertEqual(52, Pendulum.create_from_date(2012, 12, 30).week_of_year) self.assertEqual(1, Pendulum.create_from_date(2012, 12, 31).week_of_year)
def test_create_from_date_with_month(self): d = Pendulum.create_from_date(None, 12) self.assertEqual(d.month, 12) d = Pendulum.create_from_date(month=12) self.assertEqual(d.month, 12)
def test_timezone_name(self): d = Pendulum.create_from_date(2000, 1, 1, 'America/Toronto') self.assertEqual('America/Toronto', d.timezone_name) d = Pendulum.create_from_date(2000, 1, 1, -5) self.assertEqual(None, d.timezone_name)
def test_create_from_date_with_tzinfo(self): d = Pendulum.create_from_date(1975, 12, 25, tz=pytz.timezone('Europe/London')) self.assertPendulum(d, 1975, 12, 25) self.assertEqual('Europe/London', d.timezone_name)
def test_local(self): self.assertTrue(Pendulum.create_from_date(2012, 1, 1, 'America/Toronto').local) self.assertTrue(Pendulum.create_from_date(2012, 1, 1, 'America/New_York').local) self.assertFalse(Pendulum.create_from_date(2012, 1, 1, 'UTC').local) self.assertFalse(Pendulum.create_from_date(2012, 1, 1, 'Europe/London').local)
def test_last_friday_of_quarter(self): d = Pendulum.create_from_date(1975, 8, 5).last_of('quarter', pendulum.FRIDAY) self.assertPendulum(d, 1975, 9, 26, 0, 0, 0)
def test_last_tuesday_of_year(self): d = Pendulum.create_from_date(1975, 8, 5).last_of('year', pendulum.TUESDAY) self.assertPendulum(d, 1975, 12, 30, 0, 0, 0)
def test_nth_of_quarter_from_a_day_that_will_not_exist_in_the_first_month( self): d = Pendulum.create_from_date(2014, 5, 31).nth_of('quarter', 2, pendulum.MONDAY) self.assertPendulum(d, 2014, 4, 14, 0, 0, 0)
def test_nth_of_year_outside_scope(self): d = Pendulum.create_from_date(1975, 1, 5) self.assertRaises(PendulumException, d.nth_of, 'year', 55, pendulum.MONDAY)
def test_3rd_wednesday_of_quarter(self): d = Pendulum.create_from_date(1975, 8, 5).nth_of('quarter', 3, 3) self.assertPendulum(d, 1975, 7, 16, 0, 0, 0)
def test_2nd_monday_of_year(self): d = Pendulum.create_from_date(1975, 8, 5).nth_of('year', 2, pendulum.MONDAY) self.assertPendulum(d, 1975, 1, 13, 0, 0, 0)
def test_first_friday_of_year(self): d = Pendulum.create_from_date(1975, 11, 21).first_of('year', 5) self.assertPendulum(d, 1975, 1, 3, 0, 0, 0)
def test_previous_monday(self): d = Pendulum.create_from_date(1975, 5, 21).previous(Pendulum.MONDAY) self.assertPendulum(d, 1975, 5, 19, 0, 0, 0)
def test_last_friday_of_year(self): d = Pendulum.create_from_date(1975, 8, 5).last_of('year', 5) self.assertPendulum(d, 1975, 12, 26, 0, 0, 0)
def test_is_dst(self): self.assertFalse(Pendulum.create_from_date(2012, 1, 1, 'America/Toronto').is_dst) self.assertTrue(Pendulum.create_from_date(2012, 7, 1, 'America/Toronto').is_dst)
def test_nth_of_year_first(self): d = Pendulum.create_from_date(1975, 12, 5).nth_of('year', 1, pendulum.MONDAY) self.assertPendulum(d, 1975, 1, 6, 0, 0, 0)
def test_offset_no_dst(self): self.assertEqual(-14400, Pendulum.create_from_date(2012, 6, 1, 'America/Toronto').offset)
def test_2rd_wednesday_of_year(self): d = Pendulum.create_from_date(1975, 8, 5).nth_of('year', 3, pendulum.WEDNESDAY) self.assertPendulum(d, 1975, 1, 15, 0, 0, 0)
def test_offset_for_gmt(self): self.assertEqual(0, Pendulum.create_from_date(2012, 6, 1, 'GMT').offset)
def test_start_of_week_crossing_year_boundary(self): d = Pendulum.create_from_date(2014, 1, 1).start_of('week') self.assertPendulum(d, 2013, 12, 30, 0, 0, 0)
def test_previous(self): d = Pendulum.create_from_date(1975, 5, 21).previous() self.assertPendulum(d, 1975, 5, 14, 0, 0, 0)
def test_next(self): d = Pendulum.create_from_date(1975, 5, 21).next() self.assertPendulum(d, 1975, 5, 28, 0, 0, 0)
def test_previous_saturday(self): d = Pendulum.create_from_date(1975, 5, 21).previous(6) self.assertPendulum(d, 1975, 5, 17, 0, 0, 0)
def test_next_saturday(self): d = Pendulum.create_from_date(1975, 5, 21).next(6) self.assertPendulum(d, 1975, 5, 24, 0, 0, 0)
def test_next(self): d = Pendulum.create_from_date(1975, 5, 21).next() self.assertPendulum(d, 1975, 5, 28, 0, 0, 0)
def test_previous_monday(self): d = Pendulum.create_from_date(1975, 5, 21).previous(pendulum.MONDAY) self.assertPendulum(d, 1975, 5, 19, 0, 0, 0)
def test_create_from_date(self): d = Pendulum.create_from_date(1975, 12, 25) now = Pendulum.utcnow() self.assertPendulum(d, 1975, 12, 25, now.hour, now.minute)
def test_first_wednesday_of_month(self): d = Pendulum.create_from_date(1975, 11, 21).first_of('month', pendulum.WEDNESDAY) self.assertPendulum(d, 1975, 11, 5, 0, 0, 0)
def test_create_from_date_with_year(self): d = Pendulum.create_from_date(1975) self.assertEqual(d.year, 1975)
def test_last_day_of_month(self): d = Pendulum.create_from_date(1975, 12, 5).last_of('month', ) self.assertPendulum(d, 1975, 12, 31, 0, 0, 0)
def test_start_of_week_crossing_year_boundary(self): d = Pendulum.create_from_date(2014, 1, 1).start_of('week') self.assertPendulum(d, 2013, 12, 30, 0, 0, 0)