Пример #1
0
    def test_calls_pip_with_packages(self, run_mock, source_fs):
        # pylint: disable=unused-argument,no-self-use
        build_path = '/home/foo/tmp/venv-si6aJ'
        venv = VirtualEnv(path=build_path)
        venv.install(packages=['pytest', 'pip', 'Flask'])

        call_args = run_mock.call_args[0]

        pip_path = os.path.join(build_path, 'bin', 'pip')
        assert call_args[0] == [pip_path, 'install', 'pytest', 'pip', 'Flask']
Пример #2
0
    def test_with_target_path(self, run_mock, source_fs):
        # pylint: disable=unused-argument,invalid-name,no-self-use
        build_path = '/home/foo/tmp/venv-TPTka'
        venv = VirtualEnv(path=build_path)
        venv.create()
        run_mock.assert_called_once()

        (call_args, call_kargs) = run_mock.call_args

        assert call_args[0][0] == 'virtualenv'
        assert call_args[0][1] == build_path
        assert call_kargs['cwd'] == build_path
Пример #3
0
    def test_defaults(self, run_mock, source_fs, virtual_env):
        # pylint: disable=unused-argument,no-self-use
        virtual_env = VirtualEnv()
        virtual_env.create()
        run_mock.assert_called_once()

        regex = re.compile(r'^\/.*\/plpacker\.virtualenv-\w+-tmp$')
        (call_args, call_kargs) = run_mock.call_args

        assert call_args[0][0] == 'virtualenv'
        assert regex.match(call_args[0][1])
        assert regex.match(call_kargs['cwd'])
Пример #4
0
    def test_calls_pip_with_requirements(self, run_mock, source_fs):
        # pylint: disable=unused-argument,invalid-name,no-self-use
        build_path = '/home/foo/tmp/venv-K7aC6'
        venv = VirtualEnv(path=build_path)
        venv.install(requirements=['requirements.txt', 'requirements-dev.txt'])

        call_args = run_mock.call_args[0]

        pip_path = os.path.join(build_path, 'bin', 'pip')
        assert call_args[0] == [
            pip_path, 'install', '-r', 'requirements.txt', '-r',
            'requirements-dev.txt'
        ]
Пример #5
0
    def test_with_python(self, run_mock, source_fs):
        # pylint: disable=unused-argument,no-self-use
        venv = VirtualEnv(python=sentinel.python)
        venv.create()
        run_mock.assert_called_once()

        regex = re.compile(r'^\/.*\/plpacker\.virtualenv-\w+-tmp$')
        (call_args, call_kargs) = run_mock.call_args

        assert call_args[0][0] == 'virtualenv'
        assert call_args[0][1] == '--python'
        assert call_args[0][2] == sentinel.python
        assert regex.match(call_args[0][3])
        assert regex.match(call_kargs['cwd'])
Пример #6
0
    def test_calls_pip_packages_and_reqs_full(self, run_mock, source_fs):
        # pylint: disable=unused-argument,no-self-use,invalid-name
        build_path = '/home/foo/tmp/venv-K7aC6'
        venv = VirtualEnv(path=build_path)
        venv.install(packages=['pytest', 'pip', 'Flask'],
                     requirements=['requirements.txt', 'requirements-dev.txt'])

        run_mock.assert_called_once()
        call_args = run_mock.call_args[0]

        pip_path = os.path.join(build_path, 'bin', 'pip')
        assert call_args[0] == [
            pip_path, 'install', '-r', 'requirements.txt', '-r',
            'requirements-dev.txt', 'pytest', 'pip', 'Flask'
        ]
Пример #7
0
 def test_sane_defaults(self, source_fs):
     # pylint: disable=unused-argument, no-self-use
     venv = VirtualEnv()
     assert not venv.keep
     # pylint: disable=len-as-condition
     assert len(venv.path) > 0
     assert os.path.isabs(venv.path)
Пример #8
0
def entry_point():
    # Only here to be quiet and dump out the config.  Have to do this before
    # activating logging.
    if '--generate-config' in sys.argv[1:]:
        Configuration.print_default_config()
        sys.exit(0)

    # General configuration
    setup_logging()
    cli_args = parse_args(sys.argv[1:])
    config = Configuration(vars(cli_args))
    cwd = os.getcwd()

    # Information for the VirtualEnv
    pip_requirements = config.data['virtualenv']['pip']['requirements']
    fileset_excludes = config.data['virtualenv']['default_excludes']

    # Information for the PyLambdaPacker
    filesets = []
    if config.data['packager']['includes']:
        filesets = [
            FileSet(cwd,
                    includes=config.data['packager']['includes'],
                    excludes=config.data['packager']['excludes'] +
                    config.data['packager']['default_excludes'])
        ]

    # Build!
    with VirtualEnv(python=config.data['virtualenv']['python'],
                    path=config.data['virtualenv']['path'],
                    keep=config.data['virtualenv']['keep'],
                    packages=config.data['virtualenv']['pip']['packages'],
                    requirements=pip_requirements,
                    fileset_excludes=fileset_excludes) as virtual_env, \
            Packager(
                zip_file=config.data['packager']['target'],
                build_path=config.data['packager']['build_path'],
                keep=config.data['packager']['keep']) as packager:

        packer = PyLambdaPacker(virtual_env, packager, filesets)
        packer.build()
Пример #9
0
 def test_creates_build_dir(self, source_fs):
     # pylint: disable=unused-argument,no-self-use
     build_path = '/home/foo/tmp/build'
     VirtualEnv(path=build_path)
     assert os.path.exists(build_path)
Пример #10
0
 def test_exception_on_existing_build_path(self, source_fs):
     # pylint: disable=unused-argument,invalid-name,no-self-use
     build_path = '/home/foo/tmp'
     with pytest.raises(OSError):
         VirtualEnv(path=build_path)
Пример #11
0
 def test_with(self, source_fs):
     # pylint: disable=unused-argument, no-self-use
     with VirtualEnv() as venv:
         # import pdb ; pdb.set_trace()
         assert os.path.exists(venv.path)
     assert not os.path.exists(venv.path)
Пример #12
0
def virtual_env(source_fs):
    # pylint: disable=unused-argument,redefined-outer-name
    return VirtualEnv()