本文整理汇总了Python中trac.env.Environment.db_transaction方法的典型用法代码示例。如果您正苦于以下问题:Python Environment.db_transaction方法的具体用法?Python Environment.db_transaction怎么用?Python Environment.db_transaction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类trac.env.Environment
的用法示例。
在下文中一共展示了Environment.db_transaction方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: TracDatabase
# 需要导入模块: from trac.env import Environment [as 别名]
# 或者: from trac.env.Environment import db_transaction [as 别名]
class TracDatabase(object):
def __init__(self, path):
self.env = Environment(path)
self.loginNameCache = {}
self.fieldNameCache = {}
from trac.db.api import DatabaseManager
self.using_postgres = \
DatabaseManager(self.env).connection_uri.startswith("postgres:")
def hasTickets(self):
return int(self.env.db_query("SELECT count(*) FROM ticket")[0][0] > 0)
def assertNoTickets(self):
if self.hasTickets():
raise Exception("Will not modify database with existing tickets!")
def setSeverityList(self, s):
"""Remove all severities, set them to `s`"""
self.assertNoTickets()
with self.env.db_transaction as db:
db("DELETE FROM enum WHERE type='severity'")
for value, i in s:
#print " inserting severity '%s' - '%s'" % (value, i)
db("""INSERT INTO enum (type, name, value)
VALUES (%s, %s, %s)""",
("severity", value, i))
def setPriorityList(self, s):
"""Remove all priorities, set them to `s`"""
self.assertNoTickets()
with self.env.db_transaction as db:
db("DELETE FROM enum WHERE type='priority'")
for value, i in s:
print " inserting priority '%s' - '%s'" % (value, i)
db("INSERT INTO enum (type, name, value) VALUES (%s, %s, %s)",
("priority", value, i))
def setComponentList(self, l):
"""Remove all components, set them to `l`"""
self.assertNoTickets()
with self.env.db_transaction as db:
db("DELETE FROM component")
for comp in l:
#print " inserting component '%s', owner '%s'" % \
# (comp, DEF_OWNER)
db("INSERT INTO component (name, owner) VALUES (%s, %s)",
(comp, DEF_OWNER))
def setVersionList(self, v, key):
"""Remove all versions, set them to `v`"""
self.assertNoTickets()
with self.env.db_transaction as db:
db("DELETE FROM version")
for vers in v:
print " inserting version '%s'" % (vers[key])
db("INSERT INTO version (name) VALUES (%s)",
(vers[key],))
def setMilestoneList(self, m, key):
"""Remove all milestones, set them to `m`"""
self.assertNoTickets()
with self.env.db_transaction as db:
db("DELETE FROM milestone")
for ms in m:
milestone = ms[key]
print " inserting milestone '%s'" % (milestone)
db("INSERT INTO milestone (name) VALUES (%s)",
(milestone,))
def addTicket(self, id, time, changetime, component, severity, priority,
owner, reporter, cc, version, milestone, status, resolution,
summary, description, keywords, customfields):
desc = description
type = "defect"
if SEVERITIES:
if severity.lower() == "enhancement":
severity = "minor"
type = "enhancement"
else:
if priority.lower() == "enhancement":
priority = "minor"
type = "enhancement"
if PREFORMAT_COMMENTS:
desc = '{{{\n%s\n}}}' % desc
if REPLACE_BUG_NO:
if BUG_NO_RE.search(desc):
desc = re.sub(BUG_NO_RE, BUG_NO_REPL, desc)
if PRIORITIES_MAP.has_key(priority):
priority = PRIORITIES_MAP[priority]
#.........这里部分代码省略.........