add unittest code base
* add a base TestCase class * load the tests from the project root rather than only tests dir * add a test case for WorkerThread builder function Change-Id: Icf878f9249b475a311123c8235c42b1212d02ca6 Partially-implements: bp add-ut-codebase
This commit is contained in:
parent
c4f142fd96
commit
d4490ea2bc
@ -3,6 +3,6 @@ test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
|
|||||||
OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
|
OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
|
||||||
OS_LOG_CAPTURE=${OS_LOG_CAPTURE:-1} \
|
OS_LOG_CAPTURE=${OS_LOG_CAPTURE:-1} \
|
||||||
OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-7200} \
|
OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-7200} \
|
||||||
${PYTHON:-python} -m subunit.run discover ${OS_TEST_PATH:-./tests} $LISTOPT $IDOPTION
|
${PYTHON:-python} -m subunit.run discover ${OS_TEST_PATH:-.} $LISTOPT $IDOPTION
|
||||||
test_id_option=--load-list $IDFILE
|
test_id_option=--load-list $IDFILE
|
||||||
test_list_option=--list
|
test_list_option=--list
|
||||||
|
0
kolla/tests/__init__.py
Normal file
0
kolla/tests/__init__.py
Normal file
36
kolla/tests/base.py
Normal file
36
kolla/tests/base.py
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# 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 os
|
||||||
|
from oslo_config import cfg
|
||||||
|
from oslotest import base as oslotest_base
|
||||||
|
|
||||||
|
from kolla.common import config as common_config
|
||||||
|
|
||||||
|
|
||||||
|
TESTS_ROOT = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
|
||||||
|
|
||||||
|
class TestCase(oslotest_base.BaseTestCase):
|
||||||
|
'''All unit test should inherit from this class'''
|
||||||
|
config_file = None
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
super(TestCase, self).setUp()
|
||||||
|
self.conf = cfg.ConfigOpts()
|
||||||
|
default_config_files = self.get_default_config_files()
|
||||||
|
common_config.parse(self.conf, [],
|
||||||
|
default_config_files=default_config_files)
|
||||||
|
|
||||||
|
def get_default_config_files(self):
|
||||||
|
if self.config_file:
|
||||||
|
return [os.path.join(TESTS_ROOT, 'etc', self.config_file)]
|
0
kolla/tests/common/__init__.py
Normal file
0
kolla/tests/common/__init__.py
Normal file
20
kolla/tests/common/test_config.py
Normal file
20
kolla/tests/common/test_config.py
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
from kolla.tests import base
|
||||||
|
|
||||||
|
|
||||||
|
class ConfigTest(base.TestCase):
|
||||||
|
config_file = 'default.conf'
|
||||||
|
|
||||||
|
def test_debug_opt(self):
|
||||||
|
self.assertTrue(self.conf.debug)
|
2
kolla/tests/etc/default.conf
Normal file
2
kolla/tests/etc/default.conf
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
[DEFAULT]
|
||||||
|
debug=True
|
48
kolla/tests/test_build.py
Normal file
48
kolla/tests/test_build.py
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
# 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 fixtures
|
||||||
|
import mock
|
||||||
|
|
||||||
|
from kolla.cmd import build
|
||||||
|
from kolla.tests import base
|
||||||
|
|
||||||
|
|
||||||
|
FAKE_IMAGE = {
|
||||||
|
'name': 'image-base',
|
||||||
|
'status': 'matched',
|
||||||
|
'parent': None,
|
||||||
|
'path': '/fake/path',
|
||||||
|
'plugins': [],
|
||||||
|
'fullname': 'image-base:latest',
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class WorkerThreadTest(base.TestCase):
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
super(WorkerThreadTest, self).setUp()
|
||||||
|
# NOTE(jeffrey4l): use a real, temporary dir
|
||||||
|
FAKE_IMAGE['path'] = self.useFixture(fixtures.TempDir()).path
|
||||||
|
|
||||||
|
@mock.patch('docker.Client')
|
||||||
|
def test_build_image(self, mock_client):
|
||||||
|
queue = mock.Mock()
|
||||||
|
push_queue = mock.Mock()
|
||||||
|
worker = build.WorkerThread(queue,
|
||||||
|
push_queue,
|
||||||
|
self.conf)
|
||||||
|
worker.builder(FAKE_IMAGE)
|
||||||
|
|
||||||
|
mock_client().build.assert_called_once_with(
|
||||||
|
path=FAKE_IMAGE['path'], tag=FAKE_IMAGE['fullname'],
|
||||||
|
nocache=False, rm=True, pull=True, forcerm=True)
|
@ -10,7 +10,7 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from clients import OpenStackClients
|
from tests.clients import OpenStackClients
|
||||||
import testtools
|
import testtools
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user