def test_try_install_no_duplicate(self): dists_for_envs = [ plan.SpecForEnv(env="_env_", spec="test2"), plan.SpecForEnv(env=None, spec="test3") ] plan.ensure_packge_not_duplicated_in_private_env_root( dists_for_envs, self.linked_in_root)
def test_try_install_duplicate_package_in_root(self): dists_for_envs = [plan.SpecForEnv(env="_env_", spec="test1"), plan.SpecForEnv(env=None, spec="something")] with pytest.raises(InstallError) as err: plan.ensure_packge_not_duplicated_in_private_env_root( dists_for_envs, self.linked_in_root) assert "Package test1 is already installed" in str(err) assert "Can't install in private environment _env_" in str(err)
def test_try_install_duplicate_package_in_private_env(self): dists_for_envs = [plan.SpecForEnv(env="_env_", spec="test2"), plan.SpecForEnv(env=None, spec="test3")] with patch.object(common, "prefix_if_in_private_env") as mock_prefix: mock_prefix.return_value = "some/prefix" with pytest.raises(InstallError) as err: plan.ensure_packge_not_duplicated_in_private_env_root( dists_for_envs, self.linked_in_root) assert "Package test3 is already installed" in str(err) assert "private_env some/prefix" in str(err)
def test_not_requires_private_env(self): with patch.object(plan, "not_requires_private_env") as not_requires: not_requires.return_value = True dists_for_envs = [plan.SpecForEnv(env=None, spec="test-spec"), plan.SpecForEnv(env=None, spec="test-spec2")] specs_for_prefix = plan.determine_dists_per_prefix( self.res, "some/envs/prefix", self.res.index, "prefix", dists_for_envs, self.context) expected_output = [plan.SpecsForPrefix( prefix="some/envs/prefix", r=self.res, specs={"test-spec", "test-spec2"})] self.assertEquals(specs_for_prefix, expected_output)
def test_determine_all_envs_with_channel_priority(self): self.res = generate_mocked_resolve([ (None, "test-spec", "defaults", "5"), ("ranenv", "test-spec", "rando_chnl", "1"), ("test1", "test-spec2", "defaults", "1") ]) prioritized_channel_map = prioritize_channels(tuple(["rando_chnl", "defaults"])) specs_for_envs_w_channel_priority = plan.determine_all_envs( self.res, self.specs, prioritized_channel_map) expected_output = (plan.SpecForEnv(env="ranenv", spec="test-spec"), plan.SpecForEnv(env="test1", spec="test-spec2")) self.assertEquals(specs_for_envs_w_channel_priority, expected_output)
def test_determine_dists_per_prefix(self, not_requires): with patch.object(plan, "get_resolve_object") as gen_resolve_object_mock: gen_resolve_object_mock.return_value = self.res dists_for_envs = [plan.SpecForEnv(env=None, spec="test-spec"), plan.SpecForEnv(env=None, spec="test-spec2"), plan.SpecForEnv(env="ranenv", spec="test")] specs_for_prefix = plan.determine_dists_per_prefix( self.res, "some/prefix", self.res.index, ["ranenv", None], dists_for_envs, self.context) expected_output = [ plan.SpecsForPrefix(prefix="some/prefix/envs/_ranenv_", r=gen_resolve_object_mock(), specs={"test"}), plan.SpecsForPrefix(prefix="some/prefix", r=self.res, specs=IndexedSet(("test-spec", "test-spec2"))) ] self.assertEquals(expected_output, specs_for_prefix)
def test_determine_all_envs(self): specs_for_envs = plan.determine_all_envs(self.res, self.specs) expected_output = (plan.SpecForEnv(env=None, spec="test-spec"), plan.SpecForEnv(env="test1", spec="test-spec2")) self.assertEquals(specs_for_envs, expected_output)