⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 api.py

📁 一款基于web的项目管理、bug跟踪系统。提供了与svn集成的操作界面、问题跟踪
💻 PY
字号:
import trac.perm as permfrom trac.ticket.api import TicketSystemfrom trac.ticket.model import Ticketfrom trac.test import EnvironmentStub, Mockimport unittestclass TicketSystemTestCase(unittest.TestCase):    def setUp(self):        self.env = EnvironmentStub()        self.perm = perm.PermissionSystem(self.env)        self.ticket_system = TicketSystem(self.env)        self.req = Mock()    def _ts_get_available_actions(self, ts, ticket_dict):        ticket = Ticket(self.env)        ticket.populate(ticket_dict)        id = ticket.insert()        return ts.get_available_actions(self.req, Ticket(self.env, id))    def test_custom_field_text(self):        self.env.config.set('ticket-custom', 'test', 'text')        self.env.config.set('ticket-custom', 'test.label', 'Test')        self.env.config.set('ticket-custom', 'test.value', 'Foo bar')        fields = TicketSystem(self.env).get_custom_fields()        self.assertEqual({'name': 'test', 'type': 'text', 'label': 'Test',                          'value': 'Foo bar', 'order': 0},                         fields[0])    def test_custom_field_select(self):        self.env.config.set('ticket-custom', 'test', 'select')        self.env.config.set('ticket-custom', 'test.label', 'Test')        self.env.config.set('ticket-custom', 'test.value', '1')        self.env.config.set('ticket-custom', 'test.options', 'option1|option2')        fields = TicketSystem(self.env).get_custom_fields()        self.assertEqual({'name': 'test', 'type': 'select', 'label': 'Test',                          'value': '1', 'options': ['option1', 'option2'],                          'order': 0},                         fields[0])    def test_custom_field_optional_select(self):        self.env.config.set('ticket-custom', 'test', 'select')        self.env.config.set('ticket-custom', 'test.label', 'Test')        self.env.config.set('ticket-custom', 'test.value', '1')        self.env.config.set('ticket-custom', 'test.options', '|option1|option2')        fields = TicketSystem(self.env).get_custom_fields()        self.assertEqual({'name': 'test', 'type': 'select', 'label': 'Test',                          'value': '1', 'options': ['option1', 'option2'],                          'order': 0, 'optional': True},                         fields[0])    def test_custom_field_textarea(self):        self.env.config.set('ticket-custom', 'test', 'textarea')        self.env.config.set('ticket-custom', 'test.label', 'Test')        self.env.config.set('ticket-custom', 'test.value', 'Foo bar')        self.env.config.set('ticket-custom', 'test.cols', '60')        self.env.config.set('ticket-custom', 'test.rows', '4')        fields = TicketSystem(self.env).get_custom_fields()        self.assertEqual({'name': 'test', 'type': 'textarea', 'label': 'Test',                          'value': 'Foo bar', 'width': 60, 'height': 4,                          'order': 0},                         fields[0])    def test_custom_field_order(self):        self.env.config.set('ticket-custom', 'test1', 'text')        self.env.config.set('ticket-custom', 'test1.order', '2')        self.env.config.set('ticket-custom', 'test2', 'text')        self.env.config.set('ticket-custom', 'test2.order', '1')        fields = TicketSystem(self.env).get_custom_fields()        self.assertEqual('test2', fields[0]['name'])        self.assertEqual('test1', fields[1]['name'])    def test_available_actions_full_perms(self):        ts = TicketSystem(self.env)        self.perm.grant_permission('anonymous', 'TICKET_CREATE')        self.perm.grant_permission('anonymous', 'TICKET_MODIFY')        self.req.perm = perm.PermissionCache(self.env)        self.assertEqual(['leave', 'resolve', 'reassign', 'accept'],                         self._ts_get_available_actions(ts, {'status': 'new'}))        self.assertEqual(['leave', 'resolve', 'reassign', 'accept'],                         self._ts_get_available_actions(ts,                                                  {'status': 'assigned'}))        self.assertEqual(['leave', 'resolve', 'reassign', 'accept'],                         self._ts_get_available_actions(ts,                                                  {'status': 'accepted'}))        self.assertEqual(['leave', 'resolve', 'reassign', 'accept'],                         self._ts_get_available_actions(ts,                                                  {'status': 'reopened'}))        self.assertEqual(['leave', 'reopen'],                         self._ts_get_available_actions(ts,                                                  {'status': 'closed'}))    def test_available_actions_no_perms(self):        ts = TicketSystem(self.env)        self.req.perm = perm.PermissionCache(self.env)        self.assertEqual(['leave'],                         self._ts_get_available_actions(ts, {'status': 'new'}))        self.assertEqual(['leave'],                         self._ts_get_available_actions(ts,                                                  {'status': 'assigned'}))        self.assertEqual(['leave'],                         self._ts_get_available_actions(ts,                                                  {'status': 'accepted'}))        self.assertEqual(['leave'],                         self._ts_get_available_actions(ts,                                                  {'status': 'reopened'}))        self.assertEqual(['leave'],                         self._ts_get_available_actions(ts,                                                  {'status': 'closed'}))    def test_available_actions_create_only(self):        ts = TicketSystem(self.env)        self.perm.grant_permission('anonymous', 'TICKET_CREATE')        self.req.perm = perm.PermissionCache(self.env)        self.assertEqual(['leave'],                         self._ts_get_available_actions(ts, {'status': 'new'}))        self.assertEqual(['leave'],                         self._ts_get_available_actions(ts,                                                  {'status': 'assigned'}))        self.assertEqual(['leave'],                         self._ts_get_available_actions(ts,                                                  {'status': 'accepted'}))        self.assertEqual(['leave'],                         self._ts_get_available_actions(ts,                                                  {'status': 'reopened'}))        self.assertEqual(['leave', 'reopen'],                         self._ts_get_available_actions(ts,                                                  {'status': 'closed'}))    def test_available_actions_chgprop_only(self):        # CHGPROP is not enough for changing a ticket's state (#3289)        ts = TicketSystem(self.env)        self.perm.grant_permission('anonymous', 'TICKET_CHGPROP')        self.req.perm = perm.PermissionCache(self.env)        self.assertEqual(['leave'],                         self._ts_get_available_actions(ts, {'status': 'new'}))        self.assertEqual(['leave'],                         self._ts_get_available_actions(ts,                                                  {'status': 'assigned'}))        self.assertEqual(['leave'],                         self._ts_get_available_actions(ts,                                                  {'status': 'accepted'}))        self.assertEqual(['leave'],                         self._ts_get_available_actions(ts,                                                  {'status': 'reopened'}))        self.assertEqual(['leave'],                         self._ts_get_available_actions(ts,                                                  {'status': 'closed'}))def suite():    return unittest.makeSuite(TicketSystemTestCase, 'test')if __name__ == '__main__':    unittest.main()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -