Пример #1
0
def generate_pythonrc_stuff(venv_base, layout, sitepackages, prompt):
    '''
    insert correct lib dirs into pythonrc.py
    '''
    # load pythonrc.py file
    base = path.dirname(rvirtualenv.__file__)
    f = open(path.join(base, 'template', 'venv', 'pythonrc.py'), 'r')
    content = f.read()
    f.close()

    if layout is None:
        layout = guess_scheme()

    # replace pattern in pythonrc.py
    patrn = "scheme = 'custom'"
    repl = "scheme = '%s'" % layout
    content = content.replace(patrn, repl)

    # update no-site-packages option
    patrn = "sitepackages = True"
    repl = "sitepackages = %s" % sitepackages
    content = content.replace(patrn, repl)

    # set custom prompt
    patrn = "#prompt = '[CUSTOM]' # set your custom prompt prefix (see -p option)"
    repl = "prompt = %r" % prompt
    if prompt is not None:
        content = content.replace(patrn, repl)

    # write it
    f = open(path.join(venv_base, 'pythonrc.py'), 'w')
    f.write(content)
    f.close()
Пример #2
0
def generate_pythonrc_stuff(venv_base, layout, sitepackages, prompt):
    '''
    insert correct lib dirs into pythonrc.py
    '''
    # load pythonrc.py file
    base = path.dirname(rvirtualenv.__file__)
    f = open(path.join(base, 'template', 'venv', 'pythonrc.py'), 'r')
    content = f.read()
    f.close()

    if layout is None:
        layout = guess_scheme()

    # replace pattern in pythonrc.py
    patrn = "scheme = 'custom'"
    repl = "scheme = '%s'" % layout
    content = content.replace(patrn, repl)

    # update no-site-packages option
    patrn = "sitepackages = True"
    repl = "sitepackages = %s" % sitepackages
    content = content.replace(patrn, repl)

    # set custom prompt
    patrn = "#prompt = '[CUSTOM]' # set your custom prompt prefix (see -p option)"
    repl = "prompt = %r" % prompt
    if prompt is not None:
        content = content.replace(patrn, repl)

    # write it
    f = open(path.join(venv_base, 'pythonrc.py'), 'w')
    f.write(content)
    f.close()
Пример #3
0
    def test_venv_without_site_packages(self):
        '''
        setuptools installed system-wide is needed for this test
        '''
        v1 = path.join(self.directory, 'PY1')
        py1 = path.join(get_scheme(guess_scheme(), 'scripts', vars={'base': v1}), 'python.py')
        self.install_venv(args=[], virtualenv=v1)
        cmd = '%s %s -c "import setuptools"' % (sys.executable, py1)
        stdout, stderr = self.run_command(cmd)
        self.failUnlessEqual('', stderr.strip())
        self.failUnlessEqual('', stdout.strip())

        v2 = path.join(self.directory, 'PY2')
        py2 = path.join(get_scheme(guess_scheme(), 'scripts', vars={'base': v2}), 'python.py')
        self.install_venv(args=['--no-site-packages'], virtualenv=v2)
        cmd = '%s %s -c "import setuptools"' % (sys.executable, py2)
        stdout, stderr = self.run_command(cmd)
        self.assertTrue('ImportError: No module named setuptools' in stderr)
Пример #4
0
    def test_venv_without_site_packages(self):
        '''
        setuptools installed system-wide is needed for this test
        '''
        v1 = path.join(self.directory, 'PY1')
        py1 = path.join(
            get_scheme(guess_scheme(), 'scripts', vars={'base': v1}),
            'python.py')
        self.install_venv(args=[], virtualenv=v1)
        cmd = '%s %s -c "import setuptools"' % (sys.executable, py1)
        stdout, stderr = self.run_command(cmd)
        self.failUnlessEqual('', stderr.strip())
        self.failUnlessEqual('', stdout.strip())

        v2 = path.join(self.directory, 'PY2')
        py2 = path.join(
            get_scheme(guess_scheme(), 'scripts', vars={'base': v2}),
            'python.py')
        self.install_venv(args=['--no-site-packages'], virtualenv=v2)
        cmd = '%s %s -c "import setuptools"' % (sys.executable, py2)
        stdout, stderr = self.run_command(cmd)
        self.assertTrue('ImportError: No module named setuptools' in stderr)
Пример #5
0
    def test_whole_generate(self, layout=None):
        copy(self.virtualenv)
        generate(self.virtualenv, layout=layout)
        structure = store_directory_structure(self.virtualenv, content='<file>')

        if layout is None:
            layout = guess_scheme()

        paths = set((i for i,j in structure))
        vars = {'base': self.virtualenv}
        self.assertTrue(get_scheme(layout, 'purelib', vars=vars) in paths)
        self.assertTrue(get_scheme(layout, 'scripts', vars=vars) in paths)

        pybin = path.join(get_scheme(layout, 'scripts', vars=vars), 'python.py')
        self.assertTrue(path.exists(pybin))

        pyrc = path.join(self.virtualenv, 'pythonrc.py')
        self.assertTrue(path.exists(pyrc))

        content = open(pyrc, 'r').read()
        self.assertFalse("scheme = 'custom'" in content)
Пример #6
0
    def test_whole_generate(self, layout=None):
        copy(self.virtualenv)
        generate(self.virtualenv, layout=layout)
        structure = store_directory_structure(self.virtualenv,
                                              content='<file>')

        if layout is None:
            layout = guess_scheme()

        paths = set((i for i, j in structure))
        vars = {'base': self.virtualenv}
        self.assertTrue(get_scheme(layout, 'purelib', vars=vars) in paths)
        self.assertTrue(get_scheme(layout, 'scripts', vars=vars) in paths)

        pybin = path.join(get_scheme(layout, 'scripts', vars=vars),
                          'python.py')
        self.assertTrue(path.exists(pybin))

        pyrc = path.join(self.virtualenv, 'pythonrc.py')
        self.assertTrue(path.exists(pyrc))

        content = open(pyrc, 'r').read()
        self.assertFalse("scheme = 'custom'" in content)
Пример #7
0
    def setUp(self):
        super(TestRVirtualEnv, self).setUp()

        vars = {'base': self.virtualenv}
        self.python = path.join(
            get_scheme(guess_scheme(), 'scripts', vars=vars), 'python.py')
Пример #8
0
    def setUp(self):
        super(TestRVirtualEnv, self).setUp()

        vars = {'base': self.virtualenv}
        self.python = path.join(get_scheme(guess_scheme(), 'scripts', vars=vars), 'python.py')