from django.test import TestCase from ...models import FeatureBuild, ScenarioBuild from unittest import mock class TestFeatureBuild(TestCase): def test_feature_build_passed(self): passing_scenario = mock.Mock(spec=ScenarioBuild) passing_scenario.passed.return_value = True failing_scenario = mock.Mock(spec=ScenarioBuild) failing_scenario.passed.return_value = False feature = mock.Mock(spec=FeatureBuild) # no scenarios feature.scenariobuild_set.all.return_value = [] self.assertEqual(FeatureBuild.passed(feature), True) # two passing scenarios feature.scenariobuild_set.all.return_value = [passing_scenario, passing_scenario] self.assertEqual(FeatureBuild.passed(feature), True) # one passing step, one failing step feature.scenariobuild_set.all.return_value = [passing_scenario, failing_scenario] self.assertEqual(FeatureBuild.passed(feature), False) def test_feature_build_duration(self): scenario = mock.Mock(spec=ScenarioBuild) scenario.duration.return_value = 123 feature = mock.Mock(spec=FeatureBuild) # no scenarios feature.scenariobuild_set.all.return_value = [] self.assertEqual(FeatureBuild.duration(feature), 0) # one scenario feature.scenariobuild_set.all.return_value = [scenario] self.assertEqual(FeatureBuild.duration(feature), 123) # two scenarios feature.scenariobuild_set.all.return_value = [scenario, scenario] self.assertEqual(FeatureBuild.duration(feature), 246)