summaryrefslogtreecommitdiffstats
path: root/awxkit/test/cli
diff options
context:
space:
mode:
authorRyan Petrello <rpetrell@redhat.com>2021-03-19 17:44:51 +0100
committerRyan Petrello <rpetrell@redhat.com>2021-03-23 14:39:58 +0100
commitc2ef0a65002b4c945fedfefc121dbc0a0390894f (patch)
tree52ab6712c9673f16b3f6aa5213f565b0e4008863 /awxkit/test/cli
parentMerge pull request #9655 from ansible/jakemcdermott-patch-changelog (diff)
downloadawx-c2ef0a65002b4c945fedfefc121dbc0a0390894f.tar.xz
awx-c2ef0a65002b4c945fedfefc121dbc0a0390894f.zip
move code linting to a stricter pep8-esque auto-formatting tool, black
Diffstat (limited to 'awxkit/test/cli')
-rw-r--r--awxkit/test/cli/test_client.py15
-rw-r--r--awxkit/test/cli/test_config.py32
-rw-r--r--awxkit/test/cli/test_format.py11
-rw-r--r--awxkit/test/cli/test_options.py156
4 files changed, 94 insertions, 120 deletions
diff --git a/awxkit/test/cli/test_client.py b/awxkit/test/cli/test_client.py
index e792b6c267..9a63e37c55 100644
--- a/awxkit/test/cli/test_client.py
+++ b/awxkit/test/cli/test_client.py
@@ -7,7 +7,6 @@ from awxkit.cli import run, CLI
class MockedCLI(CLI):
-
def fetch_version_root(self):
pass
@@ -17,9 +16,7 @@ class MockedCLI(CLI):
@property
def json(self):
- return {
- 'users': None
- }
+ return {'users': None}
@pytest.mark.parametrize('help_param', ['-h', '--help'])
@@ -29,10 +26,7 @@ def test_help(capfd, help_param):
out, err = capfd.readouterr()
assert "usage:" in out
- for snippet in (
- '--conf.host https://example.awx.org]',
- '-v, --verbose'
- ):
+ for snippet in ('--conf.host https://example.awx.org]', '-v, --verbose'):
assert snippet in out
@@ -59,8 +53,5 @@ def test_list_resources(capfd, resource):
_, out = capfd.readouterr()
assert "usage:" in out
- for snippet in (
- '--conf.host https://example.awx.org]',
- '-v, --verbose'
- ):
+ for snippet in ('--conf.host https://example.awx.org]', '-v, --verbose'):
assert snippet in out
diff --git a/awxkit/test/cli/test_config.py b/awxkit/test/cli/test_config.py
index 3154fdb081..61b6b4c54d 100644
--- a/awxkit/test/cli/test_config.py
+++ b/awxkit/test/cli/test_config.py
@@ -4,16 +4,15 @@ from requests.exceptions import ConnectionError
from awxkit.cli import CLI
from awxkit import config
+
def test_host_from_environment():
cli = CLI()
- cli.parse_args(
- ['awx'],
- env={'TOWER_HOST': 'https://xyz.local'}
- )
+ cli.parse_args(['awx'], env={'TOWER_HOST': 'https://xyz.local'})
with pytest.raises(ConnectionError):
cli.connect()
assert config.base_url == 'https://xyz.local'
+
def test_host_from_argv():
cli = CLI()
cli.parse_args(['awx', '--conf.host', 'https://xyz.local'])
@@ -21,43 +20,30 @@ def test_host_from_argv():
cli.connect()
assert config.base_url == 'https://xyz.local'
+
def test_username_and_password_from_environment():
cli = CLI()
- cli.parse_args(
- ['awx'],
- env={
- 'TOWER_USERNAME': 'mary',
- 'TOWER_PASSWORD': 'secret'
- }
- )
+ cli.parse_args(['awx'], env={'TOWER_USERNAME': 'mary', 'TOWER_PASSWORD': 'secret'})
with pytest.raises(ConnectionError):
cli.connect()
assert config.credentials.default.username == 'mary'
assert config.credentials.default.password == 'secret'
+
def test_username_and_password_argv():
cli = CLI()
- cli.parse_args([
- 'awx', '--conf.username', 'mary', '--conf.password', 'secret'
- ])
+ cli.parse_args(['awx', '--conf.username', 'mary', '--conf.password', 'secret'])
with pytest.raises(ConnectionError):
cli.connect()
assert config.credentials.default.username == 'mary'
assert config.credentials.default.password == 'secret'
+
def test_config_precedence():
cli = CLI()
- cli.parse_args(
- [
- 'awx', '--conf.username', 'mary', '--conf.password', 'secret'
- ],
- env={
- 'TOWER_USERNAME': 'IGNORE',
- 'TOWER_PASSWORD': 'IGNORE'
- }
- )
+ cli.parse_args(['awx', '--conf.username', 'mary', '--conf.password', 'secret'], env={'TOWER_USERNAME': 'IGNORE', 'TOWER_PASSWORD': 'IGNORE'})
with pytest.raises(ConnectionError):
cli.connect()
diff --git a/awxkit/test/cli/test_format.py b/awxkit/test/cli/test_format.py
index 7327f91518..adbe0ef463 100644
--- a/awxkit/test/cli/test_format.py
+++ b/awxkit/test/cli/test_format.py
@@ -11,19 +11,17 @@ from awxkit.cli.resource import Import
def test_json_empty_list():
- page = Page.from_json({
- 'results': []
- })
+ page = Page.from_json({'results': []})
formatted = format_response(page)
assert json.loads(formatted) == {'results': []}
+
def test_yaml_empty_list():
- page = Page.from_json({
- 'results': []
- })
+ page = Page.from_json({'results': []})
formatted = format_response(page, fmt='yaml')
assert yaml.safe_load(formatted) == {'results': []}
+
def test_json_list():
users = {
'results': [
@@ -36,6 +34,7 @@ def test_json_list():
formatted = format_response(page)
assert json.loads(formatted) == users
+
def test_yaml_list():
users = {
'results': [
diff --git a/awxkit/test/cli/test_options.py b/awxkit/test/cli/test_options.py
index 83bb4ac36a..fc2e53f957 100644
--- a/awxkit/test/cli/test_options.py
+++ b/awxkit/test/cli/test_options.py
@@ -11,13 +11,11 @@ from awxkit.cli.options import ResourceOptionsParser
class ResourceOptionsParser(ResourceOptionsParser):
-
def get_allowed_options(self):
self.allowed_options = ['GET', 'POST', 'PUT', 'PATCH', 'DELETE']
class OptionsPage(Page):
-
def options(self):
return self
@@ -33,30 +31,31 @@ class OptionsPage(Page):
class TestOptions(unittest.TestCase):
-
def setUp(self):
_parser = argparse.ArgumentParser()
self.parser = _parser.add_subparsers(help='action')
def test_list(self):
- page = OptionsPage.from_json({
- 'actions': {
- 'GET': {},
- 'POST': {},
+ page = OptionsPage.from_json(
+ {
+ 'actions': {
+ 'GET': {},
+ 'POST': {},
+ }
}
- })
+ )
ResourceOptionsParser(None, page, 'users', self.parser)
assert 'list' in self.parser.choices
def test_list_filtering(self):
- page = OptionsPage.from_json({
- 'actions': {
- 'GET': {},
- 'POST': {
- 'first_name': {'type': 'string'}
- },
+ page = OptionsPage.from_json(
+ {
+ 'actions': {
+ 'GET': {},
+ 'POST': {'first_name': {'type': 'string'}},
+ }
}
- })
+ )
options = ResourceOptionsParser(None, page, 'users', self.parser)
options.build_query_arguments('list', 'POST')
assert 'list' in self.parser.choices
@@ -66,14 +65,14 @@ class TestOptions(unittest.TestCase):
assert '--first_name TEXT' in out.getvalue()
def test_list_not_filterable(self):
- page = OptionsPage.from_json({
- 'actions': {
- 'GET': {},
- 'POST': {
- 'middle_name': {'type': 'string', 'filterable': False}
- },
+ page = OptionsPage.from_json(
+ {
+ 'actions': {
+ 'GET': {},
+ 'POST': {'middle_name': {'type': 'string', 'filterable': False}},
+ }
}
- })
+ )
options = ResourceOptionsParser(None, page, 'users', self.parser)
options.build_query_arguments('list', 'POST')
assert 'list' in self.parser.choices
@@ -83,16 +82,18 @@ class TestOptions(unittest.TestCase):
assert '--middle_name' not in out.getvalue()
def test_creation_optional_argument(self):
- page = OptionsPage.from_json({
- 'actions': {
- 'POST': {
- 'first_name': {
- 'type': 'string',
- 'help_text': 'Please specify your first name',
- }
- },
+ page = OptionsPage.from_json(
+ {
+ 'actions': {
+ 'POST': {
+ 'first_name': {
+ 'type': 'string',
+ 'help_text': 'Please specify your first name',
+ }
+ },
+ }
}
- })
+ )
options = ResourceOptionsParser(None, page, 'users', self.parser)
options.build_query_arguments('create', 'POST')
assert 'create' in self.parser.choices
@@ -102,17 +103,13 @@ class TestOptions(unittest.TestCase):
assert '--first_name TEXT Please specify your first name' in out.getvalue()
def test_creation_required_argument(self):
- page = OptionsPage.from_json({
- 'actions': {
- 'POST': {
- 'username': {
- 'type': 'string',
- 'help_text': 'Please specify a username',
- 'required': True
- }
- },
+ page = OptionsPage.from_json(
+ {
+ 'actions': {
+ 'POST': {'username': {'type': 'string', 'help_text': 'Please specify a username', 'required': True}},
+ }
}
- })
+ )
options = ResourceOptionsParser(None, page, 'users', self.parser)
options.build_query_arguments('create', 'POST')
assert 'create' in self.parser.choices
@@ -122,13 +119,13 @@ class TestOptions(unittest.TestCase):
assert '--username TEXT Please specify a username'
def test_integer_argument(self):
- page = OptionsPage.from_json({
- 'actions': {
- 'POST': {
- 'max_hosts': {'type': 'integer'}
- },
+ page = OptionsPage.from_json(
+ {
+ 'actions': {
+ 'POST': {'max_hosts': {'type': 'integer'}},
+ }
}
- })
+ )
options = ResourceOptionsParser(None, page, 'organizations', self.parser)
options.build_query_arguments('create', 'POST')
assert 'create' in self.parser.choices
@@ -138,13 +135,13 @@ class TestOptions(unittest.TestCase):
assert '--max_hosts INTEGER' in out.getvalue()
def test_boolean_argument(self):
- page = OptionsPage.from_json({
- 'actions': {
- 'POST': {
- 'diff_mode': {'type': 'boolean'}
- },
+ page = OptionsPage.from_json(
+ {
+ 'actions': {
+ 'POST': {'diff_mode': {'type': 'boolean'}},
+ }
}
- })
+ )
options = ResourceOptionsParser(None, page, 'users', self.parser)
options.build_query_arguments('create', 'POST')
assert 'create' in self.parser.choices
@@ -154,23 +151,25 @@ class TestOptions(unittest.TestCase):
assert '--diff_mode BOOLEAN' in out.getvalue()
def test_choices(self):
- page = OptionsPage.from_json({
- 'actions': {
- 'POST': {
- 'verbosity': {
- 'type': 'integer',
- 'choices': [
- (0, '0 (Normal)'),
- (1, '1 (Verbose)'),
- (2, '2 (More Verbose)'),
- (3, '3 (Debug)'),
- (4, '4 (Connection Debug)'),
- (5, '5 (WinRM Debug)'),
- ]
- }
- },
+ page = OptionsPage.from_json(
+ {
+ 'actions': {
+ 'POST': {
+ 'verbosity': {
+ 'type': 'integer',
+ 'choices': [
+ (0, '0 (Normal)'),
+ (1, '1 (Verbose)'),
+ (2, '2 (More Verbose)'),
+ (3, '3 (Debug)'),
+ (4, '4 (Connection Debug)'),
+ (5, '5 (WinRM Debug)'),
+ ],
+ }
+ },
+ }
}
- })
+ )
options = ResourceOptionsParser(None, page, 'users', self.parser)
options.build_query_arguments('create', 'POST')
assert 'create' in self.parser.choices
@@ -181,9 +180,7 @@ class TestOptions(unittest.TestCase):
def test_actions_with_primary_key(self):
for method in ('get', 'modify', 'delete'):
- page = OptionsPage.from_json({
- 'actions': {'GET': {}, 'POST': {}}
- })
+ page = OptionsPage.from_json({'actions': {'GET': {}, 'POST': {}}})
ResourceOptionsParser(None, page, 'jobs', self.parser)
assert method in self.parser.choices
@@ -193,19 +190,20 @@ class TestOptions(unittest.TestCase):
class TestSettingsOptions(unittest.TestCase):
-
def setUp(self):
_parser = argparse.ArgumentParser()
self.parser = _parser.add_subparsers(help='action')
def test_list(self):
- page = OptionsPage.from_json({
- 'actions': {
- 'GET': {},
- 'POST': {},
- 'PUT': {},
+ page = OptionsPage.from_json(
+ {
+ 'actions': {
+ 'GET': {},
+ 'POST': {},
+ 'PUT': {},
+ }
}
- })
+ )
page.endpoint = '/settings/all/'
ResourceOptionsParser(None, page, 'settings', self.parser)
assert 'list' in self.parser.choices