summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/units/cli/test_galaxy.py139
1 files changed, 70 insertions, 69 deletions
diff --git a/test/units/cli/test_galaxy.py b/test/units/cli/test_galaxy.py
index 99fc063778..753e90c170 100644
--- a/test/units/cli/test_galaxy.py
+++ b/test/units/cli/test_galaxy.py
@@ -33,7 +33,6 @@ from ansible.errors import AnsibleError, AnsibleOptionsError
from ansible.cli.galaxy import GalaxyCLI
-
class TestGalaxy(unittest.TestCase):
@classmethod
def setUpClass(cls):
@@ -44,7 +43,7 @@ class TestGalaxy(unittest.TestCase):
shutil.rmtree("./delete_me")
# creating framework for a role
- gc = GalaxyCLI(args=["init", "-c", "--offline", "delete_me"])
+ gc = GalaxyCLI(args=["init", "--offline", "delete_me"])
gc.parse()
gc.run()
cls.role_dir = "./delete_me"
@@ -114,9 +113,8 @@ class TestGalaxy(unittest.TestCase):
def test_run(self):
''' verifies that the GalaxyCLI object's api is created and that execute() is called. '''
- gc = GalaxyCLI(args=["install"])
- with patch('sys.argv', ["-c", "-v", '--ignore-errors', 'imaginary_role']):
- galaxy_parser = gc.parse()
+ gc = GalaxyCLI(args=["install", "--ignore-errors", "imaginary_role"])
+ gc.parse()
with patch.object(ansible.cli.CLI, "execute", return_value=None) as mock_ex:
with patch.object(ansible.cli.CLI, "run", return_value=None) as mock_run:
gc.run()
@@ -129,40 +127,36 @@ class TestGalaxy(unittest.TestCase):
def test_execute_remove(self):
# installing role
gc = GalaxyCLI(args=["install", "--offline", "-p", self.role_path, "-r", self.role_req])
- galaxy_parser = gc.parse()
+ gc.parse()
gc.run()
- # checking that installation worked
+ # location where the role was installed
role_file = os.path.join(self.role_path, self.role_name)
- self.assertTrue(os.path.exists(role_file))
# removing role
- gc = GalaxyCLI(args=["remove", "-c", "-p", self.role_path, self.role_name])
- galaxy_parser = gc.parse()
- super(GalaxyCLI, gc).run()
- gc.api = ansible.galaxy.api.GalaxyAPI(gc.galaxy)
- completed_task = gc.execute_remove()
+ gc = GalaxyCLI(args=["remove", "-p", role_file, self.role_name])
+ gc.parse()
+ gc.run()
# testing role was removed
- self.assertTrue(completed_task == 0)
- self.assertTrue(not os.path.exists(role_file))
-
- def test_exit_without_ignore(self):
- ''' tests that GalaxyCLI exits with the error specified unless the --ignore-errors flag is used '''
- gc = GalaxyCLI(args=["install", "--server=None", "-c", "fake_role_name"])
+ removed_role = not os.path.exists(role_file)
+ self.assertTrue(removed_role)
- # testing without --ignore-errors flag
- galaxy_parser = gc.parse()
+ def test_exit_without_ignore_without_flag(self):
+ ''' tests that GalaxyCLI exits with the error specified if the --ignore-errors flag is not used '''
+ gc = GalaxyCLI(args=["install", "--server=None", "fake_role_name"])
+ gc.parse()
with patch.object(ansible.utils.display.Display, "display", return_value=None) as mocked_display:
# testing that error expected is raised
self.assertRaises(AnsibleError, gc.run)
self.assertTrue(mocked_display.called_once_with("- downloading role 'fake_role_name', owned by "))
+ def test_exit_without_ignore_with_flag(self):
+ ''' tests that GalaxyCLI exits without the error specified if the --ignore-errors flag is used '''
# testing with --ignore-errors flag
- gc = GalaxyCLI(args=["install", "--server=None", "-c", "fake_role_name", "--ignore-errors"])
- galalxy_parser = gc.parse()
+ gc = GalaxyCLI(args=["install", "--server=None", "fake_role_name", "--ignore-errors"])
+ gc.parse()
with patch.object(ansible.utils.display.Display, "display", return_value=None) as mocked_display:
- # testing that error expected is not raised with --ignore-errors flag in use
gc.run()
self.assertTrue(mocked_display.called_once_with("- downloading role 'fake_role_name', owned by "))
@@ -173,94 +167,101 @@ class TestGalaxy(unittest.TestCase):
# checking that the common results of parse() for all possible actions have been created/called
self.assertIsInstance(galaxycli_obj.parser, ansible.cli.SortedOptParser)
self.assertIsInstance(galaxycli_obj.galaxy, ansible.galaxy.Galaxy)
- if action in ['import', 'delete']:
- formatted_call = 'usage: %prog ' + action + ' [options] github_user github_repo'
- elif action == 'info':
- formatted_call = 'usage: %prog ' + action + ' [options] role_name[,version]'
- elif action == 'init':
- formatted_call = 'usage: %prog ' + action + ' [options] role_name'
- elif action == 'install':
- formatted_call = 'usage: %prog ' + action + ' [options] [-r FILE | role_name(s)[,version] | scm+role_repo_url[,version] | tar_file(s)]'
- elif action == 'list':
- formatted_call = 'usage: %prog ' + action + ' [role_name]'
- elif action == 'login':
- formatted_call = 'usage: %prog ' + action + ' [options]'
- elif action == 'remove':
- formatted_call = 'usage: %prog ' + action + ' role1 role2 ...'
- elif action == 'search':
- formatted_call = 'usage: %prog ' + action + ' [searchterm1 searchterm2] [--galaxy-tags galaxy_tag1,galaxy_tag2] [--platforms platform1,platform2] [--author username]'
- elif action == 'setup':
- formatted_call = 'usage: %prog ' + action + ' [options] source github_user github_repo secret'
- calls = [call('usage: %prog [delete|import|info|init|install|list|login|remove|search|setup] [--help] [options] ...'), call(formatted_call)]
+ formatted_call = {
+ 'import' : 'usage: %prog import [options] github_user github_repo',
+ 'delete' : 'usage: %prog delete [options] github_user github_repo',
+ 'info' : 'usage: %prog info [options] role_name[,version]',
+ 'init' : 'usage: %prog init [options] role_name',
+ 'install' : 'usage: %prog install [options] [-r FILE | role_name(s)[,version] | scm+role_repo_url[,version] | tar_file(s)]',
+ 'list' : 'usage: %prog list [role_name]',
+ 'login' : 'usage: %prog login [options]',
+ 'remove' : 'usage: %prog remove role1 role2 ...',
+ 'search' : 'usage: %prog search [searchterm1 searchterm2] [--galaxy-tags galaxy_tag1,galaxy_tag2] [--platforms platform1,platform2] [--author username]',
+ 'setup' : 'usage: %prog setup [options] source github_user github_repo secret',
+ }
+
+ first_call = 'usage: %prog [delete|import|info|init|install|list|login|remove|search|setup] [--help] [options] ...'
+ second_call = formatted_call[action]
+ calls = [call(first_call), call(second_call)]
mocked_usage.assert_has_calls(calls)
- def test_parse(self):
- ''' systematically testing that the expected options parser is created '''
- # testing no action given
- gc = GalaxyCLI(args=["-c"])
+ def test_parse_no_action(self):
+ ''' testing the options parser when no action is given '''
+ gc = GalaxyCLI(args=[""])
self.assertRaises(AnsibleOptionsError, gc.parse)
- # testing action that doesn't exist
- gc = GalaxyCLI(args=["NOT_ACTION", "-c"])
+ def test_parse_invalid_action(self):
+ ''' testing the options parser when an invalid action is given '''
+ gc = GalaxyCLI(args=["NOT_ACTION"])
self.assertRaises(AnsibleOptionsError, gc.parse)
- # testing action 'delete'
- gc = GalaxyCLI(args=["delete", "-c"])
+ def test_parse_delete(self):
+ ''' testing the options parser when the action 'delete' is given '''
+ gc = GalaxyCLI(args=["delete"])
self.run_parse_common(gc, "delete")
self.assertEqual(gc.options.verbosity, 0)
- # testing action 'import'
- gc = GalaxyCLI(args=["import", "-c"])
+ def test_parse_import(self):
+ ''' testing the options parser when the action 'import' is given '''
+ gc = GalaxyCLI(args=["import"])
self.run_parse_common(gc, "import")
self.assertEqual(gc.options.wait, True)
self.assertEqual(gc.options.reference, None)
self.assertEqual(gc.options.check_status, False)
self.assertEqual(gc.options.verbosity, 0)
- # testing action 'info'
- gc = GalaxyCLI(args=["info", "-c"])
+ def test_parse_info(self):
+ ''' testing the options parser when the action 'info' is given '''
+ gc = GalaxyCLI(args=["info"])
self.run_parse_common(gc, "info")
self.assertEqual(gc.options.offline, False)
- # testing action 'init'
- gc = GalaxyCLI(args=["init", "-c"])
+ def test_parse_init(self):
+ ''' testing the options parser when the action 'init' is given '''
+ gc = GalaxyCLI(args=["init"])
self.run_parse_common(gc, "init")
self.assertEqual(gc.options.offline, False)
self.assertEqual(gc.options.force, False)
- # testing action 'install'
- gc = GalaxyCLI(args=["install", "-c"])
+ def test_parse_install(self):
+ ''' testing the options parser when the action 'install' is given '''
+ gc = GalaxyCLI(args=["install"])
self.run_parse_common(gc, "install")
self.assertEqual(gc.options.ignore_errors, False)
self.assertEqual(gc.options.no_deps, False)
self.assertEqual(gc.options.role_file, None)
self.assertEqual(gc.options.force, False)
- # testing action 'list'
- gc = GalaxyCLI(args=["list", "-c"])
+ def test_parse_list(self):
+ ''' testing the options parser when the action 'list' is given '''
+ gc = GalaxyCLI(args=["list"])
self.run_parse_common(gc, "list")
self.assertEqual(gc.options.verbosity, 0)
- # testing action 'login'
- gc = GalaxyCLI(args=["login", "-c"])
+ def test_parse_login(self):
+ ''' testing the options parser when the action 'login' is given '''
+ gc = GalaxyCLI(args=["login"])
self.run_parse_common(gc, "login")
self.assertEqual(gc.options.verbosity, 0)
self.assertEqual(gc.options.token, None)
- # testing action 'remove'
- gc = GalaxyCLI(args=["remove", "-c"])
+ def test_parse_remove(self):
+ ''' testing the options parser when the action 'remove' is given '''
+ gc = GalaxyCLI(args=["remove"])
self.run_parse_common(gc, "remove")
self.assertEqual(gc.options.verbosity, 0)
- # testing action 'search'
- gc = GalaxyCLI(args=["search", "-c"])
+ def test_parse_search(self):
+ ''' testing the options parswer when the action 'search' is given '''
+ gc = GalaxyCLI(args=["search"])
self.run_parse_common(gc, "search")
self.assertEqual(gc.options.platforms, None)
self.assertEqual(gc.options.galaxy_tags, None)
self.assertEqual(gc.options.author, None)
- # testing action 'setup'
- gc = GalaxyCLI(args=["setup", "-c"])
+ def test_parse_setup(self):
+ ''' testing the options parser when the action 'setup' is given '''
+ gc = GalaxyCLI(args=["setup"])
self.run_parse_common(gc, "setup")
self.assertEqual(gc.options.verbosity, 0)
self.assertEqual(gc.options.remove_id, None)