def test_branch_is_added_after_initial_expand_and_removed_if_not_nec(self): ensure_environment(self.settings, 'test', 'master') murdock_path = self._create_fake_hostgroup('murdock', ['qa']) self._jens_update() # --- Add override add_branch_to_repo(self.settings, murdock_path, 'foo') destroy_environment(self.settings, 'test') ensure_environment(self.settings, 'test', 'master', hostgroups=['murdock:foo']) self._jens_update() self.assertBare('hostgroups/murdock') for branch in MANDATORY_BRANCHES: self.assertClone('hostgroups/murdock/%s' % branch) self.assertClone('hostgroups/murdock/foo') self.assertEnvironmentLinks("test") self.assertEnvironmentOverride("test", 'hostgroups/hg_murdock', 'foo') # --- Remove it destroy_environment(self.settings, 'test') ensure_environment(self.settings, 'test', 'master') self._jens_update() self.assertBare('hostgroups/murdock') for branch in MANDATORY_BRANCHES: self.assertClone('hostgroups/murdock/%s' % branch) self.assertNotClone('hostgroups/murdock/foo') self.assertEnvironmentLinks("test") self.assertEnvironmentOverride("test", 'hostgroups/hg_murdock', 'master')
def test_environments_with_no_default_can_be_modified(self): guy_path = self._create_fake_module('guy', ['qa']) commit_id = get_refs(guy_path + '/.git')['qa'] override = "{0}{1}".format(COMMIT_PREFIX, commit_id) ensure_environment(self.settings, 'test', None, modules=["guy:%s" % override]) self._jens_update() self.assertBare('modules/guy') self.assertClone('modules/guy/.%s' % commit_id, pointsto=commit_id) self.assertEnvironmentLinks("test") self.assertEnvironmentOverride("test", 'modules/guy', override) # ---- Point the override to a different commit destroy_environment(self.settings, 'test') commit_id = get_refs(guy_path + '/.git')['master'] override = "{0}{1}".format(COMMIT_PREFIX, commit_id) ensure_environment(self.settings, 'test', None, modules=["guy:%s" % override]) self._jens_update() self.assertBare('modules/guy') self.assertClone('modules/guy/.%s' % commit_id, pointsto=commit_id) self.assertEnvironmentLinks("test") self.assertEnvironmentOverride("test", 'modules/guy', override)
def test_override_not_deleted_if_shared(self): ensure_environment(self.settings, 'test', 'master') self._create_fake_hostgroup('murdock', ['qa', 'aijens_etcd']) sonic_path = self._create_fake_module('sonic', ['qa']) commit_id = get_refs(sonic_path + '/.git')['qa'] override = "{0}{1}".format(COMMIT_PREFIX, commit_id) self._jens_update() self.assertNotClone('hostgroups/murdock/aijens_etcd') # ----- Add two environments needing the same override ensure_environment(self.settings, 'test', 'master', modules=['sonic:%s' % override], hostgroups=['murdock:aijens_etcd']) ensure_environment(self.settings, 'test2', 'master', modules=['sonic:%s' % override], hostgroups=['murdock:aijens_etcd']) self._jens_update() self.assertClone('hostgroups/murdock/aijens_etcd') self.assertClone('modules/sonic/.%s' % commit_id, pointsto=commit_id) self.assertEnvironmentOverride("test", 'hostgroups/hg_murdock', 'aijens_etcd') self.assertEnvironmentOverride("test2", 'hostgroups/hg_murdock', 'aijens_etcd') self.assertEnvironmentOverride("test", 'modules/sonic', override) self.assertEnvironmentOverride("test2", 'modules/sonic', override) self.assertEnvironmentNumberOf("test", "modules", 1) self.assertEnvironmentNumberOf("test", "hostgroups", 1) self.assertEnvironmentNumberOf("test2", "modules", 1) self.assertEnvironmentNumberOf("test2", "hostgroups", 1) # ----- Destroy one of them destroy_environment(self.settings, 'test2') self._jens_update() self.assertClone('hostgroups/murdock/aijens_etcd') self.assertClone('modules/sonic/.%s' % commit_id, pointsto=commit_id) self.assertEnvironmentLinks("test") self.assertEnvironmentDoesntExist("test2") self.assertEnvironmentOverride("test", 'hostgroups/hg_murdock', 'aijens_etcd') self.assertEnvironmentOverride("test", 'modules/sonic', override)
def test_environment_completely_deleted_even_if_conf_file_is_present(self): self.settings.DIRECTORY_ENVIRONMENTS = True self._create_fake_hostgroup('murdock', ['qa', 'foo']) ensure_environment(self.settings, 'test', 'master', hostgroups=["murdock:foo"]) self._jens_update() self.assertClone('hostgroups/murdock/foo') self.assertEnvironmentOverride("test", 'hostgroups/hg_murdock', 'foo') self.assertEnvironmentNumberOf("test", "modules", 0) self.assertEnvironmentNumberOf("test", "hostgroups", 1) self.assertEnvironmentLinks("test") self.assertEnvironmentHasAConfigFile("test") destroy_environment(self.settings, 'test') # ----- This should destroy all, including the configuration file self._jens_update() self.assertEnvironmentDoesntExist("test")