Ian Cordasco d41c87c725 Reorganize shell based integration tests
This now follows the same organization as the unit tests have in
cratonclient.

Change-Id: If7a4397cec8010adc50a591ec536bf8142197442
2017-02-27 08:39:03 -06:00

35 lines
1.2 KiB
Python

# 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.
"""Resources for the shell integration tests."""
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())