Example #1
0
 def test_equality(self):
     t1 = sanetime(2000, 1, 1, 0, 0, 0, 0)
     t2 = sanetime(1999, 12, 31, 19, 0, 0, 0, tz="America/New_York")
     t3 = sanetime(2000, 1, 1, 0, 0, 0, 1)
     self.assertTrue(t1 == t2)
     self.assertTrue(t2 == t1)
     self.assertTrue(t1 != t3)
     self.assertTrue(t3 != t1)
Example #2
0
    def test_to_naive_utc_datetime(self):
        st = sanetime(JAN_MICROS)
        self.assertEquals(datetime(2000, 1, 1), st.to_naive_utc_datetime())

        st = sanetime(JAN_MICROS, tz="America/New_York")
        self.assertEquals(datetime(2000, 1, 1), st.to_naive_utc_datetime())

        st = sanetime(JUL_MICROS, tz="America/New_York")
        self.assertEquals(datetime(2000, 7, 1), st.to_naive_utc_datetime())
Example #3
0
    def test_arithmetic(self):
        t1 = sanetime(2000, 1, 1, 0, 0, 0, 0)
        t2 = sanetime(2000, 1, 1, 0, 0, 0, 1)

        self.assertEquals(t2.us, (t1 + 1).us)
        self.assertEquals(t1.us, (t2 - 1).us)

        self.assertEquals(1, t2 - t1)
        self.assertEquals(-1, t1 - t2)
Example #4
0
 def test_hashability(self):
     t1 = sanetime(2000, 1, 1, 0, 0, 0, 0)
     t2 = sanetime(1999, 12, 31, 19, 0, 0, 0, tz="America/New_York")
     t3 = sanetime(2000, 1, 1, 0, 0, 0, 1)
     s = set([t1, t2, t3])
     self.assertEquals(2, len(s))
     self.assertIn(t1, s)
     self.assertIn(t2, s)
     self.assertIn(t3, s)
Example #5
0
 def test_str(self):
     st = sanetime(JAN_MICROS)
     self.assertEquals("%sus" % JAN_MICROS, str(st))
     st = sanetime(JUL_MICROS)
     self.assertEquals("%sus" % JUL_MICROS, str(st))
     st = sanetime(JAN_MICROS, tz="America/New_York")
     self.assertEquals("%sus" % JAN_MICROS, str(st))
     st = sanetime(JUL_MICROS, tz="America/New_York")
     self.assertEquals("%sus" % JUL_MICROS, str(st))
Example #6
0
 def test_repr(self):
     st = sanetime(JAN_MICROS)
     self.assertEquals("2000-01-01 00:00:00.000000 UTC", repr(st))
     st = sanetime(JUL_MICROS)
     self.assertEquals("2000-07-01 00:00:00.000000 UTC", repr(st))
     st = sanetime(JAN_MICROS, tz="America/New_York")
     self.assertEquals("2000-01-01 00:00:00.000000 UTC", repr(st))
     st = sanetime(JUL_MICROS, tz="America/New_York")
     self.assertEquals("2000-07-01 00:00:00.000000 UTC", repr(st))
Example #7
0
    def test_to_utc_datetime(self):
        st = sanetime(JAN_MICROS)
        self.assertEquals(pytz.utc.localize(datetime(2000, 1, 1)), st.to_utc_datetime())

        st = sanetime(JAN_MICROS, tz="America/New_York")
        self.assertEquals(pytz.utc.localize(datetime(2000, 1, 1)), st.to_utc_datetime())

        st = sanetime(JUL_MICROS, tz="America/New_York")
        self.assertEquals(pytz.utc.localize(datetime(2000, 7, 1)), st.to_utc_datetime())
Example #8
0
 def test_micro_equality(self):
     st1 = sanetime(JAN_MICROS)
     st2 = sanetime(JAN_MICROS)
     st3 = sanetime(JAN_MICROS + 1)
     self.assertEquals(st1, st2)
     self.assertEquals(st1, st2.us)
     self.assertEquals(st1.us, st2.us)
     self.assertEquals(st1.us, st2)
     self.assertNotEquals(st1, st3)
     self.assertNotEquals(st1, st3.us)
     self.assertNotEquals(st1.us, st3.us)
     self.assertNotEquals(st1.us, st3)
Example #9
0
File: base.py Project: prior/cynq
 def bulk_delete(self, objs):
     if not objs: return
     start_time = sanetime()
     if not self._deleteable(self.arm): return # avoid error reporting since this is on purpose
     try:
         for success,obj in self._bulk_delete(objs):
             if success: self._single_deleted(obj)
             else: self._single_delete_fail(obj)
     except NotImplementedError:
         for obj in objs:
             self.single_delete(obj)
     self.timings.append(("deletes", (sanetime().ms - start_time.ms)/1000.0))
Example #10
0
File: base.py Project: prior/cynq
 def bulk_update(self, tuples):
     if not tuples: return
     start_time = sanetime()
     if not self._updateable(self.arm): return  # avoid error reporting since this is on purpose
     try:
         for success,obj,dchanges in self._bulk_update(tuples):
             if success: self._single_updated(obj, dchanges)
             else: self._single_update_fail(obj, dchanges)
     except NotImplementedError:
         for obj,dchanges in tuples:
             self.single_update(obj, dchanges)
     self.timings.append(("updates", (sanetime().ms - start_time.ms)/1000.0))
Example #11
0
    def test_now(self):
        past = pytz.utc.localize(datetime.utcnow())
        st = sanetime()
        future = pytz.utc.localize(datetime.utcnow())
        self.assertTrue(st.to_datetime() > past)
        self.assertTrue(st.to_datetime() < future)

        past = self.utc.localize(datetime.utcnow()).astimezone(self.ny)
        st = sanetime(tz="America/New_York")
        future = self.utc.localize(datetime.utcnow()).astimezone(self.ny)
        self.assertTrue(st.to_datetime() > past)
        self.assertTrue(st.to_datetime() < future)
Example #12
0
File: base.py Project: prior/cynq
 def bulk_create(self, tuples):
     if not tuples: return
     start_time = sanetime()
     if not self._createable(self.arm): return # avoid error reporting since this is on purpose
     try:
         for obj,dobj,keyless_trigger in self._bulk_create(tuples):
             if obj: self._single_created(obj, dobj, keyless_trigger)
             else: self._single_create_fail(dobj, keyless_trigger)
     except NotImplementedError:
         for dobj,keyless_trigger in tuples:
             self.single_create(dobj, keyless_trigger)
     self.timings.append(("creates", (sanetime().ms - start_time.ms)/1000.0))
Example #13
0
    def test_from_datetime_string(self):
        self.assertEquals(JAN_MICROS, sanetime("2000-01-01 00:00:00"))
        self.assertEquals(JAN_MICROS + 1, sanetime("2000-01-01 00:00:00.000001"))
        self.assertEquals(JAN_MICROS, sanetime("2000-01-01"))
        self.assertEquals(JUL_MICROS, sanetime("July 1st, 2000"))

        self.assertEquals(JAN_MICROS, sanetime("2000-01-01", tz="UTC"))
        self.assertEquals(JAN_MICROS, sanetime("2000-01-01", tz=self.utc))

        self.assertEquals(NY_JAN_MICROS, sanetime("2000-01-01 00:00:00", tz="America/New_York"))
        self.assertEquals(NY_JAN_MICROS, sanetime("2000-01-01 00:00:00", tz=self.ny))

        self.assertEquals(NY_JUL_MICROS, sanetime("2000-07-01", tz="America/New_York"))
        self.assertEquals(NY_JUL_MICROS + 1000, sanetime("2000-07-01 00:00:00.001", tz=self.ny))
Example #14
0
 def pre_save(self, model_instance, add):
     if self.auto_now or (self.auto_now_add and add):
         value = sanetime()
         setattr(model_instance, self.attname, value)
         return value
     else:
         return super(SaneTimeField, self).pre_save(model_instance, add)
Example #15
0
    def test_comparisons(self):
        t1 = sanetime(2000, 1, 1, 0, 0, 0, 0)
        t2 = sanetime(2000, 1, 1, 0, 0, 0, 1)

        self.assertFalse(t1 > t1)
        self.assertTrue(t2 > t1)
        self.assertFalse(t1 > t2)

        self.assertTrue(t1 >= t1)
        self.assertTrue(t2 >= t1)
        self.assertFalse(t1 >= t2)

        self.assertFalse(t1 < t1)
        self.assertFalse(t2 < t1)
        self.assertTrue(t1 < t2)

        self.assertTrue(t1 <= t1)
        self.assertFalse(t2 <= t1)
        self.assertTrue(t1 <= t2)
 def forwards(self, orm):
     if settings.ENV == 'local':
         orm.Hub.objects.create(
             id=1,
             created_at = sanetime(),
             updated_at = sanetime() )
         webex_account_type = orm.AccountType.objects.filter(name='Webex')[0]
         gtw_account_type = orm.AccountType.objects.filter(name='GoToWebinar')[0]
         orm.Account.objects.create(
             account_type = webex_account_type,
             username = '******',
             password = '******',
             email = '*****@*****.**',
             extra_username = '******',
             created_at = sanetime(),
             updated_at = sanetime(),
             hub_id = 1 )
         orm.Account.objects.create(
             account_type = gtw_account_type,
             username = '******',
             password = '******',
             email = '*****@*****.**',
             extra_username = '******',
             created_at = sanetime(),
             updated_at = sanetime(),
             hub_id = 1 )
Example #17
0
 def forwards(self, orm):
     if settings.ENV == 'local':
         orm.Hub.objects.create(id=1,
                                created_at=sanetime(),
                                updated_at=sanetime())
         webex_account_type = orm.AccountType.objects.filter(
             name='Webex')[0]
         gtw_account_type = orm.AccountType.objects.filter(
             name='GoToWebinar')[0]
         orm.Account.objects.create(account_type=webex_account_type,
                                    username='******',
                                    password='******',
                                    email='*****@*****.**',
                                    extra_username='******',
                                    created_at=sanetime(),
                                    updated_at=sanetime(),
                                    hub_id=1)
         orm.Account.objects.create(account_type=gtw_account_type,
                                    username='******',
                                    password='******',
                                    email='*****@*****.**',
                                    extra_username='******',
                                    created_at=sanetime(),
                                    updated_at=sanetime(),
                                    hub_id=1)
Example #18
0
 def cynq(self):
     self.errs = []
     self.started_at = sanetime()
     for arm in self.arms: arm.controller = self
     self.cynqable_arms = [arm for arm in self.arms if arm._pre_cynq()]
     if not self.cynqable_arms: return
     self.starting_arms_count = len(self.cynqable_arms)
     try:
         self._cynq_apis()
         self._cynq_local()
         self._cynq_apis()
         self._cynq_local()
         self._cynq_snapshot()
     except StandardError as err:
         self.log.error("giving up on entire cynq | err=%s" % format_exc(err))
     for arm in self.cynqable_arms: arm._post_cynq()
     self.log.info("completed | %s" % ' | '.join(['%s:[api:%s local:%s snapshot:%s]' % (a.spec.name, a.api.changes_tstr, a.local.changes_tstr, a.snapshot.changes_tstr) for a in self.arms]))
     self.log.info("timings | %s | total: %.2f" % (' | '.join(['%s.%s:%s:%.2f' % (a.spec.name, s.type_, t[0], t[1]) for a in self.arms for s in a.stores for t in s.timings if t[1] > 0.1]), (sanetime().ms-self.started_at.ms)/1000.0))
     if self.errs:
         raise Error(self.errs[0])
     return self
Example #19
0
File: base.py Project: prior/cynq
 def _get_list(self):
     if self._list is None:
         start_time = sanetime()
         self._list = list(self._all())
         self.timings.append(("reads", (sanetime().ms - start_time.ms)/1000.0))
     return self._list
Example #20
0
 def test_properties(self):
     st = sanetime(2000, 1, 2, 3, 4, 5, 600700)
     self.assertEquals(700, st.us % 1000)
     self.assertEquals(601, st.ms % 1000)  # remember, it rounds
     self.assertEquals(6, st.s % 60)  # remember, it rounds
Example #21
0
 def test_from_datetime(self):
     self.assertEquals(JAN_MICROS, sanetime(datetime(2000, 1, 1)))
     self.assertEquals(JAN_MICROS, sanetime(datetime(2000, 1, 1, tzinfo=self.utc)))
     self.assertEquals(NY_JAN_MICROS, sanetime(self.ny.localize(datetime(2000, 1, 1))))
     self.assertEquals(NY_JUL_MICROS, sanetime(self.ny.localize(datetime(2000, 7, 1))))
Example #22
0
    def test_from_datetime_params(self):
        and_one_hour = JAN_MICROS + 60 ** 2 * 1000 ** 2
        and_one_minute = and_one_hour + 60 * 1000 ** 2
        and_one_second = and_one_minute + 1000 ** 2
        and_one_micro = and_one_second + 1

        self.assertEquals(JAN_MICROS, sanetime(2000, 1, 1))
        self.assertEquals(and_one_hour, sanetime(2000, 1, 1, 1))
        self.assertEquals(and_one_minute, sanetime(2000, 1, 1, 1, 1))
        self.assertEquals(and_one_second, sanetime(2000, 1, 1, 1, 1, 1))
        self.assertEquals(and_one_micro, sanetime(2000, 1, 1, 1, 1, 1, 1))
        self.assertEquals(JUL_MICROS, sanetime(2000, 7, 1))
        with self.assertRaises(SaneTimeError):
            sanetime(2000, 1)

        self.assertEquals(JAN_MICROS, sanetime(2000, 1, 1, 0, 0, 0, 0, tz="UTC"))
        self.assertEquals(JAN_MICROS, sanetime(2000, 1, 1, 0, 0, 0, 0, tz=self.utc))

        self.assertEquals(NY_JAN_MICROS, sanetime(2000, 1, 1, 0, 0, 0, 0, tz="America/New_York"))
        self.assertEquals(NY_JAN_MICROS, sanetime(2000, 1, 1, 0, 0, 0, 0, tz=self.ny))

        self.assertEquals(NY_JUL_MICROS, sanetime(2000, 7, 1, tz="America/New_York"))
        self.assertEquals(NY_JUL_MICROS, sanetime(2000, 7, 1, tz=self.ny))
Example #23
0
    def test_transitives(self):
        st = sanetime()
        st2 = sanetime(st.to_datetime())
        self.assertEquals(st, st2)

        st = sanetime(tz="America/New_York")
        st2 = sanetime(st.to_datetime())
        self.assertEquals(st, st2)

        st = sanetime()
        st2 = sanetime(str(st))
        self.assertEquals(st, st2)

        st = sanetime(tz="America/New_York")
        st2 = sanetime(str(st))
        self.assertEquals(st, st2)

        st = sanetime()
        st2 = sanetime(st.us)
        self.assertEquals(st, st2)

        st = sanetime(tz="America/New_York")
        st2 = sanetime(st.us, tz="America/New_York")
        self.assertEquals(st, st2)
Example #24
0
 def test_construction_errors(self):
     with self.assertRaises(SaneTimeError):
         sanetime(datetime(2000, 1, 1, tzinfo=self.ac), tz="America/New_York")
     with self.assertRaises(SaneTimeError):
         sanetime(datetime(2000, 1, 1, tzinfo=self.ac), tz=self.ny)
Example #25
0
 def to_python(self, value):
     if value is not None:
         if not isinstance(value, sanetime):
             value = sanetime(value)
         return value
     return super(SaneTimeField, self).to_python(value)
Example #26
0
 def to_sanetime(self):
     return sanetime(self.us)