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'])