本文整理汇总了Python中trac.ticket.Ticket.insert方法的典型用法代码示例。如果您正苦于以下问题:Python Ticket.insert方法的具体用法?Python Ticket.insert怎么用?Python Ticket.insert使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类trac.ticket.Ticket
的用法示例。
在下文中一共展示了Ticket.insert方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: import_tickets
# 需要导入模块: from trac.ticket import Ticket [as 别名]
# 或者: from trac.ticket.Ticket import insert [as 别名]
def import_tickets(self):
trac_cursor = self.env.get_db_cnx().cursor()
peer = SymfonyErrorPeer(self.env)
owners = {}
trac_cursor.execute("select owner, name from component")
for name, owner in trac_cursor:
owners[name] = owner
for error in peer.select_grouped():
# ticket with current hash key not exists ?
trac_cursor.execute("select ticket from ticket_custom where name = 'symfony_error_key' and value = '%s'" % error['hash_key'])
existing = trac_cursor.fetchone()
if not existing:
ticket = Ticket(self.env)
ticket.values['summary'] = 'Bug #' + error['hash_key'] + ' ' + error['message']
ticket.values['symfony_error_key'] = error['hash_key']
ticket.values['reporter'] = 'cron'
ticket.values['resolution'] = 'new'
ticket.values['status'] = 'new'
ticket.values['milestone'] = '0.3.1'
if error['module_name'] in owners:
owner = owners[error['module_name']]
else:
owner = self.default_owner
ticket.values['owner'] = owner
ticket.insert()
示例2: create_ticket_for_lineitem
# 需要导入模块: from trac.ticket import Ticket [as 别名]
# 或者: from trac.ticket.Ticket import insert [as 别名]
def create_ticket_for_lineitem (self, req, id, addMesage, lineitem, summary=None):
#skip line items that have a ticket
if re.search('/ticket/\d+', lineitem.description): return
compname = 'Estimate-'+str(id)
if summary: compname = summary
ensure_component(self.env, compname, req.authname)
t = Ticket(self.env)
# try to split on a newline or space that is less than 80 chars into the string
idx = lineitem.description.find('\n', 0, 80)
if idx < 0: idx = lineitem.description.find(' ', 45, 80)
if idx < 0: idx = 45
summary = lineitem.description[:idx]
desc = lineitem.description
desc += "\n\nFrom [/Estimate?id=%s Created From Estimate %s]" % \
(lineitem.estimate_id,lineitem.estimate_id)
t.values['summary'] = summary
t.values['description'] = desc
t.values['status'] = 'new'
t.values['reporter'] = req.authname
t.values['component'] = compname
t.values['estimatedhours'] = avg(lineitem.low, lineitem.high)
t.insert()
lineitem.description+="\n\nCreated as /ticket/%s" % (t.id, )
return t
示例3: move
# 需要导入模块: from trac.ticket import Ticket [as 别名]
# 或者: from trac.ticket.Ticket import insert [as 别名]
def move(self, ticket_id, author, env, delete=False):
"""
move a ticket to another environment
env: environment to move to
"""
tables = {"attachment": "id", "ticket_change": "ticket"}
# open the environment if it is a string
if isinstance(env, basestring):
base_path, _project = os.path.split(self.env.path)
env = open_environment(os.path.join(base_path, env), use_cache=True)
# get the old ticket
old_ticket = Ticket(self.env, ticket_id)
# make a new ticket from the old ticket values
new_ticket = Ticket(env)
new_ticket.values = old_ticket.values.copy()
new_ticket.insert(when=old_ticket.time_created)
# copy the changelog and attachment DBs
for table, _id in tables.items():
for row in get_all_dict(self.env, "SELECT * FROM %s WHERE %s=%%s" % (table, _id), str(ticket_id)):
row[_id] = new_ticket.id
insert_row_from_dict(env, table, row)
# copy the attachments
src_attachment_dir = os.path.join(self.env.path, "attachments", "ticket", str(ticket_id))
if os.path.exists(src_attachment_dir):
dest_attachment_dir = os.path.join(env.path, "attachments", "ticket")
if not os.path.exists(dest_attachment_dir):
os.makedirs(dest_attachment_dir)
dest_attachment_dir = os.path.join(dest_attachment_dir, str(new_ticket.id))
shutil.copytree(src_attachment_dir, dest_attachment_dir)
# note the previous location on the new ticket
new_ticket.save_changes(author, "moved from %s" % self.env.abs_href("ticket", ticket_id))
# location of new ticket
new_location = env.abs_href.ticket(new_ticket.id)
if delete:
old_ticket.delete()
else:
# close old ticket and point to new one
old_ticket["status"] = u"closed"
old_ticket["resolution"] = u"moved"
old_ticket.save_changes(author, u"moved to %s" % new_location)
if env.config["trac"].get("base_url"):
return new_location
else:
return None
示例4: test_remove_all
# 需要导入模块: from trac.ticket import Ticket [as 别名]
# 或者: from trac.ticket.Ticket import insert [as 别名]
def test_remove_all(self):
test_name = sys._getframe().f_code.co_name
expected = self.expected_results[test_name]
ticket = Ticket(self.env)
ticket.populate({'reporter': 'santa', 'summary': 'Summary line',
'description': 'Lorem ipsum dolor sit amet',
})
ticket.insert()
self.assertEqual(1, len(self._get_docs()))
rv, output = self._execute('fulltext remove')
self.assertEqual(expected, output)
self.assertEqual(0, len(self._get_docs()))
示例5: parse
# 需要导入模块: from trac.ticket import Ticket [as 别名]
# 或者: from trac.ticket.Ticket import insert [as 别名]
def parse(self, fp):
msg = email.message_from_file(fp)
tkt = Ticket(self.env)
tkt["status"] = "new"
tkt["reporter"] = msg["from"]
tkt["summary"] = msg["subject"]
for part in msg.walk():
if part.get_content_type() == "text/plain":
tkt["description"] = part.get_payload(decode=1).strip()
if tkt.values.get("description"):
tkt.insert()
示例6: invoke
# 需要导入模块: from trac.ticket import Ticket [as 别名]
# 或者: from trac.ticket.Ticket import insert [as 别名]
def invoke(self, message, warnings):
"""make a new ticket on receiving email"""
# local warnings
_warnings = []
# get the ticket reporter
reporter = self._reporter(message)
# get the description and attachments
mailBody, attachments = get_body_and_attachments(message)
mailBody += '\n'
# get the ticket fields
fields = self._fields(mailBody, _warnings, reporter=reporter)
# inset items from email
ticket = Ticket(self.env)
for key, value in fields.items():
ticket.values[key] = value
# fill in default values
for field in ticket.fields:
name = field['name']
if name not in fields:
option = 'ticket_field.%s' % name
if self.env.config.has_option('mail', option):
ticket.values[name] = self.env.config.get('mail', option)
else:
try:
value = ticket.get_value_or_default(name) or ''
except AttributeError: # BBB
value = ''
if value is not None:
ticket.values[name] = value
# create the ticket
ticket.insert()
# add attachments to the ticket
add_attachments(self.env, ticket, attachments)
# do whatever post-processing is necessary
self.post_process(ticket)
# add local warnings
if _warnings:
warning = """A ticket has been created but there is a problem:\n\n%s\n\nPlease edit your ticket by going here: %s""" % ('\n\n'.join([' - %s' % warning for warning in _warnings]), self.env.abs_href('ticket', ticket.id))
warnings.append(warning)
示例7: _clone_testcase
# 需要导入模块: from trac.ticket import Ticket [as 别名]
# 或者: from trac.ticket.Ticket import insert [as 别名]
def _clone_testcase(self, db, id, status, milestone, assign=None):
self.env.log.info("Cloning ticket %d (status == %s)" % (id, status))
ticket_new = Ticket(self.env, db=db)
ticket_old = Ticket(self.env, tkt_id=id, db=db)
for k,v in ticket_old.values.items():
self.env.log.debug("id: %d\tkey: %s\t\tvalue: %s" % (id,k,v))
ticket_new.values[k] = ticket_old.values[k]
if assign and len(assign) > 0:
ticket_new['owner'] = assign.strip()
ticket_new.values['milestone'] = milestone
ticket_new.insert()
for k,v in ticket_new.values.items():
self.env.log.info("%s\t%s" % (k, v))
示例8: test_can_insert_tickets_after_upgrade
# 需要导入模块: from trac.ticket import Ticket [as 别名]
# 或者: from trac.ticket.Ticket import insert [as 别名]
def test_can_insert_tickets_after_upgrade(self):
t1 = Ticket(self.env)
t1.summary = "test"
t1.insert()
self.assertEqual(t1.id, 1)
self._enable_multiproduct()
self.env.upgrade()
with self.product('@'):
ticket = Ticket(self.env)
ticket.summary = 'test'
ticket.insert()
self.assertEqual(ticket.id, 2)
示例9: _insert_ticket
# 需要导入模块: from trac.ticket import Ticket [as 别名]
# 或者: from trac.ticket.Ticket import insert [as 别名]
def _insert_ticket(cls, env, summary, **kw):
"""Helper for inserting a ticket into the database"""
ticket = Ticket(env)
ticket["summary"] = summary
for k, v in kw.items():
ticket[k] = v
return ticket.insert()
示例10: _do_create
# 需要导入模块: from trac.ticket import Ticket [as 别名]
# 或者: from trac.ticket.Ticket import insert [as 别名]
def _do_create(self, req, db):
if not req.args.get('summary'):
raise TracError(u'Les tickets doivent contenir un intitulé.')
ticket = Ticket(self.env, db=db)
ticket.populate(req.args)
ticket.values['reporter'] = get_reporter_id(req, 'reporter')
self._validate_ticket(req, ticket)
ticket.insert(db=db)
db.commit()
# Notify
try:
tn = TicketNotifyEmail(self.env)
tn.notify(ticket, newticket=True)
except Exception, e:
self.log.exception(u"Impossible d'envoyer une notification sur la création du "
u"ticket #%s: %s" % (ticket.id, e))
示例11: _do_create
# 需要导入模块: from trac.ticket import Ticket [as 别名]
# 或者: from trac.ticket.Ticket import insert [as 别名]
def _do_create(self, req, db):
if not req.args.get('summary'):
raise TracError('Tickets must contain a summary.')
ticket = Ticket(self.env, db=db)
ticket.populate(req.args)
ticket.values['reporter'] = get_reporter_id(req, 'reporter')
self._validate_ticket(req, ticket)
ticket.insert(db=db)
db.commit()
# Notify
try:
tn = TicketNotifyEmail(self.env)
tn.notify(ticket, newticket=True)
except Exception, e:
self.log.exception("Failure sending notification on creation of "
"ticket #%s: %s" % (ticket.id, e))
示例12: _do_create
# 需要导入模块: from trac.ticket import Ticket [as 别名]
# 或者: from trac.ticket.Ticket import insert [as 别名]
def _do_create(self, req, db):
if not req.args.get('summary'):
raise TracError('Tickets must contain a summary.')
ticket = Ticket(self.env, db=db)
ticket.values.setdefault('reporter', util.get_reporter_id(req))
ticket.populate(req.args)
#Check for required fields
ticket.validate_required_fields(req.args)
ticket.insert(db=db)
db.commit()
# Notify
try:
tn = TicketNotifyEmail(self.env)
tn.notify(ticket, newticket=True)
except Exception, e:
self.log.exception("Failure sending notification on creation of "
"ticket #%s: %s" % (ticket.id, e))
示例13: test_ticket
# 需要导入模块: from trac.ticket import Ticket [as 别名]
# 或者: from trac.ticket.Ticket import insert [as 别名]
def test_ticket(self):
self.env.config.set('ticket-custom', 'foo', 'text')
ticket = Ticket(self.env)
ticket.populate({'reporter': 'santa', 'summary': 'Summary line',
'description': 'Lorem ipsum dolor sit amet',
'foo': 'This is a custom field',
'keywords': 'alpha bravo charlie',
'cc': '[email protected], [email protected]',
})
ticket.insert()
so = self._get_so()
self.assertEquals('%s:ticket:1' % self.basename, so.doc_id)
self.assertEquals('ticket', so.realm)
self.assertEquals('1', so.id)
self.assertTrue('#1' in so.title)
self.assertTrue('Summary line' in so.title)
self.assertEquals('santa', so.author)
self.assertEquals(ticket['time'], so.created)
self.assertEquals(ticket['changetime'], so.changed)
self.assertTrue('[email protected]' in so.involved)
self.assertTrue('[email protected]' in so.involved)
self.assertTrue('bravo' in so.tags)
self.assertTrue('Lorem ipsum' in so.oneline)
self.assertTrue('Lorem ipsum' in so.body)
original_time = ticket['time']
ticket['description'] = 'No latin filler here'
ticket.save_changes('Jack Sprat', 'Could eat no fat')
so = self._get_so()
self.assertEquals('%s:ticket:1' % self.basename, so.doc_id)
self.assertEquals('ticket', so.realm)
self.assertEquals('1', so.id)
self.assertEquals(original_time, so.created)
self.assertEquals(ticket['changetime'], so.changed)
self.assertFalse('Lorem ipsum' in so.body)
self.assertTrue('No latin filler here' in so.body)
self.assertTrue('Could eat no fat' in so.comments)
示例14: run
# 需要导入模块: from trac.ticket import Ticket [as 别名]
# 或者: from trac.ticket.Ticket import insert [as 别名]
def run(options):
#
# defualt value
#
T_STATUS = 'new'
T_MILESTONE = ''
#
# begin to create new ticket
#
TRAC_ENV = os.environ.get('TRAC_ENV') or os.path.expanduser('/home/trac/glue')
if not os.path.isdir(TRAC_ENV):
print >>sys.stderr, "Set TRAC_ENV to the Trac project directory."
#sys.exit(2)
return {
"status": 2
}
from trac.env import open_environment
from trac.ticket import Ticket
t = Ticket(open_environment(TRAC_ENV))
info = dict(
status=T_STATUS,
owner=options["owner"], reporter=options["reporter"], cc=options["cc"],
milestone=T_MILESTONE, type=options["type"],
summary=options["summary"].decode(sys.getfilesystemencoding()),
description = options["description"].decode(sys.getfilesystemencoding())
)
t.populate(info)
num = t.insert()
if not num:
print >>sys.stderr, "Ticket not created"
print >>sys.stderr, vals
#sys.exit(1)
return {
"status": 1
}
#print "Ticket #%d" % (num)
return {
"status": 0,
"id": num
}
示例15: __create_new_ticket
# 需要导入模块: from trac.ticket import Ticket [as 别名]
# 或者: from trac.ticket.Ticket import insert [as 别名]
def __create_new_ticket(self, page, title, owner):
matched = re.compile(r'^\[(.*)\](.*)').search(title)
if matched:
summary = matched.group(2)
owner = matched.group(1)
else:
summary = title
owner = None
ticket = Ticket(self.env)
ticket.values = {
'status': 'new',
'reporter': page.author,
'summary': summary,
'owner': owner,
'description': "wiki:%s" % page.name,
}
return ticket.insert()