79 lines
3.2 KiB
Python
79 lines
3.2 KiB
Python
# -*- encoding: utf-8 -*-
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
import datetime
|
|
import os
|
|
import uuid
|
|
|
|
import iso8601
|
|
import mock
|
|
|
|
from gnocchi.tests import base as tests_base
|
|
from gnocchi import utils
|
|
|
|
|
|
class TestUtils(tests_base.TestCase):
|
|
def _do_test_datetime_to_unix_timezone_change(self, expected, dt):
|
|
self.assertEqual(expected, utils.datetime_to_unix(dt))
|
|
with mock.patch.dict(os.environ, {'TZ': 'UTC'}):
|
|
self.assertEqual(expected, utils.datetime_to_unix(dt))
|
|
with mock.patch.dict(os.environ, {'TZ': 'Europe/Paris'}):
|
|
self.assertEqual(expected, utils.datetime_to_unix(dt))
|
|
with mock.patch.dict(os.environ, {'TZ': 'US/Eastern'}):
|
|
self.assertEqual(expected, utils.datetime_to_unix(dt))
|
|
|
|
def test_datetime_to_unix_timezone_change_utc(self):
|
|
dt = datetime.datetime(2015, 1, 1, 10, 0, tzinfo=iso8601.iso8601.UTC)
|
|
self._do_test_datetime_to_unix_timezone_change(1420106400.0, dt)
|
|
|
|
def test_datetime_to_unix_timezone_change_offset(self):
|
|
dt = datetime.datetime(2015, 1, 1, 15, 0,
|
|
tzinfo=iso8601.iso8601.FixedOffset(5, 0, '+5h'))
|
|
self._do_test_datetime_to_unix_timezone_change(1420106400.0, dt)
|
|
|
|
def test_to_timestamps_epoch(self):
|
|
self.assertEqual(
|
|
utils.to_datetime("1425652440"),
|
|
datetime.datetime(2015, 3, 6, 14, 34,
|
|
tzinfo=iso8601.iso8601.UTC))
|
|
self.assertEqual(
|
|
utils.to_datetime("1425652440.4"),
|
|
datetime.datetime(2015, 3, 6, 14, 34, 0, 400000,
|
|
tzinfo=iso8601.iso8601.UTC))
|
|
self.assertEqual(
|
|
utils.to_datetime(1425652440),
|
|
datetime.datetime(2015, 3, 6, 14, 34,
|
|
tzinfo=iso8601.iso8601.UTC))
|
|
self.assertEqual(
|
|
utils.to_datetime(utils.to_timestamp(1425652440.4)),
|
|
datetime.datetime(2015, 3, 6, 14, 34, 0, 400000,
|
|
tzinfo=iso8601.iso8601.UTC))
|
|
|
|
|
|
class TestResourceUUID(tests_base.TestCase):
|
|
def test_conversion(self):
|
|
self.assertEqual(
|
|
uuid.UUID('ba571521-1de6-5aff-b183-1535fd6eb5d0'),
|
|
utils.ResourceUUID(
|
|
uuid.UUID('ba571521-1de6-5aff-b183-1535fd6eb5d0'),
|
|
"bar"))
|
|
self.assertEqual(
|
|
uuid.UUID('ba571521-1de6-5aff-b183-1535fd6eb5d0'),
|
|
utils.ResourceUUID("foo", "bar"))
|
|
self.assertEqual(
|
|
uuid.UUID('4efb21f6-3d19-5fe3-910b-be8f0f727846'),
|
|
utils.ResourceUUID("foo", None))
|
|
self.assertEqual(
|
|
uuid.UUID('853e5c64-f45e-58b2-999c-96df856fbe3d'),
|
|
utils.ResourceUUID("foo", ""))
|