class PrefixDatarUnitTests(TestCase):

    def setUp(self):
        tempdirdir = gettempdir()
        dirname = str(uuid4())[:8]
        self.prefix = join(tempdirdir, dirname)
        mkdir_p(self.prefix)
        assert isdir(self.prefix)
        mkdir_p(join(self.prefix, 'conda-meta'))
        activate_env_vars = join(self.prefix, PREFIX_STATE_FILE)
        with open(activate_env_vars, 'w') as f:
            f.write(ENV_VARS_FILE)
        self.pd = PrefixData(self.prefix)

    def tearDown(self):
        rm_rf(self.prefix)
        assert not lexists(self.prefix)

    def test_get_environment_env_vars(self):
        ex_env_vars = {
            "ENV_ONE": "one",
            "ENV_TWO": "you",
            "ENV_THREE": "me"
        }
        env_vars = self.pd.get_environment_env_vars()
        assert ex_env_vars == env_vars

    def test_set_unset_environment_env_vars(self):
        env_vars_one = {
            "ENV_ONE": "one",
            "ENV_TWO": "you",
            "ENV_THREE": "me",
        }
        env_vars_add = {
            "ENV_ONE": "one",
            "ENV_TWO": "you",
            "ENV_THREE": "me",
            "WOAH": "dude"
        }
        self.pd.set_environment_env_vars({"WOAH":"dude"})
        env_vars = self.pd.get_environment_env_vars()
        assert env_vars_add == env_vars

        self.pd.unset_environment_env_vars(['WOAH'])
        env_vars = self.pd.get_environment_env_vars()
        assert env_vars_one == env_vars

    def test_set_unset_environment_env_vars_no_exist(self):
        env_vars_one = {
            "ENV_ONE": "one",
            "ENV_TWO": "you",
            "ENV_THREE": "me",
        }
        self.pd.unset_environment_env_vars(['WOAH'])
        env_vars = self.pd.get_environment_env_vars()
        assert env_vars_one == env_vars
Exemple #2
0
def execute_unset(args, parser):
    prefix = get_prefix(args, search=False) or context.active_prefix
    pd = PrefixData(prefix)
    if not lexists(prefix):
        raise EnvironmentLocationNotFound(prefix)

    vars_to_unset = [_.strip() for _ in args.vars]
    pd.unset_environment_env_vars(vars_to_unset)
    if prefix == context.active_prefix:
        print("To make your changes take effect please reactivate your environment")