本文整理汇总了Python中pacemaker.model.meta.Session.query方法的典型用法代码示例。如果您正苦于以下问题:Python Session.query方法的具体用法?Python Session.query怎么用?Python Session.query使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pacemaker.model.meta.Session
的用法示例。
在下文中一共展示了Session.query方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: index
# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
def index(self, id):
component = get_object_or_404(Component, id)
c.product_name = component.project.product.name
c.project_id = component.project_id
c.project_name = component.project.name
c.product_id = component.project.product_id
c.component_name = component.name
c.component_id = id
stmt = Session.query(Binary.source_id,
func.count('*').label('bin_count')).\
group_by(Binary.source_id).subquery()
c.sources = []
# SELECT source.*,bin_count FROM source LEFT JOIN (subquery)...
for source, count in Session.query(Source, stmt.c.bin_count).\
outerjoin((stmt, Source.id==stmt.c.source_id)).\
filter(Source.component_id == component.id).\
order_by(Source.name):
if not count:
count = 0
c.sources.append({'name': source.name,
'id': source.id,
'bin_count': count})
return render('/packages/component_overview.mako')
示例2: index
# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
def index(self, id):
"""Shows overview for product
"""
log.debug("ProductController.index action invoked")
product = get_object_or_404(Product, id)
c.product_id = product.id
c.product_name = product.name
stmt = Session.query(Component.project_id,
func.count('*').label('comp_count')).\
group_by(Component.project_id).subquery()
c.projects = []
# SELECT project.*,comp_count FROM project LEFT JOIN (subquery)...
for project, count in Session.query(Project, stmt.c.comp_count).\
outerjoin((stmt, Project.id==stmt.c.project_id)).\
filter(Project.product_id == product.id).\
order_by(Project.name):
if not count:
count = 0
c.projects.append({'name': project.name,
'id': project.id,
'comp_count': count})
return render('/packages/product_overview.mako')
示例3: index
# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
def index(self, id):
project = get_object_or_404(Project, id)
c.product_name = project.product.name
c.project_id = id
c.project_name = project.name
c.product_id = project.product_id
stmt = Session.query(Source.component_id,
func.count('*').label('src_count')).\
group_by(Source.component_id).subquery()
c.components = []
# SELECT component.*,src_count FROM component LEFT JOIN (subquery)...
for component, count in Session.query(Component, stmt.c.src_count).\
outerjoin((stmt, Component.id==stmt.c.component_id)).\
filter(Component.project_id == project.id).\
order_by(Component.name):
if not count:
count = 0
c.components.append({'name': component.name,
'id': component.id,
'src_count': count})
return render('/packages/project_overview.mako')
示例4: test_index
# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
def test_index(self):
# look up for object ID
project = Session.query(Project).first()
response = self.app.get(url(controller='packages/project',
action='index',
id=project.id))
示例5: test_index
# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
def test_index(self):
# look up for object ID
component = Session.query(Component).first()
response = self.app.get(url(controller='packages/component',
action='index',
id=component.id))
示例6: test_index
# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
def test_index(self):
""" Test ProductController.index action
"""
# look up for object ID
product = Session.query(Product).first()
response = self.app.get(url(controller='packages/product',
action='index',
id=product.id))
# Test response...
assert response.status == 200, "Wrong response code"
# get 404 if no ID provided
response = self.app.get(url(controller='packages/product',
action='index',
id=""),
status=404)
# Test response...
assert response.status == 404, "Wrong response code"
# get 404 if malformed ID provided
response = self.app.get(url(controller='packages/product',
action='index',
id="bla-bla..."),
status=404)
# Test response...
assert response.status == 404, "Wrong response code"
# get 404 if provided ID doesn't exist
response = self.app.get(url(controller='packages/product',
action='index',
id=30000),
status=404)
# Test response...
assert response.status == 404, "Wrong response code"
示例7: delete
# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
def delete(self, id):
"""Deletes a selected project.
"""
#TODO: check permisssions
project = get_object_or_404(Project, id)
comp_count = Session.query(Component).filter_by(project_id = id).count()
if comp_count > 0:
h.flash("Can't delete the project %s as it still \
contains components." % project.name)
return redirect_to(controller='packages/product',
action='index',
id=project.product_id)
name = project.name
Session.begin()
Session.delete(project)
Session.commit()
h.flash("The project <b>%s</b> has been deleted successfully" % \
name)
return redirect_to(controller='packages/product',
action='index',
id=project.product_id)
示例8: walktree
# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
def walktree(self, depth = 0, root = 'source'):
"""Recursion function to walk over the acrhitectural tree"""
# our hierachy
chain = ('product', 'project', 'component', 'source', 'binary')
# plural forms
chains = ('products', 'projects', 'components', 'sources', 'binaries',
'stop')
# agregation hierachy
chainclass = (Product, Project, Component, Source, Binary)
response = self.app.get(url(controller = 'packages/architecture',
action = 'get_architecture_nodes'),
params = {'root': root})
nodes = simplejson.loads(response.body)
assert len(nodes) == 3, "AJAX returned wrong number of nodes"
for node in nodes:
assert node['classes'] == chain[depth] + 'item', \
"Wrong class of item"
itemtype, id = node['id'].split('_')
assert itemtype == chain[depth], \
"Wrong type of item"
db_node = Session.query(chainclass[depth]).filter_by(id = id).one()
if chains[depth + 1] != 'stop':
subnodes = getattr(db_node, chains[depth + 1])
if len(subnodes) > 0:
assert node['hasChildren'], "Wring hasChildren attribute"
self.walktree(depth + 1, node['id'])
else:
assert not node['hasChildren'], \
"Wring hasChildren attribute"
else:
assert not node['hasChildren'], \
"Leaf node must not have children"
示例9: test_delete
# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
def test_delete(self):
""" Test ProductController.delete action
"""
product = Session.query(Product).\
filter_by(name='product_to_delete').first()
product_id = product.id
response = self.app.post(url(controller='packages/product',
action='delete',
id=product_id))
# Test response...
assert response.status == 302, "Wrong response code"
print "Location: ", response.header_dict['location']
print "Expected location: ", url(controller='packages/packages', host='localhost'), \
"Wrong response location"
assert response.header_dict['location'] == \
url(controller='packages/packages', host='localhost'), \
"Wrong response location"
# reset sqlalchemy cache
Session.begin()
Session.commit()
count = Session.query(Product).\
filter_by(name='product_to_delete').count()
assert count == 0, "Product hasn't been deleted"
# Try to delete product which has children
product = Session.query(Product).\
filter_by(name='product1').first()
product_id = product.id
response = self.app.post(url(controller='packages/product',
action='delete',
id=product_id))
# Test response...
assert response.status == 302, "Wrong response code"
assert response.header_dict['location'] == \
url(controller='packages/product',
host='localhost',
id=product_id), \
"Wrong response location"
# reset sqlalchemy cache
Session.begin()
Session.commit()
count = Session.query(Product).\
filter_by(name='product1').count()
assert count == 1, "Product has been deleted"
示例10: test_add_project
# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
def test_add_project(self):
""" Test ProductController.add_project action
"""
product = Session.query(Product).filter_by(name='product1').first()
response = self.app.get(url(controller='packages/product',
action='add_project',
id=product.id))
# Test response...
assert response.status == 200, "Wrong response code"
示例11: test_edit
# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
def test_edit(self):
""" Test ProductController.edit action
"""
# look up for object ID
product = Session.query(Product).first()
response = self.app.get(url(controller='packages/product',
action='edit',
id=product.id))
# Test response...
assert response.status == 200, "Wrong response code"
示例12: test_submit_project
# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
def test_submit_project(self):
""" Test ProductController.submit_project action
"""
product = Session.query(Product).filter_by(name='product1').first()
product_id = product.id
response = self.app.post(url(controller='packages/product',
action='submit_project',
id=product_id),
params={
'name': 'project333'
})
# Test response...
assert response.status == 302, "Wrong response code"
assert response.header_dict['location'] == \
url(host='localhost',
controller='packages/product',
action='index',
id=product_id), "Wrong response location"
project = Session.query(Project).filter_by(name='project333').first()
assert project.product_id == product_id, \
"New project assigned to wrong product"
示例13: test_submit_edit
# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
def test_submit_edit(self):
""" Test ProductController.submit_edit action
"""
product = Session.query(Product).\
filter_by(name='product_to_edit').first()
product_id = product.id
response = self.app.post(url(controller='packages/product',
action='submit_edit',
id=product_id),
params={
'name': 'product_new_name'
})
# Test response...
assert response.status == 302, "Wrong response code"
assert response.header_dict['location'] == \
url(controller='packages/product',
host='localhost',
id=product_id), \
"Wrong response location"
# reset sqlalchemy cache
Session.begin()
Session.commit()
product_n = Session.query(Product).filter_by(id=product_id).first()
assert product_n.name == 'product_new_name', "Wrong product name"
示例14: get_object_or_404
# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
def get_object_or_404(class_, id):
"""Gets model object from DB if available or shows 404 page.
"""
if not id:
abort(404)
try:
id = int(id)
except ValueError:
abort(404)
object = Session.query(class_).filter_by(id = id).first()
if object is None:
abort(404)
return object
示例15: run
# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
def run(self):
# look for root tasks
#
# SELECT task.id, count(ta.parent_task_id) AS parent_count
# FROM task
# LEFT OUTER JOIN task_association ta ON task.id=ta.child_task_id
# WHERE request_id = %d
# GROUP BY task.id
# HAVING count(ta.parent_task_id) = 0
roottasks = Session.query(Task).filter(Task.request_id==self.id).\
outerjoin((task_association_table,
Task.id==task_association_table.c.child_task_id)).\
group_by(Task).\
having(func.count(task_association_table.c.parent_task_id)==0)
for roottask in roottasks:
roottask.run()