from estimationtools.workloadchart import WorkloadChart from trac.test import EnvironmentStub, Mock from trac.ticket.model import Ticket from trac.web.href import Href import unittest class BurndownChartTestCase(unittest.TestCase): def setUp(self): self.env = EnvironmentStub(default_data = True) self.env.config.set('ticket-custom', 'hours_remaining', 'text') self.env.config.set('estimation-tools', 'estimation_field', 'hours_remaining') self.req = Mock(href = Href('/'), abs_href = Href('http://www.example.com/'), perm = Mock(has_permission=lambda x: x == 'TICKET_VIEW')) def _insert_ticket(self, estimation, owner): ticket = Ticket(self.env) ticket['summary'] = 'Test Ticket' ticket['owner'] = owner ticket['hours_remaining'] = estimation ticket['milestone'] = 'milestone1' return ticket.insert() def test_basic(self): workload_chart = WorkloadChart(self.env) self._insert_ticket('10', 'A') self._insert_ticket('20', 'B') self._insert_ticket('30', 'C') result = workload_chart.render_macro(self.req, "", "milestone=milestone1") self.assertEqual(result, u'\'Workload') def test_invalid_value(self): workload_chart = WorkloadChart(self.env) self._insert_ticket('10', 'A') self._insert_ticket('10', 'B') self._insert_ticket('10', 'B') self._insert_ticket('30', 'C') self._insert_ticket('xxx', 'D') result = workload_chart.render_macro(self.req, "", "milestone=milestone1") self.assertEqual(result, u'\'Workload' )