diff --git a/lib/detect.js b/lib/detect.js index 7ea047bb8b..3fb5aeaef9 100644 --- a/lib/detect.js +++ b/lib/detect.js @@ -16,6 +16,7 @@ var DETECTABLE_FILES = [ 'pom.xml', 'build.gradle', 'build.sbt', + 'Pipfile', 'requirements.txt', 'Gopkg.lock', 'vendor/vendor.json', @@ -35,6 +36,7 @@ var DETECTABLE_PACKAGE_MANAGERS = { 'build.gradle': 'gradle', 'build.sbt': 'sbt', 'yarn.lock': 'yarn', + Pipfile: 'pip', 'requirements.txt': 'pip', 'Gopkg.lock': 'golangdep', 'vendor.json': 'govendor', diff --git a/package.json b/package.json index 2fa0eebfe5..a03d4ed839 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "snyk-nuget-plugin": "1.6.3", "snyk-php-plugin": "1.5.1", "snyk-policy": "1.12.0", - "snyk-python-plugin": "1.6.1", + "snyk-python-plugin": "1.8.0", "snyk-resolve": "1.0.1", "snyk-resolve-deps": "3.1.0", "snyk-sbt-plugin": "1.3.0", diff --git a/test/acceptance/cli.acceptance.test.js b/test/acceptance/cli.acceptance.test.js index 66565da3d0..11ca3dfa96 100644 --- a/test/acceptance/cli.acceptance.test.js +++ b/test/acceptance/cli.acceptance.test.js @@ -543,6 +543,41 @@ function (t) { }); }); +test('`test pipenv-app --file=Pipfile`', +function (t) { + chdirWorkspaces(); + var plugin = { + inspect: function () { + return Promise.resolve({package: {}}); + }, + }; + sinon.spy(plugin, 'inspect'); + + sinon.stub(plugins, 'loadPlugin'); + t.teardown(plugins.loadPlugin.restore); + plugins.loadPlugin + .withArgs('pip') + .returns(plugin); + + return cli.test('pipenv-app', { + file: 'Pipfile', + }) + .then(function () { + var req = server.popRequest(); + t.equal(req.method, 'POST', 'makes POST request'); + t.match(req.url, '/vuln/pip', 'posts to correct url'); + t.same(plugin.inspect.getCall(0).args, + ['pipenv-app', 'Pipfile', { + args: null, + file: 'Pipfile', + org: null, + packageManager: 'pip', + path: 'pipenv-app', + showVulnPaths: true, + }], 'calls python plugin'); + }); +}); + test('`test nuget-app --file=project.assets.json`', function (t) { chdirWorkspaces(); var plugin = { diff --git a/test/acceptance/workspaces/pipenv-app/Pipfile b/test/acceptance/workspaces/pipenv-app/Pipfile new file mode 100644 index 0000000000..5b44da8b8c --- /dev/null +++ b/test/acceptance/workspaces/pipenv-app/Pipfile @@ -0,0 +1,11 @@ +[[source]] +url = "https://pypi.org/simple" +verify_ssl = true +name = "pypi" + +[packages] +"Jinja2" = "*" + +[dev-packages] + +[requires]