diff --git a/requirements.txt b/requirements.txt index 1329e07..4cc9d42 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,4 +3,3 @@ Babel>=1.3 fixtures>=0.3.14 oslo.config>=1.4.0.0a3 iso8601>=0.1.9 -testresources>=0.2.4 diff --git a/tempest_lib/base.py b/tempest_lib/base.py index 03e5da3..227ac37 100644 --- a/tempest_lib/base.py +++ b/tempest_lib/base.py @@ -15,32 +15,14 @@ import logging import os -import sys import fixtures -import testresources import testtools LOG = logging.getLogger(__name__) -if sys.version_info >= (2, 7): - class BaseDeps(testtools.TestCase, - testtools.testcase.WithAttributes, - testresources.ResourcedTestCase): - pass -else: - # Define asserts for py26 - import unittest2 - - class BaseDeps(testtools.TestCase, - testtools.testcase.WithAttributes, - testresources.ResourcedTestCase, - unittest2.TestCase): - pass - - -class BaseTestCase(BaseDeps): +class BaseTestCase(testtools.testcase.WithAttributes, testtools.TestCase): setUpClassCalled = False # NOTE(sdague): log_format is defined inline here instead of using the oslo diff --git a/tempest_lib/tests/test_base.py b/tempest_lib/tests/test_base.py new file mode 100644 index 0000000..825327b --- /dev/null +++ b/tempest_lib/tests/test_base.py @@ -0,0 +1,64 @@ +# Copyright 2014 Mirantis Inc. +# All Rights Reserved. +# +# 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 testtools + +from tempest_lib import base +from tempest_lib import exceptions + + +class TestAttr(base.BaseTestCase): + + def test_has_no_attrs(self): + self.assertEqual( + 'tempest_lib.tests.test_base.TestAttr.test_has_no_attrs', + self.id() + ) + + @testtools.testcase.attr('foo') + def test_has_one_attr(self): + self.assertEqual( + 'tempest_lib.tests.test_base.TestAttr.test_has_one_attr[foo]', + self.id() + ) + + @testtools.testcase.attr('foo') + @testtools.testcase.attr('bar') + def test_has_two_attrs(self): + self.assertEqual( + 'tempest_lib.tests.test_base.TestAttr.test_has_two_attrs[bar,foo]', + self.id(), + ) + + +class TestSetUpClass(base.BaseTestCase): + + @classmethod + def setUpClass(cls): + """Simulate absence of super() call.""" + + def setUp(self): + try: + # We expect here RuntimeError exception because 'setUpClass' + # has not called 'super'. + super(TestSetUpClass, self).setUp() + except RuntimeError: + pass + else: + raise exceptions.TempestException( + "If you see this, then expected exception was not raised.") + + def test_setup_class_raises_runtime_error(self): + """No-op test just to call setUp."""