예제 #1
0
    def test_issue_6030_deprecated_never_download(self):
        mock = MagicMock(return_value={"retcode": 0, "stdout": ""})

        with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
            virtualenv_mod.create("/tmp/foo", never_download=True)
            mock.assert_called_once_with(["virtualenv", "--never-download", "/tmp/foo"], runas=None, python_shell=False)

        with TestsLoggingHandler() as handler:
            mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
            # Let's fake a higher virtualenv version
            virtualenv_mock = MagicMock()
            virtualenv_mock.__version__ = "1.10rc1"
            with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
                with patch.dict("sys.modules", {"virtualenv": virtualenv_mock}):
                    virtualenv_mod.create("/tmp/foo", never_download=True)
                    mock.assert_called_once_with(["virtualenv", "/tmp/foo"], runas=None, python_shell=False)

                # Are we logging the deprecation information?
                self.assertIn(
                    "INFO:The virtualenv '--never-download' option has been "
                    "deprecated in virtualenv(>=1.10), as such, the "
                    "'never_download' option to `virtualenv.create()` has "
                    "also been deprecated and it's not necessary anymore.",
                    handler.messages,
                )
예제 #2
0
    def test_issue_6029_deprecated_distribute(self):
        mock = MagicMock(return_value={"retcode": 0, "stdout": ""})

        with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
            virtualenv_mod._install_script = MagicMock(
                return_value={"retcode": 0, "stdout": "Installed script!", "stderr": ""}
            )
            virtualenv_mod.create("/tmp/foo", system_site_packages=True, distribute=True)
            mock.assert_called_once_with(
                ["virtualenv", "--distribute", "--system-site-packages", "/tmp/foo"], runas=None, python_shell=False
            )

        with TestsLoggingHandler() as handler:
            # Let's fake a higher virtualenv version
            virtualenv_mock = MagicMock()
            virtualenv_mock.__version__ = "1.10rc1"
            mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
            with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
                with patch.dict("sys.modules", {"virtualenv": virtualenv_mock}):
                    virtualenv_mod.create("/tmp/foo", system_site_packages=True, distribute=True)
                    mock.assert_called_once_with(
                        ["virtualenv", "--system-site-packages", "/tmp/foo"], runas=None, python_shell=False
                    )

                # Are we logging the deprecation information?
                self.assertIn(
                    "INFO:The virtualenv '--distribute' option has been "
                    "deprecated in virtualenv(>=1.10), as such, the "
                    "'distribute' option to `virtualenv.create()` has "
                    "also been deprecated and it's not necessary anymore.",
                    handler.messages,
                )
예제 #3
0
    def test_get_virtualenv_version_from_shell(self):
        with ForceImportErrorOn("virtualenv"):

            # ----- virtualenv binary not available ------------------------->
            mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
            with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
                self.assertRaises(CommandExecutionError, virtualenv_mod.create, "/tmp/foo")
            # <---- virtualenv binary not available --------------------------

            # ----- virtualenv binary present but > 0 exit code ------------->
            mock = MagicMock(
                side_effect=[{"retcode": 1, "stdout": "", "stderr": "This is an error"}, {"retcode": 0, "stdout": ""}]
            )
            with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
                self.assertRaises(CommandExecutionError, virtualenv_mod.create, "/tmp/foo", venv_bin="virtualenv")
            # <---- virtualenv binary present but > 0 exit code --------------

            # ----- virtualenv binary returns 1.9.1 as its version --------->
            mock = MagicMock(side_effect=[{"retcode": 0, "stdout": "1.9.1"}, {"retcode": 0, "stdout": ""}])
            with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
                virtualenv_mod.create("/tmp/foo", never_download=True)
                mock.assert_called_with(["virtualenv", "--never-download", "/tmp/foo"], runas=None, python_shell=False)
            # <---- virtualenv binary returns 1.9.1 as its version ----------

            # ----- virtualenv binary returns 1.10rc1 as its version ------->
            mock = MagicMock(side_effect=[{"retcode": 0, "stdout": "1.10rc1"}, {"retcode": 0, "stdout": ""}])
            with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
                virtualenv_mod.create("/tmp/foo", never_download=True)
                mock.assert_called_with(["virtualenv", "/tmp/foo"], runas=None, python_shell=False)
예제 #4
0
 def test_clear_argument(self):
     mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
     with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
         virtualenv_mod.create('/tmp/foo', clear=True)
         mock.assert_called_once_with(
             'virtualenv --clear /tmp/foo', runas=None
         )
예제 #5
0
    def test_issue_6031_multiple_extra_search_dirs(self):
        extra_search_dirs = ["/tmp/bar-1", "/tmp/bar-2", "/tmp/bar-3"]

        # Passing extra_search_dirs as a list
        mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
        with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
            virtualenv_mod.create("/tmp/foo", extra_search_dir=extra_search_dirs)
            mock.assert_called_once_with(
                [
                    "virtualenv",
                    "--extra-search-dir=/tmp/bar-1",
                    "--extra-search-dir=/tmp/bar-2",
                    "--extra-search-dir=/tmp/bar-3",
                    "/tmp/foo",
                ],
                runas=None,
                python_shell=False,
            )

        # Passing extra_search_dirs as comma separated list
        mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
        with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
            virtualenv_mod.create("/tmp/foo", extra_search_dir=",".join(extra_search_dirs))
            mock.assert_called_once_with(
                [
                    "virtualenv",
                    "--extra-search-dir=/tmp/bar-1",
                    "--extra-search-dir=/tmp/bar-2",
                    "--extra-search-dir=/tmp/bar-3",
                    "/tmp/foo",
                ],
                runas=None,
                python_shell=False,
            )
예제 #6
0
    def test_issue_6030_deprecated_never_download(self):
        mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})

        with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
            virtualenv_mod.create(
                '/tmp/foo', never_download=True
            )
            mock.assert_called_once_with(
                'virtualenv --never-download /tmp/foo',
                runas=None
            )

        with TestsLoggingHandler() as handler:
            mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
            # Let's fake a higher virtualenv version
            virtualenv_mock = MagicMock()
            virtualenv_mock.__version__ = '1.10rc1'
            with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
                with patch.dict('sys.modules',
                                {'virtualenv': virtualenv_mock}):
                    virtualenv_mod.create(
                        '/tmp/foo', never_download=True
                    )
                    mock.assert_called_once_with('virtualenv /tmp/foo',
                                                 runas=None)

                # Are we logging the deprecation information?
                self.assertIn(
                    'INFO:The virtualenv \'--never-download\' option has been '
                    'deprecated in virtualenv(>=1.10), as such, the '
                    '\'never_download\' option to `virtualenv.create()` has '
                    'also been deprecated and it\'s not necessary anymore.',
                    handler.messages
                )
예제 #7
0
 def test_symlinks_argument(self):
     # We test for pyvenv only because with virtualenv this is un
     # unsupported option.
     mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
     with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
         virtualenv_mod.create("/tmp/foo", venv_bin="pyvenv", symlinks=True)
         mock.assert_called_once_with(["pyvenv", "--symlinks", "/tmp/foo"], runas=None, python_shell=False)
예제 #8
0
    def test_python_argument(self):
        mock = MagicMock(return_value={"retcode": 0, "stdout": ""})

        with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
            virtualenv_mod.create("/tmp/foo", python=sys.executable)
            mock.assert_called_once_with(
                ["virtualenv", "--python={0}".format(sys.executable), "/tmp/foo"], runas=None, python_shell=False
            )
예제 #9
0
 def test_symlinks_argument(self):
     # We test for pyvenv only because with virtualenv this is un
     # unsupported option.
     mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
     with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
         virtualenv_mod.create('/tmp/foo', venv_bin='pyvenv', symlinks=True)
         mock.assert_called_once_with(
             'pyvenv --symlinks /tmp/foo', runas=None
         )
예제 #10
0
    def test_get_virtualenv_version_from_shell(self):
        with ForceImportErrorOn('virtualenv'):

            # ----- virtualenv binary not available ------------------------->
            mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
            with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
                self.assertRaises(
                    CommandExecutionError,
                    virtualenv_mod.create,
                    '/tmp/foo',
                )
            # <---- virtualenv binary not available --------------------------

            # ----- virtualenv binary present but > 0 exit code ------------->
            mock = MagicMock(side_effect=[
                {'retcode': 1, 'stdout': '', 'stderr': 'This is an error'},
                {'retcode': 0, 'stdout': ''}
            ])
            with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
                self.assertRaises(
                    CommandExecutionError,
                    virtualenv_mod.create,
                    '/tmp/foo',
                    venv_bin='virtualenv',
                )
            # <---- virtualenv binary present but > 0 exit code --------------

            # ----- virtualenv binary returns 1.9.1 as its version --------->
            mock = MagicMock(side_effect=[
                {'retcode': 0, 'stdout': '1.9.1'},
                {'retcode': 0, 'stdout': ''}
            ])
            with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
                virtualenv_mod.create(
                    '/tmp/foo', never_download=True
                )
                mock.assert_called_with(
                    ['virtualenv', '--never-download', '/tmp/foo'],
                    runas=None,
                    python_shell=False
                )
            # <---- virtualenv binary returns 1.9.1 as its version ----------

            # ----- virtualenv binary returns 1.10rc1 as its version ------->
            mock = MagicMock(side_effect=[
                {'retcode': 0, 'stdout': '1.10rc1'},
                {'retcode': 0, 'stdout': ''}
            ])
            with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
                virtualenv_mod.create(
                    '/tmp/foo', never_download=True
                )
                mock.assert_called_with(
                    ['virtualenv', '/tmp/foo'],
                    runas=None,
                    python_shell=False
                )
예제 #11
0
 def test_upgrade_argument(self):
     # We test for pyvenv only because with virtualenv this is un
     # unsupported option.
     mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
     with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
         virtualenv_mod.create('/tmp/foo', venv_bin='pyvenv', upgrade=True)
         mock.assert_called_once_with(['pyvenv', '--upgrade', '/tmp/foo'],
                                      runas=None,
                                      python_shell=False)
예제 #12
0
    def test_get_virtualenv_version_from_shell(self):
        with ForceImportErrorOn('virtualenv'):

            # ----- virtualenv binary not available ------------------------->
            mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
            with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
                self.assertRaises(
                    CommandExecutionError,
                    virtualenv_mod.create,
                    '/tmp/foo',
                )
            # <---- virtualenv binary not available --------------------------

            # ----- virtualenv binary present but > 0 exit code ------------->
            mock = MagicMock(side_effect=[{
                'retcode': 1,
                'stdout': '',
                'stderr': 'This is an error'
            }, {
                'retcode': 0,
                'stdout': ''
            }])
            with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
                self.assertRaises(
                    CommandExecutionError,
                    virtualenv_mod.create,
                    '/tmp/foo',
                    venv_bin='virtualenv',
                )
            # <---- virtualenv binary present but > 0 exit code --------------

            # ----- virtualenv binary returns 1.9.1 as its version --------->
            mock = MagicMock(side_effect=[{
                'retcode': 0,
                'stdout': '1.9.1'
            }, {
                'retcode': 0,
                'stdout': ''
            }])
            with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
                virtualenv_mod.create('/tmp/foo', never_download=True)
                mock.assert_called_with('virtualenv --never-download /tmp/foo',
                                        runas=None)
            # <---- virtualenv binary returns 1.9.1 as its version ----------

            # ----- virtualenv binary returns 1.10rc1 as its version ------->
            mock = MagicMock(side_effect=[{
                'retcode': 0,
                'stdout': '1.10rc1'
            }, {
                'retcode': 0,
                'stdout': ''
            }])
            with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
                virtualenv_mod.create('/tmp/foo', never_download=True)
                mock.assert_called_with('virtualenv /tmp/foo', runas=None)
예제 #13
0
 def test_python_argument(self):
     mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
     with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
         virtualenv_mod.create(
             '/tmp/foo', python='/usr/bin/python2.7',
         )
         mock.assert_called_once_with(
             'virtualenv --python=/usr/bin/python2.7 /tmp/foo',
             runas=None
         )
    def test_python_argument(self):
        mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})

        with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
            virtualenv_mod.create(
                '/tmp/foo', python=sys.executable,
            )
            mock.assert_called_once_with(
                'virtualenv --python={0} /tmp/foo'.format(sys.executable),
                runas=None
            )
예제 #15
0
    def test_python_argument(self):
        mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})

        with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
            virtualenv_mod.create(
                '/tmp/foo', python=sys.executable,
            )
            mock.assert_called_once_with(
                'virtualenv --python={0} /tmp/foo'.format(sys.executable),
                runas=None
            )
예제 #16
0
 def test_upgrade_argument(self):
     # We test for pyvenv only because with virtualenv this is un
     # unsupported option.
     mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
     with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
         virtualenv_mod.create('/tmp/foo', venv_bin='pyvenv', upgrade=True)
         mock.assert_called_once_with(
             ['pyvenv', '--upgrade', '/tmp/foo'],
             runas=None,
             python_shell=False
         )
예제 #17
0
 def test_python_argument(self):
     mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
     if os.path.isfile('/usr/bin/python2.7'):
         python = '/usr/bin/python2.7'
     elif os.path.isfile('/usr/bin/python2.6'):
         python = '/usr/bin/python2.6'
     with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
         virtualenv_mod.create(
             '/tmp/foo', python=python,
         )
         mock.assert_called_once_with(
             'virtualenv --python={0} /tmp/foo'.format(python),
             runas=None
         )
예제 #18
0
    def test_no_site_packages_deprecation(self):
        # We *always* want *all* warnings thrown on this module
        warnings.resetwarnings()
        warnings.filterwarnings('always', '', DeprecationWarning, __name__)

        mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
        with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
            with warnings.catch_warnings(record=True) as w:
                virtualenv_mod.create('/tmp/foo', no_site_packages=True)
                self.assertEqual(
                    '\'no_site_packages\' has been deprecated. Please '
                    'start using \'system_site_packages=False\' which '
                    'means exactly the same as \'no_site_packages=True\'',
                    str(w[-1].message))
예제 #19
0
    def test_python_argument(self):
        mock = MagicMock(return_value={"retcode": 0, "stdout": ""})

        with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
            virtualenv_mod.create(
                "/tmp/foo",
                python=sys.executable,
            )
            mock.assert_called_once_with(
                [
                    "virtualenv", "--python={0}".format(sys.executable),
                    "/tmp/foo"
                ],
                runas=None,
                python_shell=False,
            )
예제 #20
0
    def test_no_site_packages_deprecation(self):
        # We *always* want *all* warnings thrown on this module
        warnings.resetwarnings()
        warnings.filterwarnings('always', '', DeprecationWarning, __name__)

        mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
        with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
            with warnings.catch_warnings(record=True) as w:
                virtualenv_mod.create(
                    '/tmp/foo', no_site_packages=True
                )
                self.assertEqual(
                    '\'no_site_packages\' has been deprecated. Please '
                    'start using \'system_site_packages=False\' which '
                    'means exactly the same as \'no_site_packages=True\'',
                    str(w[-1].message)
                )
예제 #21
0
    def test_issue_6029_deprecated_distribute(self):
        mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})

        with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
            virtualenv_mod._install_script = MagicMock(
                return_value={
                    'retcode': 0,
                    'stdout': 'Installed script!',
                    'stderr': ''
                }
            )
            virtualenv_mod.create(
                '/tmp/foo', system_site_packages=True, distribute=True
            )
            mock.assert_called_once_with(
                ['virtualenv', '--distribute', '--system-site-packages', '/tmp/foo'],
                runas=None,
                python_shell=False
            )

        with TestsLoggingHandler() as handler:
            # Let's fake a higher virtualenv version
            virtualenv_mock = MagicMock()
            virtualenv_mock.__version__ = '1.10rc1'
            mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
            with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
                with patch.dict('sys.modules',
                                {'virtualenv': virtualenv_mock}):
                    virtualenv_mod.create(
                        '/tmp/foo', system_site_packages=True, distribute=True
                    )
                    mock.assert_called_once_with(
                        ['virtualenv', '--system-site-packages', '/tmp/foo'],
                        runas=None,
                        python_shell=False
                    )

                # Are we logging the deprecation information?
                self.assertIn(
                    'INFO:The virtualenv \'--distribute\' option has been '
                    'deprecated in virtualenv(>=1.10), as such, the '
                    '\'distribute\' option to `virtualenv.create()` has '
                    'also been deprecated and it\'s not necessary anymore.',
                    handler.messages
                )
예제 #22
0
    def test_issue_6029_deprecated_distribute(self):
        mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})

        with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
            virtualenv_mod._install_script = MagicMock(
                return_value={
                    'retcode': 0,
                    'stdout': 'Installed script!',
                    'stderr': ''
                }
            )
            virtualenv_mod.create(
                '/tmp/foo', system_site_packages=True, distribute=True
            )
            mock.assert_called_once_with(
                ['virtualenv', '--distribute', '--system-site-packages', '/tmp/foo'],
                runas=None,
                python_shell=False
            )

        with TestsLoggingHandler() as handler:
            # Let's fake a higher virtualenv version
            virtualenv_mock = MagicMock()
            virtualenv_mock.__version__ = '1.10rc1'
            mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
            with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
                with patch.dict('sys.modules',
                                {'virtualenv': virtualenv_mock}):
                    virtualenv_mod.create(
                        '/tmp/foo', system_site_packages=True, distribute=True
                    )
                    mock.assert_called_once_with(
                        ['virtualenv', '--system-site-packages', '/tmp/foo'],
                        runas=None,
                        python_shell=False
                    )

                # Are we logging the deprecation information?
                self.assertIn(
                    'INFO:The virtualenv \'--distribute\' option has been '
                    'deprecated in virtualenv(>=1.10), as such, the '
                    '\'distribute\' option to `virtualenv.create()` has '
                    'also been deprecated and it\'s not necessary anymore.',
                    handler.messages
                )
예제 #23
0
    def test_issue_6029_deprecated_distribute(self):
        mock = MagicMock(return_value={"retcode": 0, "stdout": ""})

        with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
            virtualenv_mod.create("/tmp/foo",
                                  system_site_packages=True,
                                  distribute=True)
            mock.assert_called_once_with(
                [
                    "virtualenv", "--distribute", "--system-site-packages",
                    "/tmp/foo"
                ],
                runas=None,
                python_shell=False,
            )

        with TstSuiteLoggingHandler() as handler:
            # Let's fake a higher virtualenv version
            virtualenv_mock = MagicMock()
            virtualenv_mock.__version__ = "1.10rc1"
            mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
            with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
                with patch.dict("sys.modules",
                                {"virtualenv": virtualenv_mock}):
                    virtualenv_mod.create("/tmp/foo",
                                          system_site_packages=True,
                                          distribute=True)
                    mock.assert_called_once_with(
                        ["virtualenv", "--system-site-packages", "/tmp/foo"],
                        runas=None,
                        python_shell=False,
                    )

                # Are we logging the deprecation information?
                self.assertIn(
                    "INFO:The virtualenv '--distribute' option has been "
                    "deprecated in virtualenv(>=1.10), as such, the "
                    "'distribute' option to `virtualenv.create()` has "
                    "also been deprecated and it's not necessary anymore.",
                    handler.messages,
                )
예제 #24
0
    def test_prompt_argument(self):
        mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
        with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
            virtualenv_mod.create('/tmp/foo', prompt='PY Prompt')
            mock.assert_called_once_with(
                'virtualenv --prompt=\'PY Prompt\' /tmp/foo',
                runas=None
            )

        # Now with some quotes on the mix
        mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
        with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
            virtualenv_mod.create('/tmp/foo', prompt='\'PY\' Prompt')
            mock.assert_called_once_with(
                'virtualenv --prompt="\'PY\' Prompt" /tmp/foo',
                runas=None
            )

        mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
        with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
            virtualenv_mod.create('/tmp/foo', prompt='"PY" Prompt')
            mock.assert_called_once_with(
                'virtualenv --prompt=\'"PY" Prompt\' /tmp/foo',
                runas=None
            )
    def test_prompt_argument(self):
        mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
        with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
            virtualenv_mod.create('/tmp/foo', prompt='PY Prompt')
            mock.assert_called_once_with(
                'virtualenv --prompt=\'PY Prompt\' /tmp/foo',
                runas=None
            )

        # Now with some quotes on the mix
        mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
        with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
            virtualenv_mod.create('/tmp/foo', prompt='\'PY\' Prompt')
            mock.assert_called_once_with(
                'virtualenv --prompt="\'PY\' Prompt" /tmp/foo',
                runas=None
            )

        mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
        with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
            virtualenv_mod.create('/tmp/foo', prompt='"PY" Prompt')
            mock.assert_called_once_with(
                'virtualenv --prompt=\'"PY" Prompt\' /tmp/foo',
                runas=None
            )
예제 #26
0
    def test_prompt_argument(self):
        mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
        with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
            virtualenv_mod.create("/tmp/foo", prompt="PY Prompt")
            mock.assert_called_once_with(
                ["virtualenv", "--prompt='PY Prompt'", "/tmp/foo"],
                runas=None,
                python_shell=False,
            )

        # Now with some quotes on the mix
        mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
        with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
            virtualenv_mod.create("/tmp/foo", prompt="'PY' Prompt")
            mock.assert_called_once_with(
                ["virtualenv", "--prompt=''PY' Prompt'", "/tmp/foo"],
                runas=None,
                python_shell=False,
            )

        mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
        with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
            virtualenv_mod.create("/tmp/foo", prompt='"PY" Prompt')
            mock.assert_called_once_with(
                ["virtualenv", "--prompt='\"PY\" Prompt'", "/tmp/foo"],
                runas=None,
                python_shell=False,
            )
예제 #27
0
    def test_issue_6031_multiple_extra_search_dirs(self):
        extra_search_dirs = [
            '/tmp/bar-1',
            '/tmp/bar-2',
            '/tmp/bar-3'
        ]

        # Passing extra_search_dirs as a list
        mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
        with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
            virtualenv_mod.create(
                '/tmp/foo', extra_search_dir=extra_search_dirs
            )
            mock.assert_called_once_with(
                ['virtualenv',
                '--extra-search-dir=/tmp/bar-1',
                '--extra-search-dir=/tmp/bar-2',
                '--extra-search-dir=/tmp/bar-3',
                '/tmp/foo'],
                runas=None,
                python_shell=False
            )

        # Passing extra_search_dirs as comma separated list
        mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
        with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
            virtualenv_mod.create(
                '/tmp/foo', extra_search_dir=','.join(extra_search_dirs)
            )
            mock.assert_called_once_with(
                ['virtualenv',
                '--extra-search-dir=/tmp/bar-1',
                '--extra-search-dir=/tmp/bar-2',
                '--extra-search-dir=/tmp/bar-3',
                '/tmp/foo'],
                runas=None,
                python_shell=False
            )
예제 #28
0
    def test_issue_6031_multiple_extra_search_dirs(self):
        extra_search_dirs = [
            '/tmp/bar-1',
            '/tmp/bar-2',
            '/tmp/bar-3'
        ]

        # Passing extra_search_dirs as a list
        mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
        with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
            virtualenv_mod.create(
                '/tmp/foo', extra_search_dir=extra_search_dirs
            )
            mock.assert_called_once_with(
                ['virtualenv',
                '--extra-search-dir=/tmp/bar-1',
                '--extra-search-dir=/tmp/bar-2',
                '--extra-search-dir=/tmp/bar-3',
                '/tmp/foo'],
                runas=None,
                python_shell=False
            )

        # Passing extra_search_dirs as comma separated list
        mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
        with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
            virtualenv_mod.create(
                '/tmp/foo', extra_search_dir=','.join(extra_search_dirs)
            )
            mock.assert_called_once_with(
                ['virtualenv',
                '--extra-search-dir=/tmp/bar-1',
                '--extra-search-dir=/tmp/bar-2',
                '--extra-search-dir=/tmp/bar-3',
                '/tmp/foo'],
                runas=None,
                python_shell=False
            )
예제 #29
0
    def test_issue_6031_multiple_extra_search_dirs(self):
        extra_search_dirs = ["/tmp/bar-1", "/tmp/bar-2", "/tmp/bar-3"]

        # Passing extra_search_dirs as a list
        mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
        with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
            virtualenv_mod.create("/tmp/foo",
                                  extra_search_dir=extra_search_dirs)
            mock.assert_called_once_with(
                [
                    "virtualenv",
                    "--extra-search-dir=/tmp/bar-1",
                    "--extra-search-dir=/tmp/bar-2",
                    "--extra-search-dir=/tmp/bar-3",
                    "/tmp/foo",
                ],
                runas=None,
                python_shell=False,
            )

        # Passing extra_search_dirs as comma separated list
        mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
        with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
            virtualenv_mod.create("/tmp/foo",
                                  extra_search_dir=",".join(extra_search_dirs))
            mock.assert_called_once_with(
                [
                    "virtualenv",
                    "--extra-search-dir=/tmp/bar-1",
                    "--extra-search-dir=/tmp/bar-2",
                    "--extra-search-dir=/tmp/bar-3",
                    "/tmp/foo",
                ],
                runas=None,
                python_shell=False,
            )
예제 #30
0
    def test_issue_6030_deprecated_never_download(self):
        mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})

        with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
            virtualenv_mod.create(
                '/tmp/foo', never_download=True
            )
            mock.assert_called_once_with(
                ['virtualenv', '--never-download', '/tmp/foo'],
                runas=None,
                python_shell=False
            )

        with TestsLoggingHandler() as handler:
            mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
            # Let's fake a higher virtualenv version
            virtualenv_mock = MagicMock()
            virtualenv_mock.__version__ = '1.10rc1'
            with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
                with patch.dict('sys.modules',
                                {'virtualenv': virtualenv_mock}):
                    virtualenv_mod.create(
                        '/tmp/foo', never_download=True
                    )
                    mock.assert_called_once_with(['virtualenv', '/tmp/foo'],
                                                 runas=None,
                                                 python_shell=False)

                # Are we logging the deprecation information?
                self.assertIn(
                    'INFO:The virtualenv \'--never-download\' option has been '
                    'deprecated in virtualenv(>=1.10), as such, the '
                    '\'never_download\' option to `virtualenv.create()` has '
                    'also been deprecated and it\'s not necessary anymore.',
                    handler.messages
                )
예제 #31
0
    def test_prompt_argument(self):
        mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
        with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
            virtualenv_mod.create("/tmp/foo", prompt="PY Prompt")
            mock.assert_called_once_with(
                ["virtualenv", "--prompt='PY Prompt'", "/tmp/foo"], runas=None, python_shell=False
            )

        # Now with some quotes on the mix
        mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
        with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
            virtualenv_mod.create("/tmp/foo", prompt="'PY' Prompt")
            mock.assert_called_once_with(
                ["virtualenv", "--prompt=''PY' Prompt'", "/tmp/foo"], runas=None, python_shell=False
            )

        mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
        with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
            virtualenv_mod.create("/tmp/foo", prompt='"PY" Prompt')
            mock.assert_called_once_with(
                ["virtualenv", "--prompt='\"PY\" Prompt'", "/tmp/foo"], runas=None, python_shell=False
            )
예제 #32
0
 def test_clear_argument(self):
     mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
     with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
         virtualenv_mod.create("/tmp/foo", clear=True)
         mock.assert_called_once_with(["virtualenv", "--clear", "/tmp/foo"], runas=None, python_shell=False)
예제 #33
0
 def test_clear_argument(self):
     mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
     with patch.dict(virtualenv_mod.__salt__, {'cmd.run_all': mock}):
         virtualenv_mod.create('/tmp/foo', clear=True)
         mock.assert_called_once_with('virtualenv --clear /tmp/foo',
                                      runas=None)
예제 #34
0
    def test_get_virtualenv_version_from_shell(self):
        with ForceImportErrorOn("virtualenv"):

            # ----- virtualenv binary not available ------------------------->
            mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
            with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
                self.assertRaises(
                    CommandExecutionError,
                    virtualenv_mod.create,
                    "/tmp/foo",
                )
            # <---- virtualenv binary not available --------------------------

            # ----- virtualenv binary present but > 0 exit code ------------->
            mock = MagicMock(side_effect=[
                {
                    "retcode": 1,
                    "stdout": "",
                    "stderr": "This is an error"
                },
                {
                    "retcode": 0,
                    "stdout": ""
                },
            ])
            with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
                self.assertRaises(
                    CommandExecutionError,
                    virtualenv_mod.create,
                    "/tmp/foo",
                    venv_bin="virtualenv",
                )
            # <---- virtualenv binary present but > 0 exit code --------------

            # ----- virtualenv binary returns 1.9.1 as its version --------->
            mock = MagicMock(side_effect=[
                {
                    "retcode": 0,
                    "stdout": "1.9.1"
                },
                {
                    "retcode": 0,
                    "stdout": ""
                },
            ])
            with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
                virtualenv_mod.create("/tmp/foo", never_download=True)
                mock.assert_called_with(
                    ["virtualenv", "--never-download", "/tmp/foo"],
                    runas=None,
                    python_shell=False,
                )
            # <---- virtualenv binary returns 1.9.1 as its version ----------

            # ----- virtualenv binary returns 1.10rc1 as its version ------->
            mock = MagicMock(side_effect=[
                {
                    "retcode": 0,
                    "stdout": "1.10rc1"
                },
                {
                    "retcode": 0,
                    "stdout": ""
                },
            ])
            with patch.dict(virtualenv_mod.__salt__, {"cmd.run_all": mock}):
                virtualenv_mod.create("/tmp/foo", never_download=True)
                mock.assert_called_with(["virtualenv", "/tmp/foo"],
                                        runas=None,
                                        python_shell=False)