本文整理汇总了Python中mongoalchemy.session.Session类的典型用法代码示例。如果您正苦于以下问题:Python Session类的具体用法?Python Session怎么用?Python Session使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Session类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_cache_miss
def test_cache_miss():
s_nocache = Session.connect("unit-testing", cache_size=10)
t = TExtra(i=4)
s_nocache.insert(t)
s = Session.connect("unit-testing", cache_size=10)
s.add_to_session(t)
t2 = s.query(TExtra).filter_by(mongo_id=t.mongo_id).one()
开发者ID:snahor,项目名称:MongoAlchemy,代码行数:8,代码来源:test_session.py
示例2: test_dereference_doc
def test_dereference_doc():
class A(Document):
x = IntField()
s = Session.connect('unit-testing', cache_size=0)
s.clear_collection(A)
a = A(x=5)
s.insert(a)
dbaref = DBRef(collection='A', id=a.mongo_id, database='unit-testing')
s2 = Session.connect('unit-testing2', cache_size=0)
assert s2.dereference(a).x == 5
开发者ID:piraz,项目名称:MongoAlchemy,代码行数:12,代码来源:test_ref_field.py
示例3: test_dereference
def test_dereference():
class A(Document):
x = IntField()
s = Session.connect("unit-testing", cache_size=0)
s.clear_collection(A)
a = A(x=5)
s.insert(a)
dbaref = DBRef(collection="A", id=a.mongo_id, database="unit-testing")
s2 = Session.connect("unit-testing2", cache_size=0)
assert s2.dereference(dbaref).x == 5
开发者ID:kronosapiens,项目名称:MongoAlchemy,代码行数:12,代码来源:test_ref_field.py
示例4: test_update_ignore_extras
def test_update_ignore_extras():
s = Session.connect('unit-testing')
s.clear_collection(TExtra)
# Create Object
t = TExtra(i=1, j='test', k='test2')
s.save(t)
# Retrieve Object
t = s.query(TExtra).one()
assert t.i == 1
assert t.get_extra_fields()['j'] == 'test'
assert t.get_extra_fields()['k'] == 'test2'
# Update Object
t.i = 5
del t.get_extra_fields()['j'] # delete an extra field
t.get_extra_fields()['k'] = 'changed' # change an extra field
t.get_extra_fields()['l'] = 'added' # new extra field
s.update(t)
# Retrieve Object
t_new = s.query(TExtra).one()
assert 'j' not in t_new.get_extra_fields()
assert t_new.get_extra_fields()['k'] == 'changed'
assert t_new.get_extra_fields()['l'] == 'added'
assert t_new.i == 5
开发者ID:recio862,项目名称:MongoAlchemy,代码行数:25,代码来源:test_session.py
示例5: login
def login(request):
basept = get_renderer('templates/base.pt').implementation()
login_url = resource_url(request.context, request, 'login')
referrer = request.url
if referrer == login_url:
referrer = request.application_url
came_from = request.params.get('came_from', referrer)
message = ''
login = ''
password = ''
if 'form.submitted' in request.params:
login = request.params['login']
password = request.params['password']
with Session.connect(request.registry.settings['db_name'] ) as s:
try:
user = s.query(User).filter_by(email=login).one()
except:
user = None
if user is not None and user.password == password:
headers = remember(request, login)
return HTTPFound(location = came_from,
headers = headers)
message = 'Failed login'
return dict(
message = message,
url = request.application_url + '/login',
came_from = came_from,
login = login,
password = password,
base_pt = basept
)
开发者ID:mrcrabby,项目名称:aranciulla,代码行数:32,代码来源:login.py
示例6: test_cache_max
def test_cache_max():
# not a great test, but gets coverage
s = Session.connect("unit-testing", cache_size=3)
for i in range(0, 10):
t = TExtra(i=4)
s.insert(t)
assert len(s.cache) == 3
开发者ID:snahor,项目名称:MongoAlchemy,代码行数:7,代码来源:test_session.py
示例7: test_update_ignore_extras
def test_update_ignore_extras():
s = Session.connect("unit-testing")
s.clear_collection(TExtra)
# Create Object
t = TExtra(i=1, j="test", k="test2")
s.insert(t)
# Retrieve Object
t = s.query(TExtra).one()
assert t.i == 1
assert t.get_extra_fields()["j"] == "test"
assert t.get_extra_fields()["k"] == "test2"
# Update Object
t.i = 5
del t.get_extra_fields()["j"] # delete an extra field
t.get_extra_fields()["k"] = "changed" # change an extra field
t.get_extra_fields()["l"] = "added" # new extra field
s.update(t)
# Retrieve Object
t_new = s.query(TExtra).one()
assert "j" not in t_new.get_extra_fields()
assert t_new.get_extra_fields()["k"] == "changed"
assert t_new.get_extra_fields()["l"] == "added"
assert t_new.i == 5
开发者ID:snahor,项目名称:MongoAlchemy,代码行数:25,代码来源:test_session.py
示例8: test_regex
def test_regex():
class Spell(Document):
name = StringField()
s = Session.connect('unit-testing')
s.clear_collection(Spell)
s.save(Spell(name='Wingardium Leviosa'))
s.save(Spell(name='abracadabra'))
s.save(Spell(name='ab.*ra.ca.da.*bra'))
s.save(Spell(name='Alacazam'))
# check ignore case True
q = s.query(Spell).filter(Spell.name.startswith('wingardium', ignore_case=True))
assert q.first().name == 'Wingardium Leviosa'
# check ignore case False (default)
xs = s.query(Spell).filter(Spell.name.startswith('wingardium')).all()
assert len(xs) == 0
# check regex-free startswith and endswith
assert len(s.query(Spell).filter(Spell.name.startswith('ab.*ra.ca')).all()) == 1
assert len(s.query(Spell).filter(Spell.name.endswith('da.*bra')).all()) == 1
# check regex
assert len(s.query(Spell).filter(Spell.name.regex(r'^[Aa]\w*[am]$')).all()) == 2
# check regex with options
assert len(s.query(Spell).filter(Spell.name.regex(r'^[a]\w*[am]$', options='i')).all()) == 2
开发者ID:damiengermonville,项目名称:MongoAlchemy,代码行数:27,代码来源:test_query_expressions.py
示例9: admin
def admin(request):
message = ""
if "form.submitted" in request.params:
login = request.params["login"]
password = request.params["password"]
max_keys = request.params["max_keys"]
try:
max_keys = int(max_keys)
except:
max_keys = -1
with Session.connect(request.registry.settings["db_name"]) as s:
try:
user = s.query(User).filter_by(email=login).one()
except:
user = User(
email=login,
password=password,
max_keys=max_keys,
groups=["admin"] if request.params.get("admin") else [],
scritti=[],
bloccati=[],
)
s.insert(user)
message = "user created"
return dict(message=message)
开发者ID:mrcrabby,项目名称:aranciulla,代码行数:26,代码来源:views.py
示例10: test_update_list
def test_update_list():
s = Session.connect("unit-testing")
s.clear_collection(TIntListDoc)
tIntList = TIntListDoc(intlist=[1, 2])
s.insert(tIntList)
# pull out of db
tFetched = s.query(TIntListDoc).one()
assert sorted([1, 2]) == sorted(tFetched.intlist)
# append to list, update
l = tFetched.intlist
l.append(3)
s.update(tFetched)
# pull out of db
tFetched = s.query(TIntListDoc).one()
assert sorted([1, 2, 3]) == sorted(tFetched.intlist)
tFetched.intlist.remove(1)
s.update(tFetched)
tFetched = s.query(TIntListDoc).one()
assert sorted([2, 3]) == sorted(tFetched.intlist)
开发者ID:snahor,项目名称:MongoAlchemy,代码行数:28,代码来源:test_session.py
示例11: test_tz_aware
def test_tz_aware():
import pytz
from mongoalchemy.session import Session
from mongoalchemy.document import Document
# doc
class DocTZ(Document):
time = DateTimeField(use_tz=True)
class DocNoTZ(Document):
time = DateTimeField(use_tz=False)
# timezone -- choose one where the author doesn't live
eastern = pytz.timezone('Australia/Melbourne')
utc = pytz.utc
# session
s = Session.connect('unit-testing', timezone=eastern)
s.clear_collection(DocTZ)
s.clear_collection(DocNoTZ)
# time
local = eastern.localize(datetime.now())
local = local.replace(microsecond=0)
doc = DocTZ(time=local)
s.insert(doc)
doc = s.query(DocTZ).one()
assert doc.time == local, (doc.time, local)
# do the no timezone case for code coverage
s.insert(DocNoTZ(time=datetime(2012, 1, 1)))
obj = s.query(DocNoTZ).one()
开发者ID:dustinkeitel,项目名称:MongoAlchemy,代码行数:29,代码来源:test_fields.py
示例12: test_geo
def test_geo():
class Place(Document):
config_collection_name = 'places4'
loc = GeoField()
val = IntField()
index = Index().geo2d('loc', min=-100, max=100)
s = Session.connect('unit-testing')
s.clear_collection(Place)
s.insert(Place(loc=(1,1), val=2))
s.insert(Place(loc=(5,5), val=4))
s.insert(Place(loc=(30,30 ), val=5))
x = s.query(Place).filter(Place.loc.near(0, 1))
assert x.first().val == 2, x.query
xs = s.query(Place).filter(Place.loc.near(1, 1, max_distance=2)).all()
assert len(xs) == 1, xs
xs = s.query(Place).filter(Place.loc.near_sphere(1, 1, max_distance=50)).all()
assert len(xs) == 3
q = s.query(Place).filter(Place.loc.within_box([-2, -2], [2, 2]))
assert len(q.all()) == 1, q.query
q = s.query(Place).filter(Place.loc.within_radius(0, 0, 2))
assert len(q.all()) == 1, q.query
q = s.query(Place).filter(Place.loc.within_polygon(
[[-2, 0], [2, 0], [0, 2], [0, -2]]
))
assert len(q.all()) == 1, q.query
q = s.query(Place).filter(Place.loc.within_radius_sphere(30, 30, 0.0001))
assert len(q.all()) == 1, q.all()
开发者ID:bugparty,项目名称:MongoAlchemy,代码行数:33,代码来源:test_query_expressions.py
示例13: test_bad_dereference
def test_bad_dereference():
class A(Document):
x = IntField()
s = Session.connect("unit-testing", cache_size=0)
s.clear_collection(A)
dbaref = DBRef(collection="A", id=ObjectId(), database="unit-testing")
s.dereference(dbaref)
开发者ID:kronosapiens,项目名称:MongoAlchemy,代码行数:8,代码来源:test_ref_field.py
示例14: middleware
async def middleware(request):
if request.path.startswith('/api/'):
request.db_session = Session.connect(
config.get("mongo_database_name")
)
response = await handler(request)
return response
开发者ID:jf-parent,项目名称:webbase,代码行数:8,代码来源:middlewares.py
示例15: test_cache
def test_cache():
s = Session.connect("unit-testing", cache_size=10)
t = TExtra(i=4)
s.insert(t)
s.insert(t)
t2 = s.query(TExtra).filter_by(mongo_id=t.mongo_id).one()
assert id(t) == id(t2)
assert id(s.refresh(t)) != t2
开发者ID:snahor,项目名称:MongoAlchemy,代码行数:8,代码来源:test_session.py
示例16: test_cache3
def test_cache3():
s = Session.connect('unit-testing', cache_size=10)
t = TExtra(i=4)
s.save(t)
s.save(t)
t2 = s.query(TExtra).filter_by(mongo_id=t.mongo_id)[0]
assert id(t) == id(t2)
assert id(s.refresh(t)) != t2
开发者ID:recio862,项目名称:MongoAlchemy,代码行数:8,代码来源:test_session.py
示例17: groupfinder
def groupfinder(userid, request):
with Session.connect(request.registry.settings['db_name'] ) as s:
user = s.query(User).filter_by(email=userid).one()
try:
r = user.groups
except AttributeError:
r = []
return r
开发者ID:mrcrabby,项目名称:aranciulla,代码行数:8,代码来源:resources.py
示例18: test_safe_with_error
def test_safe_with_error():
s = Session.connect("unit-testing")
s.clear_collection(TUnique)
s.insert(TUnique(i=1))
try:
s.insert(TUnique(i=1), safe=True)
assert False, "No error raised on safe insert for second unique item"
except DuplicateKeyError:
assert len(s.queue) == 0
开发者ID:snahor,项目名称:MongoAlchemy,代码行数:9,代码来源:test_session.py
示例19: test_cache2
def test_cache2():
s = Session.connect('unit-testing', cache_size=10)
t = TExtra(i=4)
s.insert(t)
s.insert(t)
for t2 in s.query(TExtra).filter_by(mongo_id=t.mongo_id):
assert id(t) == id(t2)
assert id(s.refresh(t)) != t2
break
开发者ID:znanja,项目名称:MongoAlchemy,代码行数:9,代码来源:test_session.py
示例20: test_clone
def test_clone():
s = Session.connect("unit-testing", cache_size=10)
t = TExtra(i=4)
s.insert(t)
t2 = s.clone(t)
s.insert(t2)
assert t2.mongo_id != t.mongo_id
开发者ID:snahor,项目名称:MongoAlchemy,代码行数:9,代码来源:test_session.py
注:本文中的mongoalchemy.session.Session类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论