Relocate our shell testing to where it belongs

Most of our shell testing belongs in our integration test folder. These
tests are mocking out standard out and standard in as well as other
collaborators while still integrating with other collaborators. These
belong in cratonclient.tests.integration as a result.

Change-Id: I3a73637d25604112f252e21dde21f8b9b582be14
This commit is contained in:
Ian Cordasco 2016-10-26 14:45:46 -05:00
parent acf0a8c357
commit c1662135a4
6 changed files with 43 additions and 25 deletions

View File

@ -16,29 +16,8 @@
# under the License.
"""Base TestCase for all cratonclient tests."""
import mock
import six
from oslotest import base
from cratonclient.shell import main
class TestCase(base.BaseTestCase):
"""Test case base class for all unit tests."""
class ShellTestCase(base.BaseTestCase):
"""Test case base class for all shell unit tests."""
def shell(self, arg_str, exitcodes=(0,)):
"""Main function for exercising the craton shell."""
with mock.patch('sys.stdout', new=six.StringIO()) as mock_stdout, \
mock.patch('sys.stderr', new=six.StringIO()) as mock_stderr:
try:
main_shell = main.CratonShell()
main_shell.main(arg_str.split())
except SystemExit:
pass
return (mock_stdout.getvalue(), mock_stderr.getvalue())

View File

@ -0,0 +1,39 @@
# -*- coding: utf-8 -*-
# Copyright 2010-2011 OpenStack Foundation
# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
#
# 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.
"""Some integration testing utilities."""
import mock
import six
from cratonclient.shell import main
from cratonclient.tests import base
class ShellTestCase(base.TestCase):
"""Test case base class for all shell unit tests."""
def shell(self, arg_str, exitcodes=(0,)):
"""Main function for exercising the craton shell."""
with mock.patch('sys.stdout', new=six.StringIO()) as mock_stdout, \
mock.patch('sys.stderr', new=six.StringIO()) as mock_stderr:
try:
main_shell = main.CratonShell()
main_shell.main(arg_str.split())
except SystemExit:
pass
return (mock_stdout.getvalue(), mock_stderr.getvalue())

View File

@ -20,7 +20,7 @@ from testtools import matchers
from cratonclient import exceptions as exc
from cratonclient.shell.v1 import cells_shell
from cratonclient.tests import base
from cratonclient.tests.integration import base
from cratonclient.v1 import cells

View File

@ -20,7 +20,7 @@ from testtools import matchers
from cratonclient import exceptions as exc
from cratonclient.shell.v1 import hosts_shell
from cratonclient.tests import base
from cratonclient.tests.integration import base
from cratonclient.v1 import hosts

View File

@ -19,7 +19,7 @@ import re
from testtools import matchers
from cratonclient.shell import main
from cratonclient.tests import base
from cratonclient.tests.integration import base
class TestMainShell(base.ShellTestCase):

View File

@ -17,7 +17,7 @@ from argparse import Namespace
from testtools import matchers
from cratonclient.shell.v1 import regions_shell
from cratonclient.tests import base
from cratonclient.tests.integration import base
from cratonclient.v1 import regions