Example #1
0
 def test_last_build_not_finished(self):
     self.create_build('0', datetime=h(10))
     ProjectStatus.create(self.project)
     b1 = self.create_build('1', datetime=h(5))
     self.create_build('2', datetime=h(4), create_test_run=False)
     status = ProjectStatus.create(self.project)
     self.assertEqual(b1, status.build)
Example #2
0
    def test_status_of_second_build(self):
        self.create_build('1')
        status1 = ProjectStatus.create(self.project)

        build2 = self.create_build('2')
        status2 = ProjectStatus.create(self.project)
        self.assertEqual(status1, status2.previous)
        self.assertEqual(build2, status2.build)
Example #3
0
    def test_status_with_multiple_builds(self):
        self.create_build('1', datetime=h(10))
        ProjectStatus.create(self.project)

        b1 = self.create_build('2', datetime=h(5))
        b2 = self.create_build('3', datetime=h(4))

        status = ProjectStatus.create(self.project)
        self.assertEqual([b1, b2], list(status.builds))
Example #4
0
    def setUp(self):
        t0 = timezone.now() - relativedelta(hours=3)
        t = timezone.now() - relativedelta(hours=3)

        self.group = Group.objects.create(slug='mygroup')
        self.project = self.group.projects.create(slug='myproject')
        self.project.builds.create(version='1', datetime=t0)
        ProjectStatus.create(self.project)
        self.project.builds.create(version='2', datetime=t)
Example #5
0
    def test_status_with_multiple_builds(self):
        self.create_build('1',
                          datetime=timezone.now() - relativedelta(hours=10))
        ProjectStatus.create(self.project)

        b1 = self.create_build('2',
                               datetime=timezone.now() -
                               relativedelta(hours=5))
        b2 = self.create_build('3',
                               datetime=timezone.now() -
                               relativedelta(hours=4))

        status = ProjectStatus.create(self.project)
        self.assertEqual([b1, b2], list(status.builds))
Example #6
0
    def test_metrics_summary(self):
        build = self.create_build('1', datetime=h(10))
        test_run = build.test_runs.first()
        test_run.metrics.create(name='foo', suite=self.suite, result=2)
        test_run.metrics.create(name='bar', suite=self.suite, result=2)

        status = ProjectStatus.create(self.project)
        self.assertEqual(2.0, status.metrics_summary)
Example #7
0
def send_notification(project):
    """
    E-mails a project status change notification to all subscribed email
    addresses. This should almost always be invoked in a background process.
    """
    project_status = ProjectStatus.create(project)
    if not project_status:
        return

    for notification in get_notifications(project_status):
        __send_notification__(project, notification)
Example #8
0
    def test_test_summary(self):
        build = self.create_build('1', datetime=h(10))
        test_run = build.test_runs.first()
        test_run.tests.create(name='foo', suite=self.suite, result=True)
        test_run.tests.create(name='foo', suite=self.suite, result=False)
        test_run.tests.create(name='foo', suite=self.suite, result=None)

        status = ProjectStatus.create(self.project)
        self.assertEqual(1, status.tests_pass)
        self.assertEqual(1, status.tests_fail)
        self.assertEqual(1, status.tests_skip)
        self.assertEqual(3, status.tests_total)
Example #9
0
 def test_first_build(self):
     build = self.create_build('1')
     status = ProjectStatus.create(self.project)
     self.assertEqual(build, status.build)
Example #10
0
 def test_wait_for_build_completion(self):
     self.create_build('1', datetime=h(1), create_test_run=False)
     status = ProjectStatus.create(self.project)
     self.assertIsNone(status)
Example #11
0
 def test_dont_record_the_same_status_twice(self):
     self.create_build('1')
     ProjectStatus.create(self.project)
     self.assertIsNone(ProjectStatus.create(self.project))
     self.assertEqual(1, ProjectStatus.objects.count())
Example #12
0
    def test_status_of_first_build(self):
        build = self.create_build('1')
        status = ProjectStatus.create(self.project)

        self.assertEqual(build, status.build)
        self.assertIsNone(status.previous)
Example #13
0
 def test_status_without_builds(self):
     status = ProjectStatus.create(self.project)
     self.assertIsNone(status)
     self.assertEqual(0, ProjectStatus.objects.count())
Example #14
0
 def test_wait_for_build_completion(self):
     self.create_build('1',
                       datetime=timezone.now() - relativedelta(hours=1))
     status = ProjectStatus.create(self.project)
     self.assertIsNone(status)