from django.test import TestCase from ...models import Build, FeatureBuild from unittest import mock class TestBuild(TestCase): def test_build_passed(self): passing_feature = mock.Mock(spec=FeatureBuild) passing_feature.passed.return_value = True failing_feature = mock.Mock(spec=FeatureBuild) failing_feature.passed.return_value = False build = mock.Mock(spec=Build) # no features build.featurebuild_set.all.return_value = [] self.assertEqual(Build.passed(build), True) # two passing features build.featurebuild_set.all.return_value = [passing_feature, passing_feature] self.assertEqual(Build.passed(build), True) # one passing feature, one failing feature build.featurebuild_set.all.return_value = [passing_feature, failing_feature] self.assertEqual(Build.passed(build), False) def test_build_duration(self): feature = mock.Mock(spec=FeatureBuild) feature.duration.return_value = 123 build = mock.Mock(spec=Build) # no features build.featurebuild_set.all.return_value = [] self.assertEqual(Build.duration(build), 0) # one feature build.featurebuild_set.all.return_value = [feature] self.assertEqual(Build.duration(build), 123) # two features build.featurebuild_set.all.return_value = [feature, feature] self.assertEqual(Build.duration(build), 246)