From 1b5c6f8e74871814dde8b8c97b57e71c83553c88 Mon Sep 17 00:00:00 2001 From: Don Jayamanne Date: Fri, 12 Jul 2024 12:09:41 +1000 Subject: [PATCH 01/11] Drop test reporter --- crates/pet-conda/tests/ci_test.rs | 83 ++++++++++++----------- crates/pet-pyenv/tests/pyenv_test.rs | 41 ++++++----- crates/pet-reporter/src/lib.rs | 1 - crates/pet-reporter/src/test.rs | 59 ---------------- crates/pet/tests/ci_homebrew_container.rs | 7 +- crates/pet/tests/ci_jupyter_container.rs | 7 +- crates/pet/tests/ci_poetry.rs | 24 ++++--- crates/pet/tests/ci_test.rs | 30 +++----- 8 files changed, 96 insertions(+), 156 deletions(-) delete mode 100644 crates/pet-reporter/src/test.rs diff --git a/crates/pet-conda/tests/ci_test.rs b/crates/pet-conda/tests/ci_test.rs index 3f44703f..83f537ca 100644 --- a/crates/pet-conda/tests/ci_test.rs +++ b/crates/pet-conda/tests/ci_test.rs @@ -28,27 +28,28 @@ fn detect_conda_root() { manager::EnvManagerType, os_environment::EnvironmentApi, python_environment::PythonEnvironmentKind, Locator, }; - use pet_reporter::test::create_reporter; + use pet_reporter::collect; setup(); let env = EnvironmentApi::new(); - let reporter = create_reporter(); + let reporter = collect::create_reporter(); let conda = Conda::from(&env); conda.find(&reporter); - let result = reporter.get_result(); - assert_eq!(result.managers.len(), 1); + let environments = reporter.environments.lock().unwrap().clone(); + let managers = reporter.managers.lock().unwrap().clone(); + + assert_eq!(managers.len(), 1); let info = get_conda_info(); let conda_dir = PathBuf::from(info.conda_prefix.clone()); - let manager = &result.managers[0]; + let manager = &managers[0]; assert_eq!(manager.executable, conda_dir.join("bin").join("conda")); assert_eq!(manager.tool, EnvManagerType::Conda); assert_eq!(manager.version, info.conda_version.into()); - let env = &result - .environments + let env = &environments .iter() .find(|e| e.name == Some("base".into())) .unwrap(); @@ -107,7 +108,7 @@ fn detect_new_conda_env() { use pet_core::{ os_environment::EnvironmentApi, python_environment::PythonEnvironmentKind, Locator, }; - use pet_reporter::test::create_reporter; + use pet_reporter::collect; use std::path::PathBuf; setup(); @@ -119,24 +120,25 @@ fn detect_new_conda_env() { let env = EnvironmentApi::new(); let conda = Conda::from(&env); - let reporter = create_reporter(); + let reporter = collect::create_reporter(); conda.find(&reporter); - let result = reporter.get_result(); - assert_eq!(result.managers.len(), 1); + let environments = reporter.environments.lock().unwrap().clone(); + let managers = reporter.managers.lock().unwrap().clone(); + + assert_eq!(managers.len(), 1); - let manager = &result.managers[0]; + let manager = &managers[0]; let info = get_conda_info(); let conda_dir = PathBuf::from(info.conda_prefix.clone()); - let env = result - .environments + let env = environments .iter() .find(|x| x.name == Some(env_name.into())) .expect( format!( "New Environment not created, detected envs {:?}", - result.environments + environments ) .as_str(), ); @@ -211,7 +213,7 @@ fn detect_new_conda_env_without_python() { use pet_core::{ os_environment::EnvironmentApi, python_environment::PythonEnvironmentKind, Locator, }; - use pet_reporter::test::create_reporter; + use pet_reporter::collect; use std::path::PathBuf; setup(); @@ -220,24 +222,25 @@ fn detect_new_conda_env_without_python() { let env = EnvironmentApi::new(); let conda = Conda::from(&env); - let reporter = create_reporter(); + let reporter = collect::create_reporter(); conda.find(&reporter); - let result = reporter.get_result(); - assert_eq!(result.managers.len(), 1); + let environments = reporter.environments.lock().unwrap().clone(); + let managers = reporter.managers.lock().unwrap().clone(); + + assert_eq!(managers.len(), 1); - let manager = &result.managers[0]; + let manager = &managers[0]; let info = get_conda_info(); let conda_dir = PathBuf::from(info.conda_prefix.clone()); - let env = result - .environments + let env = environments .iter() .find(|x| x.name == Some(env_name.into())) .expect( format!( "New Environment not created, detected envs {:?}", - result.environments + environments ) .as_str(), ); @@ -262,7 +265,7 @@ fn detect_new_conda_env_created_with_p_flag_without_python() { use pet_core::{ os_environment::EnvironmentApi, python_environment::PythonEnvironmentKind, Locator, }; - use pet_reporter::test::create_reporter; + use pet_reporter::collect; setup(); let env_name = "env_without_python3"; @@ -271,22 +274,23 @@ fn detect_new_conda_env_created_with_p_flag_without_python() { let env = EnvironmentApi::new(); let conda = Conda::from(&env); - let reporter = create_reporter(); + let reporter = collect::create_reporter(); conda.find(&reporter); - let result = reporter.get_result(); - assert_eq!(result.managers.len(), 1); + let environments = reporter.environments.lock().unwrap().clone(); + let managers = reporter.managers.lock().unwrap().clone(); - let manager = &result.managers[0]; + assert_eq!(managers.len(), 1); - let env = result - .environments + let manager = &managers[0]; + + let env = environments .iter() .find(|x| x.prefix == Some(prefix.clone())) .expect( format!( "New Environment ({:?}) not created, detected envs {:?}", - prefix, result.environments + prefix, environments ) .as_str(), ); @@ -310,7 +314,7 @@ fn detect_new_conda_env_created_with_p_flag_with_python() { use pet_core::{ os_environment::EnvironmentApi, python_environment::PythonEnvironmentKind, Locator, }; - use pet_reporter::test::create_reporter; + use pet_reporter::collect; setup(); let env_name = "env_with_python3"; @@ -323,22 +327,23 @@ fn detect_new_conda_env_created_with_p_flag_with_python() { let env = EnvironmentApi::new(); let conda = Conda::from(&env); - let reporter = create_reporter(); + let reporter = collect::create_reporter(); conda.find(&reporter); - let result = reporter.get_result(); - assert_eq!(result.managers.len(), 1); + let environments = reporter.environments.lock().unwrap().clone(); + let managers = reporter.managers.lock().unwrap().clone(); + + assert_eq!(managers.len(), 1); - let manager = &result.managers[0]; + let manager = &managers[0]; - let env = result - .environments + let env = environments .iter() .find(|x| x.prefix == Some(prefix.clone())) .expect( format!( "New Environment not created, detected envs {:?}", - result.environments + environments ) .as_str(), ); diff --git a/crates/pet-pyenv/tests/pyenv_test.rs b/crates/pet-pyenv/tests/pyenv_test.rs index e03b3937..9b876219 100644 --- a/crates/pet-pyenv/tests/pyenv_test.rs +++ b/crates/pet-pyenv/tests/pyenv_test.rs @@ -11,7 +11,7 @@ fn does_not_find_any_pyenv_envs() { use pet_core::{self, Locator}; use pet_pyenv; use pet_pyenv::PyEnv; - use pet_reporter::test::create_reporter; + use pet_reporter::collect; use std::{collections::HashMap, path::PathBuf, sync::Arc}; let environment = create_test_environment( @@ -23,12 +23,14 @@ fn does_not_find_any_pyenv_envs() { let conda = Arc::new(Conda::from(&environment)); let locator = PyEnv::from(&environment, conda); - let reporter = create_reporter(); + let reporter = collect::create_reporter(); locator.find(&reporter); - let result = reporter.get_result(); - assert_eq!(result.managers.is_empty(), true); - assert_eq!(result.environments.is_empty(), true); + let environments = reporter.environments.lock().unwrap().clone(); + let managers = reporter.managers.lock().unwrap().clone(); + + assert_eq!(managers.is_empty(), true); + assert_eq!(environments.is_empty(), true); } #[test] @@ -44,7 +46,7 @@ fn does_not_find_any_pyenv_envs_even_with_pyenv_installed() { }; use pet_pyenv; use pet_pyenv::PyEnv; - use pet_reporter::test::create_reporter; + use pet_reporter::collect; use serde_json::json; use std::{collections::HashMap, path::PathBuf, sync::Arc}; @@ -67,11 +69,12 @@ fn does_not_find_any_pyenv_envs_even_with_pyenv_installed() { let conda = Arc::new(Conda::from(&environment)); let locator = PyEnv::from(&environment, conda); - let reporter = create_reporter(); + let reporter = collect::create_reporter(); locator.find(&reporter); - let result = reporter.get_result(); - let managers = result.clone().managers; + let environments = reporter.environments.lock().unwrap().clone(); + let managers = reporter.managers.lock().unwrap().clone(); + assert_eq!(managers.len(), 1); let expected_manager = EnvManager { @@ -79,7 +82,7 @@ fn does_not_find_any_pyenv_envs_even_with_pyenv_installed() { version: None, tool: EnvManagerType::Pyenv, }; - assert_eq!(json!(expected_manager), json!(result.managers[0])); + assert_eq!(json!(expected_manager), json!(managers[0])); } #[test] @@ -97,7 +100,7 @@ fn find_pyenv_envs() { }; use pet_pyenv; use pet_pyenv::PyEnv; - use pet_reporter::test::create_reporter; + use pet_reporter::collect; use serde_json::json; use std::{collections::HashMap, path::PathBuf, sync::Arc}; @@ -123,11 +126,13 @@ fn find_pyenv_envs() { let conda = Arc::new(Conda::from(&environment)); let locator = PyEnv::from(&environment, conda); - let reporter = create_reporter(); + let reporter = collect::create_reporter(); locator.find(&reporter); - let mut result = reporter.get_result(); - assert_eq!(result.managers.len(), 2); + let mut environments = reporter.environments.lock().unwrap().clone(); + let mut managers = reporter.managers.lock().unwrap().clone(); + + assert_eq!(managers.len(), 2); let expected_pyenv_manager = EnvManager { executable: pyenv_exe.clone(), @@ -144,9 +149,9 @@ fn find_pyenv_envs() { expected_pyenv_manager.clone(), expected_conda_manager.clone(), ]; - result.managers.sort(); + managers.sort(); expected.sort(); - assert_eq!(expected, result.managers); + assert_eq!(expected, managers); let expected_3_9_9 = PythonEnvironment { display_name: None, @@ -356,8 +361,8 @@ fn find_pyenv_envs() { expected_pypy, ]; expected_envs.sort(); - result.environments.sort(); - assert_eq!(json!(expected_envs), json!(result.environments)); + environments.sort(); + assert_eq!(json!(expected_envs), json!(environments)); } #[test] diff --git a/crates/pet-reporter/src/lib.rs b/crates/pet-reporter/src/lib.rs index 31fb37b4..82280be9 100644 --- a/crates/pet-reporter/src/lib.rs +++ b/crates/pet-reporter/src/lib.rs @@ -6,4 +6,3 @@ pub mod collect; pub mod environment; pub mod jsonrpc; pub mod stdio; -pub mod test; diff --git a/crates/pet-reporter/src/test.rs b/crates/pet-reporter/src/test.rs deleted file mode 100644 index cba3f92c..00000000 --- a/crates/pet-reporter/src/test.rs +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -use crate::environment::get_environment_key; -use pet_core::LocatorResult; -use pet_core::{manager::EnvManager, python_environment::PythonEnvironment, reporter::Reporter}; -use std::collections::HashMap; -use std::{ - path::PathBuf, - sync::{Arc, Mutex}, -}; - -pub struct TestReporter { - managers: Arc>>, - environments: Arc>>, -} - -impl TestReporter { - pub fn get_result(&self) -> LocatorResult { - LocatorResult { - managers: self.managers.lock().unwrap().values().cloned().collect(), - environments: self - .environments - .lock() - .unwrap() - .values() - .cloned() - .collect(), - } - } -} - -impl Reporter for TestReporter { - fn report_telemetry(&self, _event: &pet_core::telemetry::TelemetryEvent) { - // - } - fn report_manager(&self, manager: &EnvManager) { - let mut reported_managers = self.managers.lock().unwrap(); - reported_managers.insert(manager.executable.clone(), manager.clone()); - } - - fn report_environment(&self, env: &PythonEnvironment) { - if let Some(key) = get_environment_key(env) { - let mut reported_environments = self.environments.lock().unwrap(); - // TODO: Sometimes its possible the exe here is actually some symlink that we have no idea about. - // Hence we'll need to go through the list of reported envs and see if we can find a match. - // If we do find a match, then ensure we update the symlinks - // & if necessary update the other information. - reported_environments.insert(key.clone(), env.clone()); - } - } -} - -pub fn create_reporter() -> TestReporter { - TestReporter { - managers: Arc::new(Mutex::new(HashMap::new())), - environments: Arc::new(Mutex::new(HashMap::new())), - } -} diff --git a/crates/pet/tests/ci_homebrew_container.rs b/crates/pet/tests/ci_homebrew_container.rs index 8eaaa7c3..bff2a2e2 100644 --- a/crates/pet/tests/ci_homebrew_container.rs +++ b/crates/pet/tests/ci_homebrew_container.rs @@ -14,10 +14,10 @@ fn verify_python_in_homebrew_contaner() { python_environment::{PythonEnvironment, PythonEnvironmentKind}, }; use pet_poetry::Poetry; - use pet_reporter::test; + use pet_reporter::collect; use std::{path::PathBuf, sync::Arc}; - let reporter = test::create_reporter(); + let reporter = collect::create_reporter(); let environment = EnvironmentApi::new(); let conda_locator = Arc::new(Conda::from(&environment)); let poetry_locator = Arc::new(Poetry::from(&environment)); @@ -29,9 +29,8 @@ fn verify_python_in_homebrew_contaner() { &environment, None, ); - let result = reporter.get_result(); - let environments = result.environments; + let environments = reporter.environments.lock().unwrap().clone(); let python3_12 = PythonEnvironment { kind: Some(PythonEnvironmentKind::Homebrew), diff --git a/crates/pet/tests/ci_jupyter_container.rs b/crates/pet/tests/ci_jupyter_container.rs index 41428dee..0d9e5361 100644 --- a/crates/pet/tests/ci_jupyter_container.rs +++ b/crates/pet/tests/ci_jupyter_container.rs @@ -30,12 +30,12 @@ fn verify_python_in_jupyter_contaner() { python_environment::{PythonEnvironment, PythonEnvironmentKind}, }; use pet_poetry::Poetry; - use pet_reporter::test; + use pet_reporter::collect; use std::{path::PathBuf, sync::Arc}; setup(); - let reporter = test::create_reporter(); + let reporter = collect::create_reporter(); let environment = EnvironmentApi::new(); let conda_locator = Arc::new(Conda::from(&environment)); let poetry_locator = Arc::new(Poetry::from(&environment)); @@ -47,9 +47,8 @@ fn verify_python_in_jupyter_contaner() { &environment, None, ); - let result = reporter.get_result(); - let environments = result.environments; + let environments = reporter.environments.lock().unwrap().clone(); let conda = PythonEnvironment { kind: Some(PythonEnvironmentKind::Conda), diff --git a/crates/pet/tests/ci_poetry.rs b/crates/pet/tests/ci_poetry.rs index caa62ed7..19cc1f6a 100644 --- a/crates/pet/tests/ci_poetry.rs +++ b/crates/pet/tests/ci_poetry.rs @@ -2,6 +2,7 @@ // Licensed under the MIT License. use pet_poetry::Poetry; +use pet_reporter::collect; mod common; @@ -17,11 +18,10 @@ fn verify_ci_poetry_global() { python_environment::{PythonEnvironment, PythonEnvironmentKind}, Configuration, }; - use pet_reporter::test; use std::{env, path::PathBuf, sync::Arc}; let workspace_dir = PathBuf::from(env::var("GITHUB_WORKSPACE").unwrap_or_default()); - let reporter = test::create_reporter(); + let reporter = collect::create_reporter(); let environment = EnvironmentApi::new(); let conda_locator = Arc::new(Conda::from(&environment)); let poetry_locator = Arc::new(Poetry::from(&environment)); @@ -34,14 +34,15 @@ fn verify_ci_poetry_global() { find_and_report_envs(&reporter, Default::default(), &locators, &environment, None); - let result = reporter.get_result(); - - let environments = result.environments; + let environments = reporter.environments.lock().unwrap().clone(); // On CI the poetry manager is installed using wsl, and the path isn't available on windows if std::env::consts::OS != "windows" { - result + reporter .managers + .lock() + .unwrap() + .clone() .iter() .find(|m| m.tool == EnvManagerType::Poetry) .expect("Poetry manager not found"); @@ -83,7 +84,7 @@ fn verify_ci_poetry_project() { use std::{env, path::PathBuf, sync::Arc}; let workspace_dir = PathBuf::from(env::var("GITHUB_WORKSPACE").unwrap_or_default()); - let reporter = test::create_reporter(); + let reporter = collect::create_reporter(); let environment = EnvironmentApi::new(); let conda_locator = Arc::new(Conda::from(&environment)); let poetry_locator = Arc::new(Poetry::from(&environment)); @@ -96,14 +97,15 @@ fn verify_ci_poetry_project() { find_and_report_envs(&reporter, Default::default(), &locators, &environment, None); - let result = reporter.get_result(); - - let environments = result.environments; + let environments = reporter.environments.lock().unwrap().clone(); // On CI the poetry manager is installed using wsl, and the path isn't available on windows if std::env::consts::OS != "windows" { - result + reporter .managers + .lock() + .unwrap() + .clone() .iter() .find(|m| m.tool == EnvManagerType::Poetry) .expect("Poetry manager not found"); diff --git a/crates/pet/tests/ci_test.rs b/crates/pet/tests/ci_test.rs index 154dc464..9a5fee6b 100644 --- a/crates/pet/tests/ci_test.rs +++ b/crates/pet/tests/ci_test.rs @@ -66,13 +66,12 @@ fn verify_validity_of_discovered_envs() { use pet::{find::find_and_report_envs, locators::create_locators}; use pet_conda::Conda; use pet_core::{os_environment::EnvironmentApi, Configuration}; - use pet_reporter::test; use std::{env, sync::Arc, thread}; setup(); let workspace_dir = PathBuf::from(env::var("GITHUB_WORKSPACE").unwrap_or_default()); - let reporter = test::create_reporter(); + let reporter = collect::create_reporter(); let environment = EnvironmentApi::new(); let conda_locator = Arc::new(Conda::from(&environment)); let poetry_locator = Arc::new(Poetry::from(&environment)); @@ -85,9 +84,8 @@ fn verify_validity_of_discovered_envs() { // Find all environments on this machine. find_and_report_envs(&reporter, Default::default(), &locators, &environment, None); - let result = reporter.get_result(); - let environments = result.environments; + let environments = reporter.environments.lock().unwrap().clone(); let mut threads = vec![]; for environment in environments { if environment.executable.is_none() { @@ -134,11 +132,10 @@ fn check_if_virtualenvwrapper_exists() { use pet::{find::find_and_report_envs, locators::create_locators}; use pet_conda::Conda; use pet_core::os_environment::EnvironmentApi; - use pet_reporter::test; use std::sync::Arc; setup(); - let reporter = test::create_reporter(); + let reporter = collect::create_reporter(); let environment = EnvironmentApi::new(); let conda_locator = Arc::new(Conda::from(&environment)); let poetry_locator = Arc::new(Poetry::from(&environment)); @@ -151,8 +148,7 @@ fn check_if_virtualenvwrapper_exists() { None, ); - let result = reporter.get_result(); - let environments = result.environments; + let environments = reporter.environments.lock().unwrap().clone(); assert!( environments.iter().any( @@ -177,11 +173,10 @@ fn check_if_pipenv_exists() { use pet::{find::find_and_report_envs, locators::create_locators}; use pet_conda::Conda; use pet_core::os_environment::EnvironmentApi; - use pet_reporter::test; use std::{env, sync::Arc}; setup(); - let reporter = test::create_reporter(); + let reporter = collect::create_reporter(); let environment = EnvironmentApi::new(); let conda_locator = Arc::new(Conda::from(&environment)); let poetry_locator = Arc::new(Poetry::from(&environment)); @@ -194,8 +189,7 @@ fn check_if_pipenv_exists() { None, ); - let result = reporter.get_result(); - let environments = result.environments; + let environments = reporter.environments.lock().unwrap().clone(); let workspace_dir = PathBuf::from(env::var("GITHUB_WORKSPACE").unwrap_or_default()); environments @@ -216,11 +210,10 @@ fn check_if_pyenv_virtualenv_exists() { use pet::{find::find_and_report_envs, locators::create_locators}; use pet_conda::Conda; use pet_core::os_environment::EnvironmentApi; - use pet_reporter::test; use std::sync::Arc; setup(); - let reporter = test::create_reporter(); + let reporter = collect::create_reporter(); let environment = EnvironmentApi::new(); let conda_locator = Arc::new(Conda::from(&environment)); let poetry_locator = Arc::new(Poetry::from(&environment)); @@ -233,8 +226,7 @@ fn check_if_pyenv_virtualenv_exists() { None, ); - let result = reporter.get_result(); - let environments = result.environments; + let environments = reporter.environments.lock().unwrap().clone(); assert!( environments.iter().any( @@ -646,11 +638,10 @@ fn verify_bin_usr_bin_user_local_are_separate_python_envs() { use pet::{find::find_and_report_envs, locators::create_locators}; use pet_conda::Conda; use pet_core::os_environment::EnvironmentApi; - use pet_reporter::test; use std::sync::Arc; setup(); - let reporter = test::create_reporter(); + let reporter = collect::create_reporter(); let environment = EnvironmentApi::new(); let conda_locator = Arc::new(Conda::from(&environment)); let poetry_locator = Arc::new(Poetry::from(&environment)); @@ -663,8 +654,7 @@ fn verify_bin_usr_bin_user_local_are_separate_python_envs() { None, ); - let result = reporter.get_result(); - let environments = result.environments; + let environments = reporter.environments.lock().unwrap().clone(); // Python env /bin/python cannot have symlinks in /usr/bin or /usr/local // Python env /usr/bin/python cannot have symlinks /bin or /usr/local From 5e14bc2b755a3c737be3d17951b6226c1a02e3ee Mon Sep 17 00:00:00 2001 From: Don Jayamanne Date: Fri, 12 Jul 2024 14:02:01 +1000 Subject: [PATCH 02/11] oops --- crates/pet/tests/ci_poetry.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/crates/pet/tests/ci_poetry.rs b/crates/pet/tests/ci_poetry.rs index 19cc1f6a..4ac333a2 100644 --- a/crates/pet/tests/ci_poetry.rs +++ b/crates/pet/tests/ci_poetry.rs @@ -80,7 +80,6 @@ fn verify_ci_poetry_project() { python_environment::{PythonEnvironment, PythonEnvironmentKind}, Configuration, }; - use pet_reporter::test; use std::{env, path::PathBuf, sync::Arc}; let workspace_dir = PathBuf::from(env::var("GITHUB_WORKSPACE").unwrap_or_default()); From 28c392a7be17774b97e426a99f2bc0cbe3c655b3 Mon Sep 17 00:00:00 2001 From: Don Jayamanne Date: Fri, 12 Jul 2024 14:14:06 +1000 Subject: [PATCH 03/11] fix tests --- crates/pet-conda/tests/ci_test.rs | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/crates/pet-conda/tests/ci_test.rs b/crates/pet-conda/tests/ci_test.rs index 83f537ca..b53e03a7 100644 --- a/crates/pet-conda/tests/ci_test.rs +++ b/crates/pet-conda/tests/ci_test.rs @@ -40,8 +40,6 @@ fn detect_conda_root() { let environments = reporter.environments.lock().unwrap().clone(); let managers = reporter.managers.lock().unwrap().clone(); - assert_eq!(managers.len(), 1); - let info = get_conda_info(); let conda_dir = PathBuf::from(info.conda_prefix.clone()); let manager = &managers[0]; @@ -126,8 +124,6 @@ fn detect_new_conda_env() { let environments = reporter.environments.lock().unwrap().clone(); let managers = reporter.managers.lock().unwrap().clone(); - assert_eq!(managers.len(), 1); - let manager = &managers[0]; let info = get_conda_info(); @@ -228,8 +224,6 @@ fn detect_new_conda_env_without_python() { let environments = reporter.environments.lock().unwrap().clone(); let managers = reporter.managers.lock().unwrap().clone(); - assert_eq!(managers.len(), 1); - let manager = &managers[0]; let info = get_conda_info(); @@ -280,8 +274,6 @@ fn detect_new_conda_env_created_with_p_flag_without_python() { let environments = reporter.environments.lock().unwrap().clone(); let managers = reporter.managers.lock().unwrap().clone(); - assert_eq!(managers.len(), 1); - let manager = &managers[0]; let env = environments @@ -333,8 +325,6 @@ fn detect_new_conda_env_created_with_p_flag_with_python() { let environments = reporter.environments.lock().unwrap().clone(); let managers = reporter.managers.lock().unwrap().clone(); - assert_eq!(managers.len(), 1); - let manager = &managers[0]; let env = environments From 78ebd14530a63497e00490b1dd5b87aba7b05f5b Mon Sep 17 00:00:00 2001 From: Don Jayamanne Date: Fri, 12 Jul 2024 14:28:47 +1000 Subject: [PATCH 04/11] fixes --- crates/pet-conda/tests/ci_test.rs | 10 ++++---- crates/pet-pyenv/tests/pyenv_test.rs | 6 ++--- crates/pet/tests/ci_homebrew_container.rs | 6 ++--- crates/pet/tests/ci_jupyter_container.rs | 6 ++--- crates/pet/tests/ci_poetry.rs | 14 +++++++--- crates/pet/tests/ci_test.rs | 31 +++++++++++++++-------- 6 files changed, 44 insertions(+), 29 deletions(-) diff --git a/crates/pet-conda/tests/ci_test.rs b/crates/pet-conda/tests/ci_test.rs index b53e03a7..28b3a36c 100644 --- a/crates/pet-conda/tests/ci_test.rs +++ b/crates/pet-conda/tests/ci_test.rs @@ -33,7 +33,7 @@ fn detect_conda_root() { setup(); let env = EnvironmentApi::new(); - let reporter = collect::create_reporter(); + let reporter = Arc::new(collect::create_reporter()); let conda = Conda::from(&env); conda.find(&reporter); @@ -118,7 +118,7 @@ fn detect_new_conda_env() { let env = EnvironmentApi::new(); let conda = Conda::from(&env); - let reporter = collect::create_reporter(); + let reporter = Arc::new(collect::create_reporter()); conda.find(&reporter); let environments = reporter.environments.lock().unwrap().clone(); @@ -218,7 +218,7 @@ fn detect_new_conda_env_without_python() { let env = EnvironmentApi::new(); let conda = Conda::from(&env); - let reporter = collect::create_reporter(); + let reporter = Arc::new(collect::create_reporter()); conda.find(&reporter); let environments = reporter.environments.lock().unwrap().clone(); @@ -268,7 +268,7 @@ fn detect_new_conda_env_created_with_p_flag_without_python() { let env = EnvironmentApi::new(); let conda = Conda::from(&env); - let reporter = collect::create_reporter(); + let reporter = Arc::new(collect::create_reporter()); conda.find(&reporter); let environments = reporter.environments.lock().unwrap().clone(); @@ -319,7 +319,7 @@ fn detect_new_conda_env_created_with_p_flag_with_python() { let env = EnvironmentApi::new(); let conda = Conda::from(&env); - let reporter = collect::create_reporter(); + let reporter = Arc::new(collect::create_reporter()); conda.find(&reporter); let environments = reporter.environments.lock().unwrap().clone(); diff --git a/crates/pet-pyenv/tests/pyenv_test.rs b/crates/pet-pyenv/tests/pyenv_test.rs index 9b876219..6dca0afd 100644 --- a/crates/pet-pyenv/tests/pyenv_test.rs +++ b/crates/pet-pyenv/tests/pyenv_test.rs @@ -23,7 +23,7 @@ fn does_not_find_any_pyenv_envs() { let conda = Arc::new(Conda::from(&environment)); let locator = PyEnv::from(&environment, conda); - let reporter = collect::create_reporter(); + let reporter = Arc::new(collect::create_reporter()); locator.find(&reporter); let environments = reporter.environments.lock().unwrap().clone(); @@ -69,7 +69,7 @@ fn does_not_find_any_pyenv_envs_even_with_pyenv_installed() { let conda = Arc::new(Conda::from(&environment)); let locator = PyEnv::from(&environment, conda); - let reporter = collect::create_reporter(); + let reporter = Arc::new(collect::create_reporter()); locator.find(&reporter); let environments = reporter.environments.lock().unwrap().clone(); @@ -126,7 +126,7 @@ fn find_pyenv_envs() { let conda = Arc::new(Conda::from(&environment)); let locator = PyEnv::from(&environment, conda); - let reporter = collect::create_reporter(); + let reporter = Arc::new(collect::create_reporter()); locator.find(&reporter); let mut environments = reporter.environments.lock().unwrap().clone(); diff --git a/crates/pet/tests/ci_homebrew_container.rs b/crates/pet/tests/ci_homebrew_container.rs index bff2a2e2..9adf0f0b 100644 --- a/crates/pet/tests/ci_homebrew_container.rs +++ b/crates/pet/tests/ci_homebrew_container.rs @@ -14,16 +14,16 @@ fn verify_python_in_homebrew_contaner() { python_environment::{PythonEnvironment, PythonEnvironmentKind}, }; use pet_poetry::Poetry; - use pet_reporter::collect; + use pet_reporter::{cache, collect}; use std::{path::PathBuf, sync::Arc}; - let reporter = collect::create_reporter(); + let reporter = Arc::new(collect::create_reporter()); let environment = EnvironmentApi::new(); let conda_locator = Arc::new(Conda::from(&environment)); let poetry_locator = Arc::new(Poetry::from(&environment)); find_and_report_envs( - &reporter, + &cache::CacheReporter::new(reporter.clone()), Default::default(), &create_locators(conda_locator.clone(), poetry_locator.clone(), &environment), &environment, diff --git a/crates/pet/tests/ci_jupyter_container.rs b/crates/pet/tests/ci_jupyter_container.rs index 0d9e5361..1033e585 100644 --- a/crates/pet/tests/ci_jupyter_container.rs +++ b/crates/pet/tests/ci_jupyter_container.rs @@ -30,18 +30,18 @@ fn verify_python_in_jupyter_contaner() { python_environment::{PythonEnvironment, PythonEnvironmentKind}, }; use pet_poetry::Poetry; - use pet_reporter::collect; + use pet_reporter::{cache, collect}; use std::{path::PathBuf, sync::Arc}; setup(); - let reporter = collect::create_reporter(); + let reporter = Arc::new(collect::create_reporter()); let environment = EnvironmentApi::new(); let conda_locator = Arc::new(Conda::from(&environment)); let poetry_locator = Arc::new(Poetry::from(&environment)); find_and_report_envs( - &reporter, + &cache::CacheReporter::new(reporter.clone()), Default::default(), &create_locators(conda_locator.clone(), poetry_locator.clone(), &environment), &environment, diff --git a/crates/pet/tests/ci_poetry.rs b/crates/pet/tests/ci_poetry.rs index 4ac333a2..375a2a04 100644 --- a/crates/pet/tests/ci_poetry.rs +++ b/crates/pet/tests/ci_poetry.rs @@ -2,7 +2,7 @@ // Licensed under the MIT License. use pet_poetry::Poetry; -use pet_reporter::collect; +use pet_reporter::{cache, collect}; mod common; @@ -21,7 +21,7 @@ fn verify_ci_poetry_global() { use std::{env, path::PathBuf, sync::Arc}; let workspace_dir = PathBuf::from(env::var("GITHUB_WORKSPACE").unwrap_or_default()); - let reporter = collect::create_reporter(); + let reporter = Arc::new(collect::create_reporter()); let environment = EnvironmentApi::new(); let conda_locator = Arc::new(Conda::from(&environment)); let poetry_locator = Arc::new(Poetry::from(&environment)); @@ -32,7 +32,13 @@ fn verify_ci_poetry_global() { locator.configure(&config); } - find_and_report_envs(&reporter, Default::default(), &locators, &environment, None); + find_and_report_envs( + &cache::CacheReporter::new(reporter.clone()), + Default::default(), + &locators, + &environment, + None, + ); let environments = reporter.environments.lock().unwrap().clone(); @@ -83,7 +89,7 @@ fn verify_ci_poetry_project() { use std::{env, path::PathBuf, sync::Arc}; let workspace_dir = PathBuf::from(env::var("GITHUB_WORKSPACE").unwrap_or_default()); - let reporter = collect::create_reporter(); + let reporter = Arc::new(collect::create_reporter()); let environment = EnvironmentApi::new(); let conda_locator = Arc::new(Conda::from(&environment)); let poetry_locator = Arc::new(Poetry::from(&environment)); diff --git a/crates/pet/tests/ci_test.rs b/crates/pet/tests/ci_test.rs index 9a5fee6b..fde7c0a0 100644 --- a/crates/pet/tests/ci_test.rs +++ b/crates/pet/tests/ci_test.rs @@ -17,7 +17,10 @@ use pet_core::{ use pet_env_var_path::get_search_paths_from_env_variables; use pet_poetry::Poetry; use pet_python_utils::env::PythonEnv; -use pet_reporter::{cache::CacheReporter, collect}; +use pet_reporter::{ + cache::{self, CacheReporter}, + collect, +}; use regex::Regex; use serde::Deserialize; @@ -71,7 +74,7 @@ fn verify_validity_of_discovered_envs() { setup(); let workspace_dir = PathBuf::from(env::var("GITHUB_WORKSPACE").unwrap_or_default()); - let reporter = collect::create_reporter(); + let reporter = Arc::new(collect::create_reporter()); let environment = EnvironmentApi::new(); let conda_locator = Arc::new(Conda::from(&environment)); let poetry_locator = Arc::new(Poetry::from(&environment)); @@ -83,7 +86,13 @@ fn verify_validity_of_discovered_envs() { } // Find all environments on this machine. - find_and_report_envs(&reporter, Default::default(), &locators, &environment, None); + find_and_report_envs( + &cache::CacheReporter::new(reporter.clone()), + Default::default(), + &locators, + &environment, + None, + ); let environments = reporter.environments.lock().unwrap().clone(); let mut threads = vec![]; @@ -135,13 +144,13 @@ fn check_if_virtualenvwrapper_exists() { use std::sync::Arc; setup(); - let reporter = collect::create_reporter(); + let reporter = Arc::new(collect::create_reporter()); let environment = EnvironmentApi::new(); let conda_locator = Arc::new(Conda::from(&environment)); let poetry_locator = Arc::new(Poetry::from(&environment)); find_and_report_envs( - &reporter, + &cache::CacheReporter::new(reporter.clone()), Default::default(), &create_locators(conda_locator.clone(), poetry_locator.clone(), &environment), &environment, @@ -176,13 +185,13 @@ fn check_if_pipenv_exists() { use std::{env, sync::Arc}; setup(); - let reporter = collect::create_reporter(); + let reporter = Arc::new(collect::create_reporter()); let environment = EnvironmentApi::new(); let conda_locator = Arc::new(Conda::from(&environment)); let poetry_locator = Arc::new(Poetry::from(&environment)); find_and_report_envs( - &reporter, + &cache::CacheReporter::new(reporter.clone()), Default::default(), &create_locators(conda_locator.clone(), poetry_locator.clone(), &environment), &environment, @@ -213,13 +222,13 @@ fn check_if_pyenv_virtualenv_exists() { use std::sync::Arc; setup(); - let reporter = collect::create_reporter(); + let reporter = Arc::new(collect::create_reporter()); let environment = EnvironmentApi::new(); let conda_locator = Arc::new(Conda::from(&environment)); let poetry_locator = Arc::new(Poetry::from(&environment)); find_and_report_envs( - &reporter, + &cache::CacheReporter::new(reporter.clone()), Default::default(), &create_locators(conda_locator.clone(), poetry_locator.clone(), &environment), &environment, @@ -641,13 +650,13 @@ fn verify_bin_usr_bin_user_local_are_separate_python_envs() { use std::sync::Arc; setup(); - let reporter = collect::create_reporter(); + let reporter = Arc::new(collect::create_reporter()); let environment = EnvironmentApi::new(); let conda_locator = Arc::new(Conda::from(&environment)); let poetry_locator = Arc::new(Poetry::from(&environment)); find_and_report_envs( - &reporter, + &cache::CacheReporter::new(reporter.clone()), Default::default(), &create_locators(conda_locator.clone(), poetry_locator.clone(), &environment), &environment, From 79a4fbfa2ef41ccc55b6a0946fb844b796864319 Mon Sep 17 00:00:00 2001 From: Don Jayamanne Date: Fri, 12 Jul 2024 14:30:38 +1000 Subject: [PATCH 05/11] comments --- crates/pet-reporter/src/cache.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/crates/pet-reporter/src/cache.rs b/crates/pet-reporter/src/cache.rs index f822f385..f5ff3844 100644 --- a/crates/pet-reporter/src/cache.rs +++ b/crates/pet-reporter/src/cache.rs @@ -9,6 +9,10 @@ use std::{ sync::{Arc, Mutex}, }; +/// Poorly named, needs to be renamed, +/// The purpose of this reporter was to act as a cache, but since then +/// the requirements of caching have changed and this is no longer a cache. +/// This is merely a decorator class that ensures we do not report the same env/manager more than once. pub struct CacheReporter { reporter: Arc, reported_managers: Arc>>, From c0f09779ca108c01d0163b8494eb49c026107a90 Mon Sep 17 00:00:00 2001 From: Don Jayamanne Date: Fri, 12 Jul 2024 14:32:55 +1000 Subject: [PATCH 06/11] wip --- crates/pet-python-utils/src/executable.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/crates/pet-python-utils/src/executable.rs b/crates/pet-python-utils/src/executable.rs index 49c88772..09cc0daf 100644 --- a/crates/pet-python-utils/src/executable.rs +++ b/crates/pet-python-utils/src/executable.rs @@ -184,6 +184,9 @@ pub fn should_search_for_environments_in_path>(path: &P) -> bool // Mostly copied from https://github.com/github/gitignore/blob/main/Python.gitignore let folders_to_ignore = [ "node_modules", + ".cargo", + ".devcontainer", + ".github", ".git", ".tox", ".nox", @@ -195,6 +198,7 @@ pub fn should_search_for_environments_in_path>(path: &P) -> bool ".pyre", ".ptype", ".pytest_cache", + ".vscode", "__pycache__", "__pypackages__", ".mypy_cache", From d7d26747e69062897afbdd6aeeb1059079f55624 Mon Sep 17 00:00:00 2001 From: Don Jayamanne Date: Fri, 12 Jul 2024 14:34:07 +1000 Subject: [PATCH 07/11] fixes --- crates/pet/tests/ci_poetry.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/crates/pet/tests/ci_poetry.rs b/crates/pet/tests/ci_poetry.rs index 375a2a04..83207646 100644 --- a/crates/pet/tests/ci_poetry.rs +++ b/crates/pet/tests/ci_poetry.rs @@ -100,7 +100,13 @@ fn verify_ci_poetry_project() { locator.configure(&config); } - find_and_report_envs(&reporter, Default::default(), &locators, &environment, None); + find_and_report_envs( + &cache::CacheReporter::new(reporter.clone()), + Default::default(), + &locators, + &environment, + None, + ); let environments = reporter.environments.lock().unwrap().clone(); From 7add8af81d20aa0ce84af9c6d3cf35dd92eacfdf Mon Sep 17 00:00:00 2001 From: Don Jayamanne Date: Fri, 12 Jul 2024 14:40:45 +1000 Subject: [PATCH 08/11] fixes --- crates/pet-conda/tests/ci_test.rs | 33 ++++++++++++++--------- crates/pet-pyenv/tests/pyenv_test.rs | 8 +++--- crates/pet/tests/ci_homebrew_container.rs | 4 +-- crates/pet/tests/ci_jupyter_container.rs | 4 +-- crates/pet/tests/ci_poetry.rs | 9 ++++--- crates/pet/tests/ci_test.rs | 10 +++---- 6 files changed, 40 insertions(+), 28 deletions(-) diff --git a/crates/pet-conda/tests/ci_test.rs b/crates/pet-conda/tests/ci_test.rs index 28b3a36c..1ea75b4d 100644 --- a/crates/pet-conda/tests/ci_test.rs +++ b/crates/pet-conda/tests/ci_test.rs @@ -23,19 +23,21 @@ fn setup() { #[allow(dead_code)] // We should detect the conda install along with the base env fn detect_conda_root() { + use std::sync::Arc; + use pet_conda::Conda; use pet_core::{ manager::EnvManagerType, os_environment::EnvironmentApi, python_environment::PythonEnvironmentKind, Locator, }; - use pet_reporter::collect; + use pet_reporter::{cache::CacheReporter, collect}; setup(); let env = EnvironmentApi::new(); let reporter = Arc::new(collect::create_reporter()); let conda = Conda::from(&env); - conda.find(&reporter); + conda.find(&CacheReporter::new(reporter.clone())); let environments = reporter.environments.lock().unwrap().clone(); let managers = reporter.managers.lock().unwrap().clone(); @@ -106,8 +108,8 @@ fn detect_new_conda_env() { use pet_core::{ os_environment::EnvironmentApi, python_environment::PythonEnvironmentKind, Locator, }; - use pet_reporter::collect; - use std::path::PathBuf; + use pet_reporter::{cache::CacheReporter, collect}; + use std::{path::PathBuf, sync::Arc}; setup(); let env_name = "env_with_python"; @@ -119,7 +121,7 @@ fn detect_new_conda_env() { let conda = Conda::from(&env); let reporter = Arc::new(collect::create_reporter()); - conda.find(&reporter); + conda.find(&CacheReporter::new(reporter.clone())); let environments = reporter.environments.lock().unwrap().clone(); let managers = reporter.managers.lock().unwrap().clone(); @@ -209,8 +211,8 @@ fn detect_new_conda_env_without_python() { use pet_core::{ os_environment::EnvironmentApi, python_environment::PythonEnvironmentKind, Locator, }; - use pet_reporter::collect; - use std::path::PathBuf; + use pet_reporter::{cache::CacheReporter, collect}; + use std::{path::PathBuf, sync::Arc}; setup(); let env_name = "env_without_python"; @@ -219,7 +221,7 @@ fn detect_new_conda_env_without_python() { let conda = Conda::from(&env); let reporter = Arc::new(collect::create_reporter()); - conda.find(&reporter); + conda.find(&CacheReporter::new(reporter.clone())); let environments = reporter.environments.lock().unwrap().clone(); let managers = reporter.managers.lock().unwrap().clone(); @@ -254,12 +256,14 @@ fn detect_new_conda_env_without_python() { #[allow(dead_code)] // Detect envs created without Python in a custom directory using the -p flag fn detect_new_conda_env_created_with_p_flag_without_python() { + use std::sync::Arc; + use common::resolve_test_path; use pet_conda::Conda; use pet_core::{ os_environment::EnvironmentApi, python_environment::PythonEnvironmentKind, Locator, }; - use pet_reporter::collect; + use pet_reporter::{cache::CacheReporter, collect}; setup(); let env_name = "env_without_python3"; @@ -269,7 +273,7 @@ fn detect_new_conda_env_created_with_p_flag_without_python() { let conda = Conda::from(&env); let reporter = Arc::new(collect::create_reporter()); - conda.find(&reporter); + conda.find(&CacheReporter::new(reporter.clone())); let environments = reporter.environments.lock().unwrap().clone(); let managers = reporter.managers.lock().unwrap().clone(); @@ -301,12 +305,17 @@ fn detect_new_conda_env_created_with_p_flag_without_python() { #[allow(dead_code)] // Detect envs created Python in a custom directory using the -p flag fn detect_new_conda_env_created_with_p_flag_with_python() { + use std::sync::Arc; + use common::resolve_test_path; use pet_conda::Conda; use pet_core::{ os_environment::EnvironmentApi, python_environment::PythonEnvironmentKind, Locator, }; - use pet_reporter::collect; + use pet_reporter::{ + cache::{self, CacheReporter}, + collect, + }; setup(); let env_name = "env_with_python3"; @@ -320,7 +329,7 @@ fn detect_new_conda_env_created_with_p_flag_with_python() { let conda = Conda::from(&env); let reporter = Arc::new(collect::create_reporter()); - conda.find(&reporter); + conda.find(&CacheReporter::new(reporter.clone())); let environments = reporter.environments.lock().unwrap().clone(); let managers = reporter.managers.lock().unwrap().clone(); diff --git a/crates/pet-pyenv/tests/pyenv_test.rs b/crates/pet-pyenv/tests/pyenv_test.rs index 6dca0afd..e77f6da1 100644 --- a/crates/pet-pyenv/tests/pyenv_test.rs +++ b/crates/pet-pyenv/tests/pyenv_test.rs @@ -11,7 +11,7 @@ fn does_not_find_any_pyenv_envs() { use pet_core::{self, Locator}; use pet_pyenv; use pet_pyenv::PyEnv; - use pet_reporter::collect; + use pet_reporter::{cache::CacheReporter, collect}; use std::{collections::HashMap, path::PathBuf, sync::Arc}; let environment = create_test_environment( @@ -24,7 +24,7 @@ fn does_not_find_any_pyenv_envs() { let conda = Arc::new(Conda::from(&environment)); let locator = PyEnv::from(&environment, conda); let reporter = Arc::new(collect::create_reporter()); - locator.find(&reporter); + locator.find(&CacheReporter::new(reporter.clone())); let environments = reporter.environments.lock().unwrap().clone(); let managers = reporter.managers.lock().unwrap().clone(); @@ -100,7 +100,7 @@ fn find_pyenv_envs() { }; use pet_pyenv; use pet_pyenv::PyEnv; - use pet_reporter::collect; + use pet_reporter::{cache::CacheReporter, collect}; use serde_json::json; use std::{collections::HashMap, path::PathBuf, sync::Arc}; @@ -127,7 +127,7 @@ fn find_pyenv_envs() { let conda = Arc::new(Conda::from(&environment)); let locator = PyEnv::from(&environment, conda); let reporter = Arc::new(collect::create_reporter()); - locator.find(&reporter); + locator.find(&CacheReporter::new(reporter.clone())); let mut environments = reporter.environments.lock().unwrap().clone(); let mut managers = reporter.managers.lock().unwrap().clone(); diff --git a/crates/pet/tests/ci_homebrew_container.rs b/crates/pet/tests/ci_homebrew_container.rs index 9adf0f0b..6e868bf3 100644 --- a/crates/pet/tests/ci_homebrew_container.rs +++ b/crates/pet/tests/ci_homebrew_container.rs @@ -14,7 +14,7 @@ fn verify_python_in_homebrew_contaner() { python_environment::{PythonEnvironment, PythonEnvironmentKind}, }; use pet_poetry::Poetry; - use pet_reporter::{cache, collect}; + use pet_reporter::{cache::CacheReporter, collect}; use std::{path::PathBuf, sync::Arc}; let reporter = Arc::new(collect::create_reporter()); @@ -23,7 +23,7 @@ fn verify_python_in_homebrew_contaner() { let poetry_locator = Arc::new(Poetry::from(&environment)); find_and_report_envs( - &cache::CacheReporter::new(reporter.clone()), + &CacheReporter::new(reporter.clone()), Default::default(), &create_locators(conda_locator.clone(), poetry_locator.clone(), &environment), &environment, diff --git a/crates/pet/tests/ci_jupyter_container.rs b/crates/pet/tests/ci_jupyter_container.rs index 1033e585..7945e1b5 100644 --- a/crates/pet/tests/ci_jupyter_container.rs +++ b/crates/pet/tests/ci_jupyter_container.rs @@ -30,7 +30,7 @@ fn verify_python_in_jupyter_contaner() { python_environment::{PythonEnvironment, PythonEnvironmentKind}, }; use pet_poetry::Poetry; - use pet_reporter::{cache, collect}; + use pet_reporter::{cache::{CacheReporter}, collect}; use std::{path::PathBuf, sync::Arc}; setup(); @@ -41,7 +41,7 @@ fn verify_python_in_jupyter_contaner() { let poetry_locator = Arc::new(Poetry::from(&environment)); find_and_report_envs( - &cache::CacheReporter::new(reporter.clone()), + &CacheReporter::new(reporter.clone()), Default::default(), &create_locators(conda_locator.clone(), poetry_locator.clone(), &environment), &environment, diff --git a/crates/pet/tests/ci_poetry.rs b/crates/pet/tests/ci_poetry.rs index 83207646..95bf098f 100644 --- a/crates/pet/tests/ci_poetry.rs +++ b/crates/pet/tests/ci_poetry.rs @@ -2,7 +2,10 @@ // Licensed under the MIT License. use pet_poetry::Poetry; -use pet_reporter::{cache, collect}; +use pet_reporter::{ + cache::{self, CacheReporter}, + collect, +}; mod common; @@ -33,7 +36,7 @@ fn verify_ci_poetry_global() { } find_and_report_envs( - &cache::CacheReporter::new(reporter.clone()), + &CacheReporter::new(reporter.clone()), Default::default(), &locators, &environment, @@ -101,7 +104,7 @@ fn verify_ci_poetry_project() { } find_and_report_envs( - &cache::CacheReporter::new(reporter.clone()), + &CacheReporter::new(reporter.clone()), Default::default(), &locators, &environment, diff --git a/crates/pet/tests/ci_test.rs b/crates/pet/tests/ci_test.rs index fde7c0a0..c4dee52f 100644 --- a/crates/pet/tests/ci_test.rs +++ b/crates/pet/tests/ci_test.rs @@ -87,7 +87,7 @@ fn verify_validity_of_discovered_envs() { // Find all environments on this machine. find_and_report_envs( - &cache::CacheReporter::new(reporter.clone()), + &CacheReporter::new(reporter.clone()), Default::default(), &locators, &environment, @@ -150,7 +150,7 @@ fn check_if_virtualenvwrapper_exists() { let poetry_locator = Arc::new(Poetry::from(&environment)); find_and_report_envs( - &cache::CacheReporter::new(reporter.clone()), + &CacheReporter::new(reporter.clone()), Default::default(), &create_locators(conda_locator.clone(), poetry_locator.clone(), &environment), &environment, @@ -191,7 +191,7 @@ fn check_if_pipenv_exists() { let poetry_locator = Arc::new(Poetry::from(&environment)); find_and_report_envs( - &cache::CacheReporter::new(reporter.clone()), + &CacheReporter::new(reporter.clone()), Default::default(), &create_locators(conda_locator.clone(), poetry_locator.clone(), &environment), &environment, @@ -228,7 +228,7 @@ fn check_if_pyenv_virtualenv_exists() { let poetry_locator = Arc::new(Poetry::from(&environment)); find_and_report_envs( - &cache::CacheReporter::new(reporter.clone()), + &CacheReporter::new(reporter.clone()), Default::default(), &create_locators(conda_locator.clone(), poetry_locator.clone(), &environment), &environment, @@ -656,7 +656,7 @@ fn verify_bin_usr_bin_user_local_are_separate_python_envs() { let poetry_locator = Arc::new(Poetry::from(&environment)); find_and_report_envs( - &cache::CacheReporter::new(reporter.clone()), + &CacheReporter::new(reporter.clone()), Default::default(), &create_locators(conda_locator.clone(), poetry_locator.clone(), &environment), &environment, From 2c9581238ed7aec10b8c295ff09bb2bbf5a2730a Mon Sep 17 00:00:00 2001 From: Don Jayamanne Date: Fri, 12 Jul 2024 14:41:36 +1000 Subject: [PATCH 09/11] fixes --- crates/pet/tests/ci_jupyter_container.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/pet/tests/ci_jupyter_container.rs b/crates/pet/tests/ci_jupyter_container.rs index 7945e1b5..4ecdbb18 100644 --- a/crates/pet/tests/ci_jupyter_container.rs +++ b/crates/pet/tests/ci_jupyter_container.rs @@ -30,7 +30,7 @@ fn verify_python_in_jupyter_contaner() { python_environment::{PythonEnvironment, PythonEnvironmentKind}, }; use pet_poetry::Poetry; - use pet_reporter::{cache::{CacheReporter}, collect}; + use pet_reporter::{cache::CacheReporter, collect}; use std::{path::PathBuf, sync::Arc}; setup(); From de97078d687316ea891a385db53f5710c93e0b70 Mon Sep 17 00:00:00 2001 From: Don Jayamanne Date: Fri, 12 Jul 2024 14:43:08 +1000 Subject: [PATCH 10/11] fixes --- crates/pet-pyenv/tests/pyenv_test.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/pet-pyenv/tests/pyenv_test.rs b/crates/pet-pyenv/tests/pyenv_test.rs index e77f6da1..484527ab 100644 --- a/crates/pet-pyenv/tests/pyenv_test.rs +++ b/crates/pet-pyenv/tests/pyenv_test.rs @@ -46,7 +46,7 @@ fn does_not_find_any_pyenv_envs_even_with_pyenv_installed() { }; use pet_pyenv; use pet_pyenv::PyEnv; - use pet_reporter::collect; + use pet_reporter::{cache::CacheReporter, collect}; use serde_json::json; use std::{collections::HashMap, path::PathBuf, sync::Arc}; @@ -70,7 +70,7 @@ fn does_not_find_any_pyenv_envs_even_with_pyenv_installed() { let conda = Arc::new(Conda::from(&environment)); let locator = PyEnv::from(&environment, conda); let reporter = Arc::new(collect::create_reporter()); - locator.find(&reporter); + locator.find(&CacheReporter::new(reporter.clone())); let environments = reporter.environments.lock().unwrap().clone(); let managers = reporter.managers.lock().unwrap().clone(); From db41a5774ab93f3ad919f681c4b5bef0119a658f Mon Sep 17 00:00:00 2001 From: Don Jayamanne Date: Fri, 12 Jul 2024 14:43:39 +1000 Subject: [PATCH 11/11] fixes --- crates/pet-pyenv/tests/pyenv_test.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/crates/pet-pyenv/tests/pyenv_test.rs b/crates/pet-pyenv/tests/pyenv_test.rs index 484527ab..62ff87a0 100644 --- a/crates/pet-pyenv/tests/pyenv_test.rs +++ b/crates/pet-pyenv/tests/pyenv_test.rs @@ -72,7 +72,6 @@ fn does_not_find_any_pyenv_envs_even_with_pyenv_installed() { let reporter = Arc::new(collect::create_reporter()); locator.find(&CacheReporter::new(reporter.clone())); - let environments = reporter.environments.lock().unwrap().clone(); let managers = reporter.managers.lock().unwrap().clone(); assert_eq!(managers.len(), 1);