123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- # -*- coding: utf-8 -*-
- from __future__ import absolute_import, print_function, unicode_literals
- import os
- import pytest
- import salt.modules.cmdmod as cmd
- import salt.modules.virtualenv_mod
- import salt.modules.zcbuildout as modbuildout
- import salt.states.zcbuildout as buildout
- import salt.utils.path
- from tests.support.runtests import RUNTIME_VARS
- from tests.support.unit import skipIf
- from tests.unit.modules.test_zcbuildout import KNOWN_VIRTUALENV_BINARY_NAMES, Base
- @skipIf(
- salt.utils.path.which_bin(KNOWN_VIRTUALENV_BINARY_NAMES) is None,
- "The 'virtualenv' packaged needs to be installed",
- )
- class BuildoutTestCase(Base):
- def setup_loader_modules(self):
- module_globals = {
- "__env__": "base",
- "__opts__": {"test": False},
- "__salt__": {
- "cmd.run_all": cmd.run_all,
- "cmd.run": cmd.run,
- "cmd.retcode": cmd.retcode,
- "buildout.buildout": modbuildout.buildout,
- },
- }
- return {buildout: module_globals, modbuildout: module_globals}
- # I don't have the time to invest in learning more about buildout,
- # and given we don't have support yet, and there are other priorities
- # I'm going to punt on this for now - WW
- @skipIf(True, "Buildout is still in beta. Test needs fixing.")
- @pytest.mark.requires_network
- def test_quiet(self):
- c_dir = os.path.join(self.tdir, "c")
- assert False, os.listdir(self.rdir)
- modbuildout.upgrade_bootstrap(c_dir)
- cret = buildout.installed(c_dir, python=self.py_st)
- self.assertFalse("OUTPUT:" in cret["comment"], cret["comment"])
- self.assertFalse("Log summary:" in cret["comment"], cret["comment"])
- self.assertTrue(cret["result"], cret["comment"])
- @pytest.mark.requires_network
- @pytest.mark.slow_test(seconds=5) # Test takes >1 and <=5 seconds
- def test_error(self):
- b_dir = os.path.join(self.tdir, "e")
- ret = buildout.installed(b_dir, python=self.py_st)
- self.assertTrue(
- "We did not get any expectable answer from buildout" in ret["comment"]
- )
- self.assertFalse(ret["result"])
- @pytest.mark.requires_network
- @pytest.mark.slow_test(seconds=10) # Test takes >5 and <=10 seconds
- def test_installed(self):
- if salt.modules.virtualenv_mod.virtualenv_ver(self.ppy_st) >= (20, 0, 0):
- self.skipTest(
- "Skiping until upstream resolved https://github.com/pypa/virtualenv/issues/1715"
- )
- b_dir = os.path.join(self.tdir, "b")
- ret = buildout.installed(
- b_dir, python=self.py_st, onlyif=RUNTIME_VARS.SHELL_FALSE_PATH
- )
- self.assertEqual(ret["comment"], "\nonlyif condition is false")
- self.assertEqual(ret["result"], True)
- self.assertTrue(os.sep + "b" in ret["name"])
- b_dir = os.path.join(self.tdir, "b")
- ret = buildout.installed(
- b_dir, python=self.py_st, unless=RUNTIME_VARS.SHELL_TRUE_PATH
- )
- self.assertEqual(ret["comment"], "\nunless condition is true")
- self.assertEqual(ret["result"], True)
- self.assertTrue(os.sep + "b" in ret["name"])
- ret = buildout.installed(b_dir, python=self.py_st)
- self.assertEqual(ret["result"], True)
- self.assertTrue("OUTPUT:" in ret["comment"])
- self.assertTrue("Log summary:" in ret["comment"])
|