Adding a test for GalaxyCLI. Tests exit_without_ignore method.
This commit is contained in:
parent
372018dfce
commit
aae5e50299
1 changed files with 30 additions and 8 deletions
|
@ -19,17 +19,19 @@
|
||||||
from __future__ import (absolute_import, division, print_function)
|
from __future__ import (absolute_import, division, print_function)
|
||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
from ansible.compat.six import PY3
|
|
||||||
from ansible.compat.tests import unittest
|
|
||||||
|
|
||||||
from nose.plugins.skip import SkipTest
|
|
||||||
import ansible
|
|
||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
import tarfile
|
import tarfile
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
from mock import patch
|
from mock import patch
|
||||||
|
from nose.plugins.skip import SkipTest
|
||||||
|
|
||||||
|
from ansible.compat.six import PY3
|
||||||
|
from ansible.compat.tests import unittest
|
||||||
|
|
||||||
|
import ansible
|
||||||
|
from ansible.errors import AnsibleError
|
||||||
|
|
||||||
if PY3:
|
if PY3:
|
||||||
raise SkipTest('galaxy is not ported to be py3 compatible yet')
|
raise SkipTest('galaxy is not ported to be py3 compatible yet')
|
||||||
|
@ -41,10 +43,10 @@ class TestGalaxy(unittest.TestCase):
|
||||||
def setUpClass(cls):
|
def setUpClass(cls):
|
||||||
'''creating prerequisites for installing a role; setUpClass occurs ONCE whereas setUp occurs with every method tested.'''
|
'''creating prerequisites for installing a role; setUpClass occurs ONCE whereas setUp occurs with every method tested.'''
|
||||||
# class data for easy viewing: role_dir, role_tar, role_name, role_req, role_path
|
# class data for easy viewing: role_dir, role_tar, role_name, role_req, role_path
|
||||||
|
|
||||||
if os.path.exists("./delete_me"):
|
if os.path.exists("./delete_me"):
|
||||||
shutil.rmtree("./delete_me")
|
shutil.rmtree("./delete_me")
|
||||||
|
|
||||||
# creating framework for a role
|
# creating framework for a role
|
||||||
gc = GalaxyCLI(args=["init"])
|
gc = GalaxyCLI(args=["init"])
|
||||||
with patch('sys.argv', ["-c", "--offline", "delete_me"]):
|
with patch('sys.argv', ["-c", "--offline", "delete_me"]):
|
||||||
|
@ -121,7 +123,7 @@ class TestGalaxy(unittest.TestCase):
|
||||||
with patch('sys.argv', ["--offline", "-p", self.role_path, "-r", self.role_req]):
|
with patch('sys.argv', ["--offline", "-p", self.role_path, "-r", self.role_req]):
|
||||||
galaxy_parser = gc.parse()
|
galaxy_parser = gc.parse()
|
||||||
gc.run()
|
gc.run()
|
||||||
|
|
||||||
# checking that installation worked
|
# checking that installation worked
|
||||||
role_file = os.path.join(self.role_path, self.role_name)
|
role_file = os.path.join(self.role_path, self.role_name)
|
||||||
self.assertTrue(os.path.exists(role_file))
|
self.assertTrue(os.path.exists(role_file))
|
||||||
|
@ -137,3 +139,23 @@ class TestGalaxy(unittest.TestCase):
|
||||||
# testing role was removed
|
# testing role was removed
|
||||||
self.assertTrue(completed_task == 0)
|
self.assertTrue(completed_task == 0)
|
||||||
self.assertTrue(not os.path.exists(role_file))
|
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"])
|
||||||
|
|
||||||
|
# testing without --ignore-errors flag
|
||||||
|
with patch('sys.argv', ["-c", "fake_role_name"]):
|
||||||
|
galaxy_parser = 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 "))
|
||||||
|
|
||||||
|
# testing with --ignore-errors flag
|
||||||
|
with patch('sys.argv', ["-c", "fake_role_name", "--ignore-errors"]):
|
||||||
|
galalxy_parser = 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 "))
|
||||||
|
|
Loading…
Reference in a new issue