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']
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
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'])
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' ]
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'])
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' ]
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)
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()
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)
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)
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)
def virtual_env(source_fs): # pylint: disable=unused-argument,redefined-outer-name return VirtualEnv()