def test_number_to_datetime(self):
        pair = (
            1403272847,
            utc.localize(datetime(2014, 6, 20, 14, 0, 47, 0)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])

        pair = (
            1403272847.361077,
            utc.localize(datetime(2014, 6, 20, 14, 0, 47, 361077)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])
Ejemplo n.º 2
0
    def test_number_to_datetime(self):
        pair = (
            1403272847,
            utc.localize(datetime(2014, 6, 20, 14, 0, 47, 0)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])

        pair = (
            1403272847.361077,
            utc.localize(datetime(2014, 6, 20, 14, 0, 47, 361077)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])
    def test_iterable_to_datetime(self):
        pair = (
            (2014, 12, 17, utc),
            utc.localize(datetime(2014, 12, 17)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])
        self.assertEqual(make_datetime(list(pair[0])), pair[1])

        pair = (
            (
                2014,
                12,
                17,
            ),
            datetime(
                2014,
                12,
                17,
            ),
        )
        self.assertEqual(_make_datetime(pair[0]), pair[1])
        self.assertEqual(_make_datetime(list(pair[0])), pair[1])

        pair = (
            (2014, 12, 17, 5, 13, 23, 123456, utc),
            utc.localize(datetime(2014, 12, 17, 5, 13, 23, 123456)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])
        self.assertEqual(make_datetime(list(pair[0])), pair[1])

        pair = (
            (2014, 12, 17, 5, 13, 23, 123456),
            datetime(2014, 12, 17, 5, 13, 23, 123456),
        )
        self.assertEqual(_make_datetime(pair[0]), pair[1])
        self.assertEqual(_make_datetime(list(pair[0])), pair[1])

        # Non-UTC timezone
        central = timezone('US/Central')
        pair = (
            (
                2014,
                12,
                17,
                central,
            ),
            central.localize(datetime(2014, 12, 17)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])
        self.assertEqual(make_datetime(list(pair[0])), pair[1])

        pair = (
            (2014, 12, 17, 5, 13, 23, 123456, central),
            central.localize(datetime(2014, 12, 17, 5, 13, 23, 123456)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])
        self.assertEqual(make_datetime(list(pair[0])), pair[1])
Ejemplo n.º 4
0
    def test_iso_to_datetime(self):
        # with microseconds
        # naive
        pair = (
            '2014-06-19T16:40:22.293913',
            datetime(2014, 6, 19, 16, 40, 22, 293913)
        )
        self.assertEqual(_make_datetime(pair[0]), pair[1])

        # timezone
        pair = (
            '2014-06-19T21:55:27.934309+00:00',
            utc.localize(datetime(2014, 6, 19, 21, 55, 27, 934309)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])

        # with integer seconds
        # naive
        pair = (
            '2014-06-19T16:40:22',
            datetime(2014, 6, 19, 16, 40, 22, 0)
        )
        self.assertEqual(_make_datetime(pair[0]), pair[1])

        # timezone
        pair = (
            '2014-06-19T21:55:27+00:00',
            utc.localize(datetime(2014, 6, 19, 21, 55, 27, 0)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])

        # timezone other than UTC
        central = timezone('US/Central')
        pair = (
            '2014-06-19T17:03:17.361077-05:00',
            central.localize(datetime(2014, 6, 19, 17, 3, 17, 361077)),
            # Due to pytz weirdness, the following has
            # incorrect tz offset info:
            # datetime(2014, 6, 19, 17, 3, 17, 361077, tzinfo=central))
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])
    def test_bad_iso_to_datetime(self):
        with self.assertRaises(ValueError):
            _make_datetime('')

        with self.assertRaises(ValueError):
            _make_datetime('bad')

        with self.assertRaises(TypeError):
            _make_datetime(None)

        with self.assertRaises(ValueError):
            # used '#' instead of 'T'
            _make_datetime('2014-06-19#17:03:17.361077-05:00')

        with self.assertRaises(ValueError):
            # used '#' instead of '-'
            _make_datetime('2014-06-19T17:03#17.361077-05:00')

        with self.assertRaises(ValueError):
            # naive timestamps raise ValueError
            make_datetime('2014-06-19T16:40:22.293913')
Ejemplo n.º 6
0
    def test_bad_iso_to_datetime(self):
        with self.assertRaises(ValueError):
            _make_datetime('')

        with self.assertRaises(ValueError):
            _make_datetime('bad')

        with self.assertRaises(TypeError):
            _make_datetime(None)

        with self.assertRaises(ValueError):
            # used '#' instead of 'T'
            _make_datetime('2014-06-19#17:03:17.361077-05:00')

        with self.assertRaises(ValueError):
            # used '#' instead of '-'
            _make_datetime('2014-06-19T17:03#17.361077-05:00')

        with self.assertRaises(ValueError):
            # naive timestamps raise ValueError
            make_datetime('2014-06-19T16:40:22.293913')
Ejemplo n.º 7
0
    def stored(self, value):
        if value is None or isinstance(value, datetime):
            self._stored = value
            return

        try:
            self._stored = make_datetime(value)
        except TypeError:
            raise TypeError(
                f"Property 'stored' in a 'tincan.{self.__class__.__name__}' "
                f"object must be set with a "
                f"datetime.datetime, str, unicode, int, float, dict "
                f"or None.\n\n")
Ejemplo n.º 8
0
    def timestamp(self, value):
        if value is None:
            self._timestamp = value
            return

        try:
            self._timestamp = make_datetime(value)
        except TypeError:
            raise TypeError(
                f"Property 'timestamp' in a 'tincan.{self.__class__.__name__}' "
                f"object must be set with a "
                f"datetime.datetime, str, unicode, int, float, dict "
                f"or None.\n\n")
    def timestamp(self, value):
        if value is None or isinstance(value, datetime):
            self._timestamp = value
            return

        try:
            self._timestamp = make_datetime(value)
        except TypeError as e:
            message = (
                f"Property 'timestamp' in a 'tincan.{self.__class__.__name__}' "
                f"object must be set with a "
                f"datetime.datetime, str, unicode, int, float, dict "
                f"or None.\n\n{repr(e)}")
            raise TypeError(message) from e
    def test_iso_to_datetime(self):
        # with microseconds
        # naive
        pair = ('2014-06-19T16:40:22.293913',
                datetime(2014, 6, 19, 16, 40, 22, 293913))
        self.assertEqual(_make_datetime(pair[0]), pair[1])

        # timezone
        pair = (
            '2014-06-19T21:55:27.934309+00:00',
            utc.localize(datetime(2014, 6, 19, 21, 55, 27, 934309)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])

        # with integer seconds
        # naive
        pair = ('2014-06-19T16:40:22', datetime(2014, 6, 19, 16, 40, 22, 0))
        self.assertEqual(_make_datetime(pair[0]), pair[1])

        # timezone
        pair = (
            '2014-06-19T21:55:27+00:00',
            utc.localize(datetime(2014, 6, 19, 21, 55, 27, 0)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])

        # timezone other than UTC
        central = timezone('US/Central')
        pair = (
            '2014-06-19T17:03:17.361077-05:00',
            central.localize(datetime(2014, 6, 19, 17, 3, 17, 361077)),
            # Due to pytz weirdness, the following has
            # incorrect tz offset info:
            # datetime(2014, 6, 19, 17, 3, 17, 361077, tzinfo=central))
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])
Ejemplo n.º 11
0
 def timestamp(self, value):
     if value is None:
         self._timestamp = value
         return
     try:
         self._timestamp = make_datetime(value)
     except TypeError as e:
         e.message = ("Property 'timestamp' in a 'tincan.%s' "
                      "object must be set with a "
                      "datetime.datetime, str, unicode, int, float, dict "
                      "or None.\n\n%s" % (
                          self.__class__.__name__,
                          e.message,
                      ))
         raise e
Ejemplo n.º 12
0
    def test_iterable_to_datetime(self):
        pair = (
            (2014, 12, 17, utc),
            utc.localize(datetime(2014, 12, 17)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])
        self.assertEqual(make_datetime(list(pair[0])), pair[1])

        pair = (
            (2014, 12, 17, ),
            datetime(2014, 12, 17, ),
        )
        self.assertEqual(_make_datetime(pair[0]), pair[1])
        self.assertEqual(_make_datetime(list(pair[0])), pair[1])

        pair = (
            (2014, 12, 17, 5, 13, 23, 123456, utc),
            utc.localize(datetime(2014, 12, 17, 5, 13, 23, 123456)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])
        self.assertEqual(make_datetime(list(pair[0])), pair[1])

        pair = (
            (2014, 12, 17, 5, 13, 23, 123456),
            datetime(2014, 12, 17, 5, 13, 23, 123456),
        )
        self.assertEqual(_make_datetime(pair[0]), pair[1])
        self.assertEqual(_make_datetime(list(pair[0])), pair[1])

        # Non-UTC timezone
        central = timezone('US/Central')
        pair = (
            (2014, 12, 17, central, ),
            central.localize(datetime(2014, 12, 17)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])
        self.assertEqual(make_datetime(list(pair[0])), pair[1])

        pair = (
            (2014, 12, 17, 5, 13, 23, 123456, central),
            central.localize(datetime(2014, 12, 17, 5, 13, 23, 123456)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])
        self.assertEqual(make_datetime(list(pair[0])), pair[1])
Ejemplo n.º 13
0
    def stored(self, value):
        if value is None or isinstance(value, datetime):
            self._stored = value
            return

        try:
            self._stored = make_datetime(value)
        except TypeError as e:
            e.message = (
                "Property 'stored' in a 'tincan.%s' "
                "object must be set with a "
                "datetime.datetime, str, unicode, int, float, dict "
                "or None.\n\n%s" %
                (
                    self.__class__.__name__,
                    e.message,
                )
            )
            raise e
Ejemplo n.º 14
0
    def test_dict_to_datetime(self):
        pair = (
            {'year': 2014, 'month': 12, 'day': 17, 'tzinfo': utc, },
            utc.localize(datetime(2014, 12, 17)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])

        pair = (
            {'year': 2014, 'month': 12, 'day': 17, 'tzinfo': utc,
             'hour': 12, 'minute': 4, 'second': 3, },
            utc.localize(datetime(2014, 12, 17, 12, 4, 3, 0)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])

        pair = (
            {'year': 2014, 'month': 12, 'day': 17,
             'hour': 12, 'minute': 4, 'second': 3,
             'microsecond': 560000, 'tzinfo': utc, },
            utc.localize(datetime(2014, 12, 17, 12, 4, 3, 560000)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])

        # Non-UTC timezone
        central = timezone('US/Central')

        pair = (
            {'year': 2014, 'month': 12, 'day': 17, 'tzinfo': central, },
            central.localize(datetime(2014, 12, 17)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])

        pair = (
            {'year': 2014, 'month': 12, 'day': 17, 'tzinfo': central,
             'hour': 12, 'minute': 4, 'second': 3, },
            central.localize(datetime(2014, 12, 17, 12, 4, 3, 0)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])

        pair = (
            {'year': 2014, 'month': 12, 'day': 17,
             'hour': 12, 'minute': 4, 'second': 3,
             'microsecond': 560000, 'tzinfo': central, },
            central.localize(datetime(2014, 12, 17, 12, 4, 3, 560000)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])
    def test_dict_to_datetime(self):
        pair = (
            {
                'year': 2014,
                'month': 12,
                'day': 17,
                'tzinfo': utc,
            },
            utc.localize(datetime(2014, 12, 17)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])

        pair = (
            {
                'year': 2014,
                'month': 12,
                'day': 17,
                'tzinfo': utc,
                'hour': 12,
                'minute': 4,
                'second': 3,
            },
            utc.localize(datetime(2014, 12, 17, 12, 4, 3, 0)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])

        pair = (
            {
                'year': 2014,
                'month': 12,
                'day': 17,
                'hour': 12,
                'minute': 4,
                'second': 3,
                'microsecond': 560000,
                'tzinfo': utc,
            },
            utc.localize(datetime(2014, 12, 17, 12, 4, 3, 560000)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])

        # Non-UTC timezone
        central = timezone('US/Central')

        pair = (
            {
                'year': 2014,
                'month': 12,
                'day': 17,
                'tzinfo': central,
            },
            central.localize(datetime(2014, 12, 17)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])

        pair = (
            {
                'year': 2014,
                'month': 12,
                'day': 17,
                'tzinfo': central,
                'hour': 12,
                'minute': 4,
                'second': 3,
            },
            central.localize(datetime(2014, 12, 17, 12, 4, 3, 0)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])

        pair = (
            {
                'year': 2014,
                'month': 12,
                'day': 17,
                'hour': 12,
                'minute': 4,
                'second': 3,
                'microsecond': 560000,
                'tzinfo': central,
            },
            central.localize(datetime(2014, 12, 17, 12, 4, 3, 560000)),
        )
        self.assertEqual(make_datetime(pair[0]), pair[1])