from django.test import TestCase from ...models import ScenarioBuild, StepBuild from unittest import mock class TestScenarioBuild(TestCase): def test_scenario_build_passed(self): passing_step = mock.Mock(spec=StepBuild) passing_step.passed.return_value = True failing_step = mock.Mock(spec=StepBuild) failing_step.passed.return_value = False scenario = mock.Mock(spec=ScenarioBuild) # no results scenario.stepbuild_set.all.return_value = [] self.assertEqual(ScenarioBuild.passed(scenario), True) # two passing steps scenario.stepbuild_set.all.return_value = [passing_step, passing_step] self.assertEqual(ScenarioBuild.passed(scenario), True) # one passing step, one failing step scenario.stepbuild_set.all.return_value = [passing_step, failing_step] self.assertEqual(ScenarioBuild.passed(scenario), False) def test_scenario_build_duration(self): step = mock.Mock(spec=StepBuild) step.duration.return_value = 123 scenario = mock.Mock(spec=ScenarioBuild) # no results scenario.stepbuild_set.all.return_value = [] self.assertEqual(ScenarioBuild.duration(scenario), 0) # one step scenario.stepbuild_set.all.return_value = [step] self.assertEqual(ScenarioBuild.duration(scenario), 123) # two steps scenario.stepbuild_set.all.return_value = [step, step] self.assertEqual(ScenarioBuild.duration(scenario), 246)