예제 #1
0
class ArrowTests(BaseArrowTests):

    def setUp(self):
        super(ArrowTests, self).setUp()

        self.arrow = Arrow(datetime.utcnow(), tz=tz.tzutc())

    def test_str(self):

        expected = '{0} UTC'.format(self.arrow._datetime.isoformat())

        self.assertEqual(self.arrow.__str__(), expected)

    def test_repr(self):

        expected = '<Arrow({0} UTC)>'.format(self.arrow._datetime.isoformat())

        self.assertEqual(self.arrow.__repr__(), expected)

    def test_tz(self):

        self.arrow._timezone = self.utc

        self.assertEqual(self.arrow.tz, self.utc)

    def test_to(self):

        self.arrow._datetime = datetime.utcnow().replace(tzinfo=self.utc.tzinfo)
        self.arrow._timezone = self.utc

        result = self.arrow.to('local')

        self.assert_dt_equal(result.datetime, self.arrow._datetime.astimezone(self.local.tzinfo))

    def test_utc_utc(self):

        self.arrow._datetime = datetime.now().replace(tzinfo=self.local.tzinfo)
        self.arrow._timezone = self.local

        result = self.arrow.utc()

        self.assert_dt_equal(result.datetime, self.arrow._datetime.astimezone(self.utc.tzinfo))

    def test_utc_local(self):

        self.arrow._datetime = datetime.utcnow().replace(tzinfo=self.utc.tzinfo)
        self.arrow._timezone = self.utc

        result = self.arrow.utc()

        self.assert_dt_equal(result.datetime, self.arrow._datetime.astimezone(self.utc.tzinfo))

    def test_datetime(self):

        dt = datetime.utcnow().replace(tzinfo=tz.tzutc())

        self.arrow._datetime = dt
        self.arrow._timezone = self.utc

        result = self.arrow.datetime

        self.assertEqual(result, dt)

    def test_timestamp(self):

        dt = datetime.utcnow()

        self.arrow._datetime = dt
        self.arrow._timezone = self.utc

        result = self.arrow.timestamp

        self.assertEqual(result, calendar.timegm(dt.timetuple()))

    def test_parse_int(self):

        dt, timezone = self.arrow._parse(int(time.time()), self.utc)

        self.assert_dt_equal(dt, datetime.utcnow())

    def test_parse_float_utc(self):

        dt, timezone = self.arrow._parse(time.time(), self.utc)

        self.assert_dt_equal(dt, datetime.utcnow())

    def test_parse_float_local(self):

        dt, timezone = self.arrow._parse(time.time(), self.local)

        self.assert_dt_equal(dt, datetime.now())

    def test_parse_str_float_utc(self):

        dt, timezone = self.arrow._parse(str(time.time()), self.utc)

        self.assert_dt_equal(dt, datetime.utcnow())

    def test_parse_str_int_utc(self):

        dt, timezone = self.arrow._parse(str(int(time.time())), self.utc)

        self.assert_dt_equal(dt, datetime.utcnow())

    def test_parse_str_float_local(self):

        dt, timezone = self.arrow._parse(str(time.time()), self.local)

        self.assert_dt_equal(dt, datetime.now())

    def test_parse_str_int_local(self):

        dt, timezone = self.arrow._parse(str(int(time.time())), self.local)
        
        self.assert_dt_equal(dt, datetime.now())

    def test_parse_parse_str(self):

        with self.assertRaises(ValueError):
            self.arrow._parse('abcdefg', self.utc)

    def test_parse_unrecognized(self):

        with self.assertRaises(ValueError):
            self.arrow._parse(object, self.utc)
예제 #2
0
class ArrowTests(BaseArrowTests):

    def setUp(self):
        super(ArrowTests, self).setUp()

        self.arrow = Arrow(datetime.utcnow(), tz=tz.tzutc())

    def test_str(self):

        expected = '{0}.{1} +00:00 (UTC)'.format(time.strftime(
            '%x %X', self.arrow.datetime.timetuple()), self.arrow.datetime.microsecond)

        self.assertEqual(self.arrow.__str__(), expected)

    def test_repr(self):

        expected = 'Arrow({0}.{1} +00:00 (UTC))'.format(time.strftime(
            '%x %X', self.arrow.datetime.timetuple()), self.arrow.datetime.microsecond)

        self.assertEqual(self.arrow.__repr__(), expected)

    def test_tz(self):

        self.arrow._timezone = self.utc

        self.assertEqual(self.arrow.tz, self.utc)

    def test_to(self):

        self.arrow._datetime = datetime.utcnow().replace(tzinfo=self.utc.tzinfo)
        self.arrow._timezone = self.utc

        result = self.arrow.to('local')

        self.assert_dt_equal(result.datetime, self.arrow._datetime.astimezone(self.local.tzinfo))

    def test_utc_utc(self):

        self.arrow._datetime = datetime.now().replace(tzinfo=self.local.tzinfo)
        self.arrow._timezone = self.local

        result = self.arrow.utc()

        self.assert_dt_equal(result.datetime, self.arrow._datetime.astimezone(self.utc.tzinfo))

    def test_utc_local(self):

        self.arrow._datetime = datetime.utcnow().replace(tzinfo=self.utc.tzinfo)
        self.arrow._timezone = self.utc

        result = self.arrow.utc()

        self.assert_dt_equal(result.datetime, self.arrow._datetime.astimezone(self.utc.tzinfo))

    def test_datetime(self):

        dt = datetime.utcnow().replace(tzinfo=tz.tzutc())

        self.arrow._datetime = dt
        self.arrow._timezone = self.utc

        result = self.arrow.datetime

        self.assertEqual(result, dt)

    def test_timestamp(self):

        dt = datetime.utcnow()

        self.arrow._datetime = dt
        self.arrow._timezone = self.utc

        result = self.arrow.timestamp

        self.assertEqual(result, calendar.timegm(dt.timetuple()))

    def test_parse_int(self):

        dt, timezone = self.arrow._parse(int(time.time()), self.utc)

        self.assert_dt_equal(dt, datetime.utcnow())

    def test_parse_float_utc(self):

        dt, timezone = self.arrow._parse(time.time(), self.utc)

        self.assert_dt_equal(dt, datetime.utcnow())

    def test_parse_float_local(self):

        dt, timezone = self.arrow._parse(time.time(), self.local)

        self.assert_dt_equal(dt, datetime.now())

    def test_parse_str_float_utc(self):

        dt, timezone = self.arrow._parse(str(time.time()), self.utc)

        self.assert_dt_equal(dt, datetime.utcnow())

    def test_parse_str_int_utc(self):

        dt, timezone = self.arrow._parse(str(int(time.time())), self.utc)

        self.assert_dt_equal(dt, datetime.utcnow())

    def test_parse_str_float_local(self):

        dt, timezone = self.arrow._parse(str(time.time()), self.local)

        self.assert_dt_equal(dt, datetime.now())

    def test_parse_str_int_local(self):

        dt, timezone = self.arrow._parse(str(int(time.time())), self.local)
        
        self.assert_dt_equal(dt, datetime.now())

    # def test_parse_datetime(self):

    #     dt = datetime.utcnow()

    #     result = self.arrow._parse(dt, self.utc)

    #     self.assert_dt_equal(result, dt)

    def test_parse_parse_str(self):

        with self.assertRaises(ValueError):
            self.arrow._parse('abcdefg', self.utc)

    def test_parse_unrecognized(self):

        with self.assertRaises(ValueError):
            self.arrow._parse(object, self.utc)