Adds interface tests for timeutils
We were originally testing the return value of timeutils.parse_strtime in our unit tests. Instead of interleaving tests for an external library into Keystone tests I gave them a place of their own. Change-Id: I2601b1198ca841c71a7590c7b00b11bcede4d4a9
This commit is contained in:
parent
e167e468f4
commit
93b82ea503
9
keystone/tests/unit/external/README.rst
vendored
Normal file
9
keystone/tests/unit/external/README.rst
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
This directory contains interface tests for external libraries. The goal
|
||||||
|
is not to test every possible path through a library's code and get 100%
|
||||||
|
coverage. It's to give us a level of confidence that their general interface
|
||||||
|
remains the same through version upgrades.
|
||||||
|
|
||||||
|
This gives us a place to put these tests without having to litter our
|
||||||
|
own tests with assertions that are not directly related to the code
|
||||||
|
under test. The expectations for the external library are all in one
|
||||||
|
place so it makes it easier for us to find out what they are.
|
0
keystone/tests/unit/external/__init__.py
vendored
Normal file
0
keystone/tests/unit/external/__init__.py
vendored
Normal file
33
keystone/tests/unit/external/test_timeutils.py
vendored
Normal file
33
keystone/tests/unit/external/test_timeutils.py
vendored
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
# 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
|
||||||
|
|
||||||
|
from oslo_utils import timeutils
|
||||||
|
|
||||||
|
import keystone.tests.unit as tests
|
||||||
|
|
||||||
|
|
||||||
|
class TestTimeUtils(tests.BaseTestCase):
|
||||||
|
|
||||||
|
def test_parsing_date_strings_returns_a_datetime(self):
|
||||||
|
example_date_str = '2015-09-23T04:45:37.196621Z'
|
||||||
|
dt = timeutils.parse_strtime(example_date_str, fmt=tests.TIME_FORMAT)
|
||||||
|
self.assertIsInstance(dt, datetime.datetime)
|
||||||
|
|
||||||
|
def test_parsing_invalid_date_strings_raises_a_ValueError(self):
|
||||||
|
example_date_str = ''
|
||||||
|
simple_format = '%Y'
|
||||||
|
self.assertRaises(ValueError,
|
||||||
|
timeutils.parse_strtime,
|
||||||
|
example_date_str,
|
||||||
|
fmt=simple_format)
|
Loading…
Reference in New Issue
Block a user