Example #1
0
    def test_stops_bymonth(self):
        """Test if create stops, checks bymonth, bymonthday, count
        and start parameters work properly
        """
        days = list(
            tardis.interface.stops(tardis.MONTHLY,
                                   bymonth=(1, 4, 7, 10),
                                   bymonthday=15,
                                   count=4,
                                   start=datetime(datetime.now().year, 1, 1)))
        year = datetime.now().year
        day = 15
        dt1 = datetime(year, 1, day)
        dt4 = datetime(year, 4, day)
        dt7 = datetime(year, 7, day)
        dt10 = datetime(year, 10, day)

        self.assertTrue(len(days) == 4)
        dl1 = tardis.Tardis(datetime=dt1, timezone='UTC')
        self.assertEqual(days[0], dl1)

        dl4 = tardis.Tardis(datetime=dt4, timezone='UTC')
        self.assertEqual(days[1], dl4)

        dl7 = tardis.Tardis(datetime=dt7, timezone='UTC')
        self.assertEqual(days[2], dl7)

        dl10 = tardis.Tardis(datetime=dt10, timezone='UTC')
        self.assertEqual(days[3], dl10)
Example #2
0
 def test_le(self):
     dt = datetime.utcnow()
     dt1 = tardis.Tardis(dt, timezone="UTC")
     dt2 = tardis.Tardis(dt, timezone="UTC")
     dt3 = self.do
     self.assertTrue(dt2 <= dt1)
     self.assertTrue(dt3 <= dt2)
Example #3
0
 def test_normalize(self):
     dt1 = tardis.Tardis()
     dt2 = tardis.Tardis(timezone="US/Eastern")
     dt1.truncate('minute')
     dt2.truncate('minute')
     dt_normalized = tardis.normalize(dt1.datetime, "US/Eastern")
     self.assertEqual(dt2.datetime, dt_normalized)
Example #4
0
    def test_equal(self):
        d1 = tardis.Tardis()
        d2 = deepcopy(d1)
        self.assertEqual(d1, d2)
        self.assertFalse(d1 != d2, 'Overloaded __ne__ is not correct')

        d1 = tardis.Tardis(datetime(2015, 1, 1), timezone='US/Pacific')
        d2 = tardis.Tardis(datetime(2015, 1, 1, 8), timezone='UTC')
        self.assertEqual(d1, d2)
Example #5
0
    def test_timezone_tardis_to_datetime_to_tardis_utc(self):
        d1 = tardis.Tardis()
        d2 = tardis.Tardis(d1.datetime)

        # these tardis should be the same
        self.assertEqual(d1.next_day(1), d2.next_day(1))
        self.assertEqual(d2.last_week(), d2.last_week())
        self.assertEqual(d1.timezone, d2.timezone)
        self.assertEqual(d1, d2)
Example #6
0
    def test_timezone_tardis_to_datetime_to_tardis_non_utc(self):
        """Test if when you create Tardis object from Tardis' datetime
        it still behaves the same
        """
        d1 = tardis.Tardis(timezone='America/Chicago')
        d2 = tardis.Tardis(d1.datetime)

        # these tardis should be the same
        self.assertEqual(d1.next_day(1), d2.next_day(1))
        self.assertEqual(d2.last_week(), d2.last_week())
        self.assertEqual(d1.timezone, d2.timezone)
        self.assertEqual(d1, d2)
Example #7
0
    def test_initialize_with_naive_datetime_with_pytz_timezone(self):
        dt = datetime(2015, 1, 1)
        do = tardis.Tardis(dt, timezone=pytz.utc)

        dt = pytz.utc.localize(dt)
        self.assertEqual(do.datetime, dt)
        self.assertEqual(do.timezone, pytz.utc)
Example #8
0
    def test_initialize_without_datetime_without_timezone(
            self, mock_datetime_timezone):
        dt = pytz.utc.localize(datetime(2015, 1, 1))
        mock_datetime_timezone.return_value = dt

        do = tardis.Tardis()
        self.assertEqual(do.datetime, dt)
        self.assertEqual(do.timezone, pytz.utc)
Example #9
0
 def test_tardis_with_timezone(self):
     dt = datetime.utcnow()
     d = tardis.Tardis(datetime=dt, timezone=UTC)
     d = d.shift("US/Eastern")
     dt = pytz.utc.localize(dt).astimezone(est)
     dt = est.normalize(dt)
     self.assertEqual(dt, d.datetime)
     self.assertEqual(est, d.timezone)
Example #10
0
 def test_tardis_with_only_timezone(self):
     dt = datetime.utcnow()
     dt = pytz.utc.localize(dt)
     dt = est.normalize(dt)
     dt = dt.replace(second=0, microsecond=0)
     d = tardis.Tardis(timezone="US/Eastern")
     d.truncate('minute')
     self.assertEqual(est, d.timezone)
     self.assertEqual(dt, d._dt)
Example #11
0
 def test_range_with_start(self):
     dates1 = []
     for do in tardis.stops(tardis.DAILY, count=5, start=datetime.utcnow()):
         do.truncate('minute')
         dates1.append(do)
     do = tardis.Tardis().truncate('minute')
     dates2 = []
     for x in range(5):
         dates2.append(do.next_day(x))
     self.assertEqual(dates1, dates2)
Example #12
0
    def test_localize_datetime(self):
        dt = datetime.utcnow()
        tz = pytz.timezone("US/Pacific")
        dt = tz.localize(dt)
        d = tardis.Tardis(dt)
        d2 = d.shift('US/Pacific')

        self.assertEqual(d.timezone.tzname(None), "US/Pacific")
        self.assertEqual(d.datetime, dt)
        self.assertEqual(d.datetime, d2.datetime)
Example #13
0
    def test_initialize_with_naive_datetime_with_string_timezone(self):
        dt = datetime(2015, 1, 1)
        tz_str = 'US/Pacific'
        tz = pytz.timezone(tz_str)
        do = tardis.Tardis(dt, timezone=tz_str)
        tz = tz.localize(datetime(2015, 1, 1)).tzinfo

        dt = tz.localize(dt)
        self.assertEqual(do.datetime, dt)
        self.assertEqual(do.timezone, tz)
Example #14
0
    def test_initialize_without_datetime_with_pytz_timezone(
            self, mock_datetime_timezone):
        tz = pytz.timezone('US/Pacific')
        dt = tz.localize(datetime(2015, 1, 1))
        tz = dt.tzinfo
        mock_datetime_timezone.return_value = dt

        do = tardis.Tardis(timezone=tz)
        self.assertEqual(do.datetime, dt)
        self.assertEqual(do.timezone, tz)
Example #15
0
 def test_initialize_with_tzinfo_pytz(self):
     aware_dt_pytz = datetime(2013,
                              1,
                              3,
                              4,
                              31,
                              14,
                              148540,
                              tzinfo=pytz.utc)
     do = tardis.Tardis(datetime=aware_dt_pytz)
     self.assertTrue(isinstance(do, tardis.Tardis))
Example #16
0
 def test_initialize_with_tzinfo_generic(self):
     aware_dt_generic = datetime(2013,
                                 1,
                                 3,
                                 4,
                                 31,
                                 14,
                                 148540,
                                 tzinfo=generic_utc)
     do = tardis.Tardis(datetime=aware_dt_generic)
     self.assertTrue(isinstance(do, tardis.Tardis))
Example #17
0
    def test_initialize_with_naive_datetime_with_dateutil_timezone(self):
        dt = datetime(2015, 1, 1)
        tz = tzoffset(None, -22500)
        do = tardis.Tardis(dt, timezone=tz)

        utcoffset = tz.utcoffset(None)
        total_seconds = (
            (utcoffset.microseconds +
             (utcoffset.seconds + utcoffset.days * 24 * 3600) * 10**6) / 10**6)
        tz = pytz.FixedOffset(total_seconds / 60)
        dt = tz.localize(dt)
        self.assertEqual(do.datetime, dt)
        self.assertEqual(do.timezone, tz)
Example #18
0
 def test_range_with_start_and_stop(self):
     dates1 = []
     tomorrow = datetime.utcnow() + timedelta(days=1)
     for do in tardis.stops(tardis.DAILY,
                            start=datetime.utcnow(),
                            stop=tomorrow):
         do.truncate('minute')
         dates1.append(do)
     do = tardis.Tardis().truncate('minute')
     dates2 = []
     for x in range(2):
         dates2.append(do.next_day(x))
     self.assertEqual(dates1, dates2)
Example #19
0
    def test_initialize_without_datetime_with_dateutil_timezone(
            self, mock_datetime_timezone):
        tz = tzoffset(None, -22500)
        dt = datetime(2015, 1, 1, tzinfo=tz)

        utcoffset = tz.utcoffset(None)
        total_seconds = (
            (utcoffset.microseconds +
             (utcoffset.seconds + utcoffset.days * 24 * 3600) * 10**6) / 10**6)

        tz = pytz.FixedOffset(total_seconds / 60)
        dt = tz.normalize(dt)
        mock_datetime_timezone.return_value = dt

        do = tardis.Tardis(timezone=tz)
        self.assertEqual(do.datetime, dt)
        self.assertEqual(do.timezone, tz)
Example #20
0
    def test_replace(self):
        do = tardis.Tardis(datetime(2015, 1, 1), timezone='US/Pacific')
        dt = do.datetime

        # Check if parts are okay
        self.assertEqual(do.replace(hour=8).datetime.hour, 8)
        self.assertEqual(do.replace(minute=23).datetime.minute, 23)
        self.assertEqual(do.replace(second=45).datetime.second, 45)

        # Asserts on datetimes
        self.assertEqual(do.replace(hour=8).datetime, dt.replace(hour=8))
        self.assertEqual(do.replace(minute=38).datetime, dt.replace(minute=38))
        self.assertEqual(do.replace(second=48).datetime, dt.replace(second=48))

        # Test that the timezone does not change
        self.assertEqual(do.replace(second=45).timezone, do.timezone)

        # Test the datetime
        eight_hours_late = dt + timedelta(hours=8)
        self.assertEqual(do.replace(hour=8).datetime, eight_hours_late)
Example #21
0
 def test_tardis_with_datetime(self):
     dt = datetime.utcnow()
     d = tardis.Tardis(datetime=dt, timezone=UTC)
     dt = pytz.utc.localize(dt)
     self.assertEqual(dt, d._dt)
     self.assertEqual(pytz.utc, d.timezone)
Example #22
0
    def test_humanize_future(self, mock_now):
        mock_now.return_value = tardis.Tardis(datetime(2014, 12, 31),
                                              timezone='US/Pacific')

        do = tardis.Tardis(datetime(2015, 1, 1), timezone='US/Pacific')
        self.assertEqual(do.humanize(), 'a day from now')
Example #23
0
    def test_humanize_past(self, mock_now):
        mock_now.return_value = tardis.Tardis(datetime(2015, 1, 2),
                                              timezone='US/Pacific')

        do = tardis.Tardis(datetime(2015, 1, 1), timezone='US/Pacific')
        self.assertEqual(do.humanize(), 'a day ago')
Example #24
0
 def test_datetime_timezone(self):
     do = tardis.Tardis(timezone="US/Eastern")
     do.truncate("minute")
     dt1 = tardis.datetime_timezone(tz="US/Eastern")
     self.assertEqual(dt1.replace(second=0, microsecond=0), do.datetime)
Example #25
0
 def test_parse_default(self):
     do = tardis.parse('2016-07-01T11:00:00+02:00', dayfirst=False)
     dt1 = tardis.Tardis(datetime=datetime(2016, 7, 1, 11, 0),
                         timezone=pytz.FixedOffset(120))
     self.assertEqual(do.datetime, dt1.datetime)
Example #26
0
 def setUp(self):
     self.naive_dt = datetime(2013, 1, 3, 4, 31, 14, 148540)
     self.do = tardis.Tardis(datetime=self.naive_dt, timezone="UTC")
Example #27
0
 def test_datetime_localization(self):
     dt1 = self.do.datetime
     dt2 = tardis.Tardis(dt1).datetime
     self.assertEqual(dt1, dt2)
Example #28
0
 def test_not_equal(self):
     d = tardis.Tardis()
     self.assertNotEqual(d, None)
Example #29
0
 def test_lt(self):
     dt1 = self.do
     dt2 = tardis.Tardis()
     self.assertTrue(dt1 < dt2)
Example #30
0
 def test_gt(self):
     dt1 = self.do
     dt2 = tardis.Tardis()
     self.assertTrue(dt2 > dt1)