From ceba9537d1a583d619501a72c6c5311be0581b6f Mon Sep 17 00:00:00 2001 From: Mike Fiedler Date: Tue, 17 Oct 2017 08:10:47 -0400 Subject: [PATCH] Create include array for zip step if undefined Refs #16 Similar to 6c5523c0cbe2c8af941eded308662d72e3e6decf Signed-off-by: Mike Fiedler --- lib/zip.js | 4 ++++ test.bats | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/lib/zip.js b/lib/zip.js index a1f11414..3e942a33 100644 --- a/lib/zip.js +++ b/lib/zip.js @@ -1,5 +1,6 @@ const fse = require('fs-extra'); const path = require('path'); +const _ = require('lodash'); const {zipDirectory} = require('./zipService'); const BbPromise = require('bluebird'); @@ -13,6 +14,9 @@ function addVendorHelper() { if (this.options.zip) { this.serverless.cli.log('Adding Python requirements helper...'); + if (!_.get(this.serverless.service, 'package.include')) + _.set(this.serverless.service, ['package', 'include'], []); + this.serverless.service.package.include.push('unzip_requirements.py'); return fse.copyAsync( diff --git a/test.bats b/test.bats index e1b6edb1..e0593a6e 100755 --- a/test.bats +++ b/test.bats @@ -141,3 +141,10 @@ teardown() { unzip .serverless/sls-py-req-test.zip -d puck ! ls puck/hug } + +@test "py3.6 can package flask with zip option and no explicit include" { + sed -i'.bak' -e 's/zip: *false/zip: true/' -e 's/include://' -e 's/^.*handler.py//' serverless.yml + sls package + unzip .serverless/sls-py-req-test.zip -d puck + ls puck/.requirements.zip puck/unzip_requirements.py +}