亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? model.py

?? trac是一款svn服務器的web客戶端
?? PY
?? 第 1 頁 / 共 2 頁
字號:
from trac import corefrom trac.core import TracError, implementsfrom trac.ticket.model import Ticket, Component, Milestone, Priority, Type, Versionfrom trac.ticket.api import ITicketChangeListenerfrom trac.test import EnvironmentStubfrom trac.util.datefmt import utc, to_timestampfrom datetime import datetimeimport unittestclass TestTicketChangeListener(core.Component):    implements(ITicketChangeListener)    def ticket_created(self, ticket):        self.action = 'created'        self.ticket = ticket    def ticket_changed(self, ticket, comment, author, old_values):        self.action = 'changed'        self.ticket = ticket        self.comment = comment        self.author = author        self.old_values = old_values            def ticket_deleted(self, ticket):        self.action = 'deleted'        self.ticket = ticketclass TicketTestCase(unittest.TestCase):    def setUp(self):        self.env = EnvironmentStub(default_data=True)        self.env.config.set('ticket-custom', 'foo', 'text')        self.env.config.set('ticket-custom', 'cbon', 'checkbox')        self.env.config.set('ticket-custom', 'cboff', 'checkbox')    def _insert_ticket(self, summary, **kw):        """Helper for inserting a ticket into the database"""        ticket = Ticket(self.env)        for k,v in kw.items():            ticket[k] = v        return ticket.insert()    def _create_a_ticket(self):        # 1. Creating ticket        ticket = Ticket(self.env)        ticket['reporter'] = 'santa'        ticket['summary'] = 'Foo'        ticket['foo'] = 'This is a custom field'        return ticket    def test_create_ticket_1(self):        ticket = self._create_a_ticket()        self.assertEqual('santa', ticket['reporter'])        self.assertEqual('Foo', ticket['summary'])        self.assertEqual('This is a custom field', ticket['foo'])        ticket.insert()    def test_create_ticket_2(self):        ticket = self._create_a_ticket()        ticket.insert()        # Retrieving ticket        ticket2 = Ticket(self.env, 1)        self.assertEqual(1, ticket2.id)        self.assertEqual('santa', ticket2['reporter'])        self.assertEqual('Foo', ticket2['summary'])        self.assertEqual('This is a custom field', ticket2['foo'])    def _modify_a_ticket(self):        ticket2 = self._create_a_ticket()        ticket2.insert()        ticket2['summary'] = 'Bar'        ticket2['foo'] = 'New value'        ticket2.save_changes('santa', 'this is my comment')        return ticket2    def test_create_ticket_3(self):        self._modify_a_ticket()        # Retrieving ticket        ticket3 = Ticket(self.env, 1)        self.assertEqual(1, ticket3.id)        self.assertEqual(ticket3['reporter'], 'santa')        self.assertEqual(ticket3['summary'], 'Bar')        self.assertEqual(ticket3['foo'], 'New value')    def test_create_ticket_4(self):        ticket3 = self._modify_a_ticket()        # Testing get_changelog()        log = ticket3.get_changelog()        self.assertEqual(len(log), 3)        ok_vals = ['foo', 'summary', 'comment']        self.failUnless(log[0][2] in ok_vals)        self.failUnless(log[1][2] in ok_vals)        self.failUnless(log[2][2] in ok_vals)    def test_create_ticket_5(self):        ticket3 = self._modify_a_ticket()        # Testing delete()        ticket3.delete()        log = ticket3.get_changelog()        self.assertEqual(len(log), 0)        self.assertRaises(TracError, Ticket, self.env, 1)    def test_ticket_default_values(self):        """        Verify that a ticket uses default values specified in the configuration        when created.        """        # Set defaults for some standard fields        self.env.config.set('ticket', 'default_type', 'defect')        self.env.config.set('ticket', 'default_component', 'component1')        # Add a custom field of type 'text' with a default value        self.env.config.set('ticket-custom', 'foo', 'text')        self.env.config.set('ticket-custom', 'foo.value', 'Something')        # Add a custom field of type 'select' with a default value specified as        # the value itself        self.env.config.set('ticket-custom', 'bar', 'select')        self.env.config.set('ticket-custom', 'bar.options', 'one|two|three')        self.env.config.set('ticket-custom', 'bar.value', 'two')        # Add a custom field of type 'select' with a default value specified as        # index into the options list        self.env.config.set('ticket-custom', 'baz', 'select')        self.env.config.set('ticket-custom', 'baz.options', 'one|two|three')        self.env.config.set('ticket-custom', 'baz.value', '2')        ticket = Ticket(self.env)        self.assertEqual('defect', ticket['type'])        self.assertEqual('component1', ticket['component'])        self.assertEqual('Something', ticket['foo'])        self.assertEqual('two', ticket['bar'])        self.assertEqual('three', ticket['baz'])    def test_set_field_stripped(self):        """        Verify that whitespace around ticket fields is stripped, except for        textarea fields.        """        ticket = Ticket(self.env)        ticket['component'] = '  foo  '        ticket['description'] = '  bar  '        self.assertEqual('foo', ticket['component'])        self.assertEqual('  bar  ', ticket['description'])    def test_owner_from_component(self):        """        Verify that the owner of a new ticket is set to the owner of the        component.        """        component = Component(self.env)        component.name = 'test'        component.owner = 'joe'        component.insert()        ticket = Ticket(self.env)        ticket['reporter'] = 'santa'        ticket['summary'] = 'Foo'        ticket['component'] = 'test'        ticket.insert()        self.assertEqual('joe', ticket['owner'])    def test_owner_from_changed_component(self):        """        Verify that the owner of a new ticket is updated when the component is        changed.        """        component1 = Component(self.env)        component1.name = 'test1'        component1.owner = 'joe'        component1.insert()        component2 = Component(self.env)        component2.name = 'test2'        component2.owner = 'kate'        component2.insert()        ticket = Ticket(self.env)        ticket['reporter'] = 'santa'        ticket['summary'] = 'Foo'        ticket['component'] = 'test1'        ticket['status'] = 'new'        tktid = ticket.insert()        ticket = Ticket(self.env, tktid)        ticket['component'] = 'test2'        ticket.save_changes('jane', 'Testing')        self.assertEqual('kate', ticket['owner'])    def test_populate_ticket(self):        data = {'summary': 'Hello world', 'reporter': 'john', 'foo': 'bar',                'foo': 'bar', 'checkbox_cbon': '', 'cbon': 'on',                'checkbox_cboff': ''}        ticket = Ticket(self.env)        ticket.populate(data)        # Standard fields        self.assertEqual('Hello world', ticket['summary'])        self.assertEqual('john', ticket['reporter'])        # An unknown field        assert ticket['bar'] is None        # Custom field        self.assertEqual('bar', ticket['foo'])        # Custom field of type 'checkbox'        self.assertEqual('on', ticket['cbon'])        self.assertEqual('0', ticket['cboff'])    def test_changelog(self):        tkt_id = self._insert_ticket('Test', reporter='joe', component='foo',                                     milestone='bar')        ticket = Ticket(self.env, tkt_id)        ticket['component'] = 'bar'        ticket['milestone'] = 'foo'        now = datetime(2001, 1, 1, 1, 1, 1, 0, utc)        ticket.save_changes('jane', 'Testing', now)        for t, author, field, old, new, permanent in ticket.get_changelog():            self.assertEqual((now, 'jane', True), (t, author, permanent))            if field == 'component':                self.assertEqual(('foo', 'bar'), (old, new))            elif field == 'milestone':                self.assertEqual(('bar', 'foo'), (old, new))            elif field == 'comment':                self.assertEqual(('', 'Testing'), (old, new))            else:                self.fail('Unexpected change (%s)'                          % ((t, author, field, old, new),))    def test_changelog_with_reverted_change(self):        tkt_id = self._insert_ticket('Test', reporter='joe', component='foo')        ticket = Ticket(self.env, tkt_id)        ticket['component'] = 'bar'        ticket['component'] = 'foo'        now = datetime(2001, 1, 1,  1, 1, 1, 0, utc)        ticket.save_changes('jane', 'Testing', now)        for t, author, field, old, new, permanent in ticket.get_changelog():            self.assertEqual((now, 'jane', True), (t, author, permanent))            if field == 'comment':                self.assertEqual(('', 'Testing'), (old, new))            else:                self.fail('Unexpected change (%s)'                          % ((t, author, field, old, new),))    def test_change_listener_created(self):        listener = TestTicketChangeListener(self.env)        ticket = self._create_a_ticket()        ticket.insert()        self.assertEqual('created', listener.action)        self.assertEqual(ticket, listener.ticket)    def test_change_listener_changed(self):        listener = TestTicketChangeListener(self.env)        data = {'component': 'foo', 'milestone': 'bar'}        tkt_id = self._insert_ticket('Hello World', reporter='john', **data)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩综合一区| 亚洲一二三四久久| 欧美老肥妇做.爰bbww视频| 成人美女在线观看| 国产在线视频一区二区| 亚洲美女视频一区| 日韩高清国产一区在线| 在线中文字幕一区二区| 色婷婷av一区二区| 亚洲最大成人网4388xx| 黄色精品一二区| 国产成人免费在线观看不卡| 欧洲一区在线电影| 欧美精品第1页| 精品国产91洋老外米糕| 91精选在线观看| 成人av网站免费观看| 国产伦理精品不卡| 成人在线视频一区| 在线观看视频欧美| 精品国产乱码久久久久久夜甘婷婷 | 福利91精品一区二区三区| 老色鬼精品视频在线观看播放| 久久精品99国产精品| 北条麻妃国产九九精品视频| 亚洲美女在线一区| 91网页版在线| 毛片av一区二区三区| 亚洲素人一区二区| 国产日韩欧美精品在线| 精品国产乱码久久久久久图片 | 视频一区免费在线观看| 丝袜诱惑亚洲看片| 日本欧美一区二区在线观看| 色偷偷一区二区三区| 丁香五精品蜜臀久久久久99网站| 国产精品少妇自拍| 欧美精品国产精品| 99re热这里只有精品免费视频| 日韩高清一区在线| 综合激情网...| 精品国产免费一区二区三区四区| 91福利区一区二区三区| 国产老女人精品毛片久久| 亚洲成人av福利| 国产精品成人免费在线| 欧美成人激情免费网| 欧美在线免费播放| www.av亚洲| 国产一区二区91| 免费视频一区二区| 舔着乳尖日韩一区| 自拍偷拍欧美激情| 国产日韩欧美激情| 精品久久久久久最新网址| 欧美日韩五月天| 色天天综合色天天久久| 丰满白嫩尤物一区二区| 精品一区二区免费看| 视频一区在线播放| 午夜精品一区二区三区免费视频| 亚洲欧洲日产国产综合网| 久久精品人人做人人综合| 91精品国产入口| 51精品国自产在线| 欧美日韩国产中文| 精品视频一区二区不卡| 91久久线看在观草草青青| 99精品偷自拍| 97久久精品人人做人人爽50路| 国产高清精品久久久久| 国产老妇另类xxxxx| 日韩一区精品视频| 国产精品白丝在线| 亚洲男人都懂的| 欧美三片在线视频观看| 国产酒店精品激情| 天天av天天翘天天综合网| 亚洲精品一区二区三区影院| 欧美这里有精品| 秋霞成人午夜伦在线观看| 日韩一区二区在线观看视频播放| 欧美精选在线播放| 亚洲乱码中文字幕| 亚洲天堂av一区| 国产精品福利电影一区二区三区四区| 中文在线资源观看网站视频免费不卡 | 欧美性猛交xxxx乱大交退制版 | jlzzjlzz欧美大全| 成人不卡免费av| 91香蕉视频黄| 欧美视频三区在线播放| 欧美美女bb生活片| 精品国产乱码久久久久久久| 久久久影院官网| 亚洲天堂成人网| 丝袜美腿亚洲综合| 国产精品99久久久久久久女警 | 毛片不卡一区二区| 国产精品一区二区三区乱码| eeuss国产一区二区三区| 色婷婷av一区二区三区软件| 91精品国产综合久久蜜臀| 精品动漫一区二区三区在线观看| 国产婷婷精品av在线| 亚洲精品乱码久久久久久| 日韩不卡一区二区| 成人福利在线看| 欧美日韩精品三区| 中文字幕av一区二区三区免费看 | 国产精品一二三| 97精品久久久久中文字幕| 欧美一区二视频| 国产精品蜜臀av| 婷婷综合在线观看| 粉嫩aⅴ一区二区三区四区五区| 欧美综合久久久| 久久久久高清精品| 亚洲午夜在线视频| 国产精品18久久久久久久久| 在线观看视频一区二区欧美日韩| 久久综合久久综合九色| 亚洲综合免费观看高清完整版在线| 麻豆传媒一区二区三区| 一本大道久久精品懂色aⅴ| 欧美videofree性高清杂交| 樱花影视一区二区| 欧美区在线观看| 欧美性受xxxx黑人xyx| 久久久久久久精| 午夜激情一区二区三区| 成人蜜臀av电影| 欧美变态口味重另类| 一区二区激情视频| 成人av在线播放网址| 日韩免费视频一区二区| 亚洲精选视频在线| 懂色av一区二区三区免费观看 | 欧美视频在线观看一区| 国产欧美一区视频| 久久成人免费电影| 欧美色倩网站大全免费| 中文字幕中文字幕一区二区| 精品亚洲国内自在自线福利| 8x8x8国产精品| 亚洲精品国产第一综合99久久| 国产成人综合亚洲网站| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 从欧美一区二区三区| 日韩欧美一级片| 日韩成人av影视| 欧美日韩一区 二区 三区 久久精品| 国产精品视频在线看| 国产乱妇无码大片在线观看| 91精品欧美综合在线观看最新| 夜夜爽夜夜爽精品视频| 一本一道综合狠狠老| 国产精品久久久久9999吃药| 国产成人在线网站| 久久久久久久久一| 国产综合色在线| 26uuu亚洲| 国产一区中文字幕| 久久久久综合网| 韩日av一区二区| 久久久久国产一区二区三区四区| 国内精品久久久久影院色| 日韩一区二区三区观看| 蜜桃精品视频在线| 91精品国产色综合久久ai换脸| 日本不卡中文字幕| 日韩一级二级三级| 精品一区二区在线免费观看| 久久亚洲精精品中文字幕早川悠里| 精品影视av免费| 亚洲精品在线电影| 国产成人免费视频| 国产精品乱码妇女bbbb| 成人深夜福利app| 中文字幕中文字幕在线一区 | 欧美精品久久一区| 蜜桃视频一区二区三区在线观看| 日韩一区二区三区电影| 美国毛片一区二区| 久久婷婷色综合| 成人av动漫网站| 亚洲精品一二三区| 欧美日韩成人高清| 韩国v欧美v日本v亚洲v| 中文字幕在线观看不卡| 天使萌一区二区三区免费观看| 丁香另类激情小说| 国产精品久久福利| 欧美视频三区在线播放| 久久97超碰国产精品超碰| 久久免费国产精品| 91在线观看地址| 奇米四色…亚洲| 国产精品美女一区二区三区| 欧美日韩亚洲综合在线|