support the new CLI in py2 *and* py3

This commit is contained in:
Ryan Petrello
2019-08-19 17:59:49 -04:00
parent 2cdd007ed0
commit 80b4102aa9
21 changed files with 154 additions and 52 deletions

View File

@@ -50,8 +50,14 @@ def test_list_resources(capfd, resource):
cli.parse_args(['awx {}'.format(resource)])
cli.connect()
cli.parse_resource()
out, err = capfd.readouterr()
try:
cli.parse_resource()
out, err = capfd.readouterr()
except SystemExit:
# python2 argparse raises SystemExit for invalid/missing required args,
# py3 doesn't
_, out = capfd.readouterr()
assert "usage:" in out
for snippet in (
'--conf.host https://example.awx.org]',

View File

@@ -1,7 +1,10 @@
import argparse
import json
import unittest
from io import StringIO
try:
from StringIO import StringIO
except ImportError:
from io import StringIO
import pytest
from requests import Response

View File

@@ -1,4 +1,7 @@
from unittest.mock import patch
try:
from unittest.mock import patch
except ImportError:
from mock import patch
import pytest

View File

@@ -1,8 +1,13 @@
# -*- coding: utf-8 -*-
from datetime import datetime
import sys
from unittest import mock
try:
from unittest import mock
except ImportError:
import mock
import pytest
import six
from awxkit import utils
from awxkit import exceptions as exc
@@ -73,11 +78,19 @@ def test_load_invalid_json_or_yaml(inp):
@pytest.mark.parametrize('non_ascii', [True, False])
@pytest.mark.skipif(
sys.version_info < (3, 6),
reason='this is only intended to be used in py3, not the CLI'
)
def test_random_titles_are_unicode(non_ascii):
assert isinstance(utils.random_title(non_ascii=non_ascii), str)
assert isinstance(utils.random_title(non_ascii=non_ascii), six.text_type)
@pytest.mark.parametrize('non_ascii', [True, False])
@pytest.mark.skipif(
sys.version_info < (3, 6),
reason='this is only intended to be used in py3, not the CLI'
)
def test_random_titles_generates_correct_characters(non_ascii):
title = utils.random_title(non_ascii=non_ascii)
if non_ascii:

View File

@@ -1,7 +1,10 @@
# -*- coding: utf-8 -*-
from collections import namedtuple
from unittest.mock import patch
try:
from unittest.mock import patch
except ImportError:
from mock import patch
import pytest
from awxkit.ws import WSClient