diff --git a/plug/pip_resolve.py b/plug/pip_resolve.py index 0f2ec2dc..00cd8dc9 100644 --- a/plug/pip_resolve.py +++ b/plug/pip_resolve.py @@ -182,7 +182,7 @@ def get_requirements_list(requirements_file_path, dev_deps=False): req_list = filter(matches_environment, req_list) req_list = filter(is_testable, req_list) req_list = filter(matches_python_version, req_list) - required = [req.name.replace('_', '-') for req in req_list] + required = [req.name.replace('_', '-') for req in req_list if req.name] return required def create_dependencies_tree_by_req_file_path(requirements_file_path, diff --git a/test/inspect.test.js b/test/inspect.test.js index 17acd552..dce19d9b 100644 --- a/test/inspect.test.js +++ b/test/inspect.test.js @@ -716,6 +716,24 @@ test('inspect pipenv app dev dependencies', function (t) { }); }); +test('package names with urls are skipped', function (t) { + return Promise.resolve().then(function () { + chdirWorkspaces('pip-app-deps-with-urls'); + var venvCreated = testUtils.ensureVirtualenv('pip-app-deps-with-urls'); + t.teardown(testUtils.activateVirtualenv('pip-app-deps-with-urls')); + if (venvCreated) { + testUtils.pipInstall(); + } + }) + .then(function () { + return plugin.inspect('.', 'requirements.txt'); + }) + .then(function (result) { + var pkg = result.package; + t.equal(Object.keys(pkg.dependencies).length, 1, '1 dependency was skipped'); + }); +}); + function chdirWorkspaces(dir) { process.chdir(path.resolve(__dirname, 'workspaces', dir)); } diff --git a/test/workspaces/pip-app-deps-with-urls/requirements.txt b/test/workspaces/pip-app-deps-with-urls/requirements.txt new file mode 100644 index 00000000..e3966b0f --- /dev/null +++ b/test/workspaces/pip-app-deps-with-urls/requirements.txt @@ -0,0 +1,2 @@ +Jinja2==2.7.2 +https://files.pythonhosted.org/packages/d0/d7/4806fd165c27716f02a3a9c23d207854b8a3ed884db53c2781b92bd8d4f4/whl.setup-0.2-py2.py3-none-any.whl