def setUp(self): self.provisioner = MockProvisionerClient() config = self._config_simplest_domain_conf(1) self.state = LocalDomainStore('david', "epu1", config) self.prov_vars = {"foo": "bar"} self.controller_name = "fakey" self.control = ControllerCoreControl(self.provisioner, self.state, self.prov_vars, self.controller_name)
class ControllerCoreControlTests(unittest.TestCase): def _config_simplest_domain_conf(self, n_preserving): """Get 'simplest' EPU conf with specified NPreserving policy """ engine_class = "epu.decisionengine.impls.simplest.SimplestEngine" general = {EPUM_CONF_ENGINE_CLASS: engine_class} health = {EPUM_CONF_HEALTH_MONITOR: False} engine = {CONF_PRESERVE_N: n_preserving} return {EPUM_CONF_GENERAL: general, EPUM_CONF_ENGINE: engine, EPUM_CONF_HEALTH: health} def setUp(self): self.provisioner = MockProvisionerClient() config = self._config_simplest_domain_conf(1) self.state = LocalDomainStore('david', "epu1", config) self.prov_vars = {"foo": "bar"} self.controller_name = "fakey" self.control = ControllerCoreControl(self.provisioner, self.state, self.prov_vars, self.controller_name) def test_configure_1(self): self.control.configure(None) self.assertEqual(self.control.prov_vars, self.prov_vars) def test_configure_2(self): self.control.configure({}) self.assertEqual(self.control.prov_vars, self.prov_vars) def test_configure_3(self): params = {PROVISIONER_VARS_KEY: {"blah": "blah"}} self.control.configure(params) self.assertEqual(self.control.prov_vars, {"blah": "blah"}) def test_launch(self): launch_id, instance_ids = self.control.launch("dt", "chicago", "small", extravars={"v1": 1}) self.assertEqual(len(instance_ids), 1) # check that right info got added to state instance_id = instance_ids[0] instance = self.state.get_instance(instance_id) self.assertEqual(instance.instance_id, instance_id) self.assertEqual(instance.launch_id, launch_id) self.assertEqual(instance.site, "chicago") self.assertEqual(instance.allocation, "small") self.assertEqual(instance.extravars, {"v1": 1}) # and provisionerclient called self.assertEqual(len(self.provisioner.launches), 1) launch = self.provisioner.launches[0] self.assertEqual(launch['launch_id'], launch_id) self.assertEqual(launch['dt'], "dt") # vars are merged result self.assertEqual(launch['vars']['foo'], "bar") self.assertEqual(launch['vars']['v1'], 1) self.assertEqual(launch['site'], "chicago") self.assertEqual(launch['allocation'], "small")