Mercurial > bitten > bitten-test
view bitten/trac_ext/tests/charts.py @ 322:0c60c69f10c3 0.5.x
Ported [333] and [334] to 0.5.x.
author | cmlenz |
---|---|
date | Wed, 04 Jan 2006 18:49:34 +0000 |
parents | a89b9d945136 |
children | 0df178e07fdb |
line wrap: on
line source
# -*- coding: iso8859-1 -*- # # Copyright (C) 2005 Christopher Lenz <cmlenz@gmx.de> # All rights reserved. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at http://bitten.cmlenz.net/wiki/License. import unittest from trac.test import EnvironmentStub, Mock from trac.web.clearsilver import HDFWrapper from bitten.model import * from bitten.trac_ext.charts import * from bitten.trac_ext.compat import schema_to_sql class TestResultsChartGeneratorTestCase(unittest.TestCase): def setUp(self): self.env = EnvironmentStub() self.env.path = '' db = self.env.get_db_cnx() cursor = db.cursor() for table in schema: for stmt in schema_to_sql(self.env, db, table): cursor.execute(stmt) def test_supported_categories(self): generator = TestResultsChartGenerator(self.env) self.assertEqual(['test'], generator.get_supported_categories()) def test_no_reports(self): req = Mock(hdf=HDFWrapper()) config = Mock(name='trunk') generator = TestResultsChartGenerator(self.env) template = generator.generate_chart_data(req, config, 'test') self.assertEqual('bitten_chart_tests.cs', template) self.assertEqual('Unit Tests', req.hdf['chart.title']) self.assertEqual('', req.hdf['chart.data.0.0']) self.assertEqual('Total', req.hdf['chart.data.1.0']) self.assertEqual('Failures', req.hdf['chart.data.2.0']) def test_single_platform(self): config = Mock(name='trunk') build = Build(self.env, config='trunk', platform=1, rev=123, rev_time=42) build.insert() report = Report(self.env, build=build.id, step='foo', category='test') report.items += [{'status': 'success'}, {'status': 'failure'}, {'status': 'success'}] report.insert() req = Mock(hdf=HDFWrapper()) generator = TestResultsChartGenerator(self.env) template = generator.generate_chart_data(req, config, 'test') self.assertEqual('bitten_chart_tests.cs', template) self.assertEqual('Unit Tests', req.hdf['chart.title']) self.assertEqual('', req.hdf['chart.data.0.0']) self.assertEqual('[123]', req.hdf['chart.data.0.1']) self.assertEqual('Total', req.hdf['chart.data.1.0']) self.assertEqual('3', req.hdf['chart.data.1.1']) self.assertEqual('Failures', req.hdf['chart.data.2.0']) self.assertEqual('1', req.hdf['chart.data.2.1']) def test_multi_platform(self): config = Mock(name='trunk') build = Build(self.env, config='trunk', platform=1, rev=123, rev_time=42) build.insert() report = Report(self.env, build=build.id, step='foo', category='test') report.items += [{'status': 'success'}, {'status': 'failure'}, {'status': 'success'}] report.insert() build = Build(self.env, config='trunk', platform=2, rev=123, rev_time=42) build.insert() report = Report(self.env, build=build.id, step='foo', category='test') report.items += [{'status': 'success'}, {'status': 'failure'}, {'status': 'failure'}] report.insert() req = Mock(hdf=HDFWrapper()) generator = TestResultsChartGenerator(self.env) template = generator.generate_chart_data(req, config, 'test') self.assertEqual('bitten_chart_tests.cs', template) self.assertEqual('Unit Tests', req.hdf['chart.title']) self.assertEqual('', req.hdf['chart.data.0.0']) self.assertEqual('[123]', req.hdf['chart.data.0.1']) self.assertEqual('Total', req.hdf['chart.data.1.0']) self.assertEqual('3', req.hdf['chart.data.1.1']) self.assertEqual('Failures', req.hdf['chart.data.2.0']) self.assertEqual('2', req.hdf['chart.data.2.1']) class TestCoverageChartGeneratorTestCase(unittest.TestCase): def setUp(self): self.env = EnvironmentStub() self.env.path = '' db = self.env.get_db_cnx() cursor = db.cursor() for table in schema: for stmt in schema_to_sql(self.env, db, table): cursor.execute(stmt) def test_supported_categories(self): generator = TestCoverageChartGenerator(self.env) self.assertEqual(['coverage'], generator.get_supported_categories()) def test_no_reports(self): req = Mock(hdf=HDFWrapper()) config = Mock(name='trunk') generator = TestCoverageChartGenerator(self.env) template = generator.generate_chart_data(req, config, 'coverage') self.assertEqual('bitten_chart_coverage.cs', template) self.assertEqual('Test Coverage', req.hdf['chart.title']) self.assertEqual('', req.hdf['chart.data.0.0']) self.assertEqual('Lines of code', req.hdf['chart.data.1.0']) self.assertEqual('Coverage', req.hdf['chart.data.2.0']) def test_single_platform(self): config = Mock(name='trunk') build = Build(self.env, config='trunk', platform=1, rev=123, rev_time=42) build.insert() report = Report(self.env, build=build.id, step='foo', category='coverage') report.items += [{'lines': '12', 'percentage': '25'}] report.insert() req = Mock(hdf=HDFWrapper()) generator = TestCoverageChartGenerator(self.env) template = generator.generate_chart_data(req, config, 'coverage') self.assertEqual('bitten_chart_coverage.cs', template) self.assertEqual('Test Coverage', req.hdf['chart.title']) self.assertEqual('', req.hdf['chart.data.0.0']) self.assertEqual('[123]', req.hdf['chart.data.0.1']) self.assertEqual('Lines of code', req.hdf['chart.data.1.0']) self.assertEqual('12', req.hdf['chart.data.1.1']) self.assertEqual('Coverage', req.hdf['chart.data.2.0']) self.assertEqual('3', req.hdf['chart.data.2.1']) def test_multi_platform(self): config = Mock(name='trunk') build = Build(self.env, config='trunk', platform=1, rev=123, rev_time=42) build.insert() report = Report(self.env, build=build.id, step='foo', category='coverage') report.items += [{'lines': '12', 'percentage': '25'}] report.insert() build = Build(self.env, config='trunk', platform=2, rev=123, rev_time=42) build.insert() report = Report(self.env, build=build.id, step='foo', category='coverage') report.items += [{'lines': '12', 'percentage': '50'}] report.insert() req = Mock(hdf=HDFWrapper()) generator = TestCoverageChartGenerator(self.env) template = generator.generate_chart_data(req, config, 'coverage') self.assertEqual('bitten_chart_coverage.cs', template) self.assertEqual('Test Coverage', req.hdf['chart.title']) self.assertEqual('', req.hdf['chart.data.0.0']) self.assertEqual('[123]', req.hdf['chart.data.0.1']) self.assertEqual('Lines of code', req.hdf['chart.data.1.0']) self.assertEqual('12', req.hdf['chart.data.1.1']) self.assertEqual('Coverage', req.hdf['chart.data.2.0']) self.assertEqual('6', req.hdf['chart.data.2.1']) def suite(): suite = unittest.TestSuite() suite.addTest(unittest.makeSuite(TestResultsChartGeneratorTestCase)) suite.addTest(unittest.makeSuite(TestCoverageChartGeneratorTestCase)) return suite if __name__ == '__main__': unittest.main(defaultTest='suite')