def test_resolve_single_deployment(self): poolcfg = self.parse(""" task_template: {name: "a" env: {var: "VAR" value: "1"} } task_template_deployment: { name: "std" prod: {include: "a"} } pool { task_template_deployment: "std" } pool { task_template_deployment_inline: { prod: {include: "a"} canary: { include: "a" env: {var: "WAT" value: "yes"} } canary_chance: 5000 } } """) tmap = pools_config._resolve_task_template_inclusions( self.ctx, poolcfg.task_template) dmap = pools_config._resolve_task_template_deployments( self.ctx, tmap, poolcfg.task_template_deployment) self.assertEqual( pools_config.TaskTemplateDeployment( prod=self.tt(env=[self.PE(var='VAR', value='1')], inclusions='a'), canary=None, canary_chance=0, ), pools_config._resolve_deployment(self.ctx, poolcfg.pool[0], tmap, dmap)) self.assertEqual( pools_config.TaskTemplateDeployment( prod=self.tt(env=[self.PE(var='VAR', value='1')], inclusions='a'), canary=self.tt(env=(self.PE(var='VAR', value='1'), self.PE(var='WAT', value='yes')), inclusions={'a'}), canary_chance=5000, ), pools_config._resolve_deployment(self.ctx, poolcfg.pool[1], tmap, dmap))
def test_resolve_deployments(self): poolcfg = self.parse(""" task_template: {name: "prod" env: {var: "VAR" value: "prod"}} task_template: {name: "canary" env: {var: "VAR" value: "canary"}} task_template_deployment: { name: "standard" prod: {include: "prod"} canary: {include: "canary"} canary_chance: 5000 } """) tmap = pools_config._resolve_task_template_inclusions( self.ctx, poolcfg.task_template) dmap = pools_config._resolve_task_template_deployments( self.ctx, tmap, poolcfg.task_template_deployment) self.assertSetEqual({'standard'}, set(dmap.keys())) self.assertEqual( dmap['standard'], pools_config.TaskTemplateDeployment( prod=self.tt(env=[ self.PE(var='VAR', value='prod'), ], inclusions={'prod'}), canary=self.tt(env=[ self.PE(var='VAR', value='canary'), ], inclusions={'canary'}), canary_chance=5000))