
This now follows the same organization as the unit tests have in cratonclient. Change-Id: If7a4397cec8010adc50a591ec536bf8142197442
35 lines
1.2 KiB
Python
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())
|