Add support for detecting Python from Pipenv files (#221)

Added the ability to enable the Python module based on the existence of the a `Pipfile`.
This commit is contained in:
Thomas O'Donnell 2019-08-22 00:54:22 +02:00 committed by Kevin Song
parent 360ea988e5
commit 1478f8c2e9
3 changed files with 25 additions and 1 deletions

View File

@ -421,6 +421,7 @@ The module will be shown if any of the following conditions are met:
- The current directory contains a `requirements.txt` file
- The current directory contains a `pyproject.toml` file
- The current directory contains a file with the `.py` extension
- The current directory contains a `Pipfile` file
### Options

View File

@ -15,10 +15,16 @@ use super::{Context, Module};
/// - Current directory contains a `requirements.txt` file
/// - Current directory contains a `pyproject.toml` file
/// - Current directory contains a file with the `.py` extension
/// - Current directory contains a `Pipfile` file
pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> {
let is_py_project = context
.new_scan_dir()
.set_files(&["requirements.txt", ".python-version", "pyproject.toml"])
.set_files(&[
"requirements.txt",
".python-version",
"pyproject.toml",
"Pipfile",
])
.set_extensions(&["py"])
.scan();

View File

@ -57,6 +57,23 @@ fn folder_with_pyproject_toml() -> io::Result<()> {
Ok(())
}
#[test]
#[ignore]
fn folder_with_pipfile() -> io::Result<()> {
let dir = common::new_tempdir()?;
File::create(dir.path().join("Pipfile"))?;
let output = common::render_module("python")
.arg("--path")
.arg(dir.path())
.output()?;
let actual = String::from_utf8(output.stdout).unwrap();
let expected = format!("via {} ", Color::Yellow.bold().paint("🐍 v3.6.9"));
assert_eq!(expected, actual);
Ok(())
}
#[test]
#[ignore]
fn folder_with_py_file() -> io::Result<()> {