salt/tests/integration/modules/pip.py
2012-09-27 12:06:09 +01:00

55 lines
1.6 KiB
Python

# -*- coding: utf-8 -*-
"""
tests.integration.modules.pip
=============================
:copyright: © 2012 UfSoft.org - :email:`Pedro Algarvio (pedro@algarvio.me)`
:license: Apache 2.0, see LICENSE for more details
"""
import os
import shutil
import tempfile
# Import salt libs
from saltunittest import skipIf
import integration
class PipModuleTest(integration.ModuleCase):
def setUp(self):
super(PipModuleTest, self).setUp()
ret = self.run_function('cmd.has_exec', ['virtualenv'])
if not ret:
self.skipTest('virtualenv not installed')
self.venv_test_dir = tempfile.mkdtemp()
self.venv_dir = os.path.join(self.venv_test_dir, 'venv')
def test_issue_2087_missing_pip(self):
# Let's create the testing virtualenv
self.run_function('virtualenv.create', [self.venv_dir])
# Let's remove the pip binary
pip_bin = os.path.join(self.venv_dir, 'bin', 'pip')
if not os.path.isfile(pip_bin):
self.skipTest(
'Failed to find the pip binary to the test virtualenv'
)
os.remove(pip_bin)
# Let's run a pip depending functions
for func in ('pip.freeze', 'pip.list'):
ret = self.run_function(func, bin_env=self.venv_dir)
self.assertEqual(
ret,
'Command required for \'{0}\' not found: Could not find '
'a `pip` binary'.format(func)
)
def tearDown(self):
super(PipModuleTest, self).tearDown()
if os.path.isdir(self.venv_test_dir):
shutil.rmtree(self.venv_test_dir)