def test_conda_wrapper_verify_environment(self): """ CondaWrapper: verify environment can be activated """ self._make_mock_conda() os.makedirs(os.path.join(self.conda_env_dir,'[email protected]')) conda = CondaWrapper(conda=self.conda) self.assertTrue(conda.verify_env("[email protected]"))
def test_conda_wrapper_verify_fails_for_bad_environment(self): """ CondaWrapper: verify fails for 'bad' environment """ self._make_mock_conda(activate_fails=True) os.makedirs(os.path.join(self.conda_env_dir,'[email protected]')) conda = CondaWrapper(conda=self.conda) self.assertFalse(conda.verify_env("[email protected]"))
def test_conda_wrapper_activate_command(self): """ CondaWrapper: check environment activation command """ self._make_mock_conda() conda = CondaWrapper(conda=self.conda) self.assertEqual(conda.activate_env_cmd("[email protected]").command_line, Command( 'source', os.path.join(self.conda_bin_dir,'activate'), '[email protected]').command_line)
def test_conda_wrapper_conda_version(self): """ CondaWrapper: get conda version """ self._make_mock_conda() conda = CondaWrapper(conda=self.conda) self.assertEqual(conda.version,"4.10.3")
def test_conda_wrapper_create_env(self): """ CondaWrapper: check create new environment """ self._make_mock_conda() conda = CondaWrapper(conda=self.conda) conda.create_env("qc", "fastqc=0.11.3", "fastq-screen=0.14.0", "bowtie=1.2.3") env_dir = os.path.join(self.conda_env_dir,"qc") self.assertTrue(os.path.exists(env_dir)) packages = os.path.join(env_dir,"packages.txt") self.assertTrue(os.path.exists(packages)) with open(packages,'rt') as fp: contents = fp.read().strip() self.assertEqual(contents, "fastqc=0.11.3 fastq-screen=0.14.0 bowtie=1.2.3")
def test_conda_wrapper_conda_defaults(self): """ CondaWrapper: check properties for default env dir """ self._make_mock_conda() conda = CondaWrapper(conda=self.conda) self.assertEqual(conda.conda,self.conda) self.assertTrue(conda.is_installed) self.assertEqual(conda.env_dir,self.conda_env_dir) self.assertEqual(conda.list_envs,[])
def test_conda_wrapper_conda_not_specified(self): """ CondaWrapper: check properties when conda exe not specified """ self._make_mock_conda() print(os.environ['PATH']) conda = CondaWrapper() self.assertEqual(conda.conda,self.conda) self.assertTrue(conda.is_installed) self.assertEqual(conda.env_dir,self.conda_env_dir) self.assertEqual(conda.list_envs,[])
def test_conda_wrapper_create_env_raise_exception_on_error(self): """ CondaWrapper: raise exception on error when creating environment """ self._make_mock_conda(create_fails=True) conda = CondaWrapper(conda=self.conda) self.assertRaises(CondaCreateEnvError, conda.create_env, "qc", "fastqc=0.11.3", "fastq-screen=0.14.0", "bowtie=1.2.3")
def test_conda_wrapper_missing_conda_executable(self): """ CondaWrapper: check properties when conda is missing """ conda = CondaWrapper( conda="/usr/local/missing/conda/bin/conda") self.assertEqual(conda.conda, "/usr/local/missing/conda/bin/conda") self.assertFalse(conda.is_installed) self.assertEqual(conda.env_dir, "/usr/local/missing/conda/envs") self.assertEqual(conda.list_envs,[]) self.assertEqual(conda.version,None)
def test_conda_wrapper_null_wrapper(self): """ CondaWrapper: check properties for 'null' wrapper """ save_path = os.environ['PATH'] os.environ['PATH'] = '' conda = CondaWrapper() self.assertEqual(conda.conda,None) self.assertFalse(conda.is_installed) self.assertEqual(conda.env_dir,None) self.assertEqual(conda.list_envs,[]) self.assertEqual(conda.version,None) os.environ['PATH'] = save_path
def test_conda_wrapper_conda_custom_env_dir(self): """ CondaWrapper: check properties for custom env dir """ self._make_mock_conda() custom_env_dir = os.path.join(self.working_dir, "local_conda_envs") os.makedirs(custom_env_dir) conda = CondaWrapper(conda=self.conda, env_dir=custom_env_dir) self.assertEqual(conda.conda,self.conda) self.assertTrue(conda.is_installed) self.assertEqual(conda.env_dir,custom_env_dir) self.assertEqual(conda.list_envs,[])
def test_conda_wrapper_list_envs(self): """ CondaWrapper: check listing environments """ self._make_mock_conda() # Default env dir conda = CondaWrapper(conda=self.conda) self.assertEqual(conda.list_envs,[]) for env in ('fastqc','picard','star'): os.makedirs(os.path.join(self.conda_env_dir,env)) self.assertEqual(conda.list_envs, ['fastqc','picard','star']) # Custom env dir custom_env_dir = os.path.join(self.working_dir, "local_conda_envs") os.makedirs(custom_env_dir) conda = CondaWrapper(conda=self.conda, env_dir=custom_env_dir) self.assertEqual(conda.list_envs,[]) for env in ('fastqc','picard','star'): os.makedirs(os.path.join(custom_env_dir,env)) self.assertEqual(conda.list_envs, ['fastqc','picard','star'])