本文整理汇总了Python中c3smembership.models.DBSession.add方法的典型用法代码示例。如果您正苦于以下问题:Python DBSession.add方法的具体用法?Python DBSession.add怎么用?Python DBSession.add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类c3smembership.models.DBSession
的用法示例。
在下文中一共展示了DBSession.add方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: setUp
# 需要导入模块: from c3smembership.models import DBSession [as 别名]
# 或者: from c3smembership.models.DBSession import add [as 别名]
def setUp(self):
super(C3sMembershipModelTests, self).setUp()
with transaction.manager:
member1 = C3sMember( # german
firstname=u'SomeFirstnäme',
lastname=u'SomeLastnäme',
email=u'[email protected]',
address1=u"addr one",
address2=u"addr two",
postcode=u"12345",
city=u"Footown Mäh",
country=u"Foocountry",
locale=u"DE",
date_of_birth=date.today(),
email_is_confirmed=False,
email_confirm_code=u'ABCDEFGFOO',
password=u'arandompassword',
date_of_submission=date.today(),
membership_type=u'normal',
member_of_colsoc=True,
name_of_colsoc=u"GEMA",
num_shares=u'23',
)
DBSession.add(member1)
DBSession.flush()
示例2: setUp
# 需要导入模块: from c3smembership.models import DBSession [as 别名]
# 或者: from c3smembership.models.DBSession import add [as 别名]
def setUp(self):
self.config = testing.setUp()
self.config.include('pyramid_mailer.testing')
try:
DBSession.close()
DBSession.remove()
#print("removed old DBSession ===================================")
except:
#print("no DBSession to remove ==================================")
pass
#try:
# os.remove('test_webtest_functional.db')
# #print "deleted old test database"
#except:
# pass
# #print "never mind"
my_settings = {
#'sqlalchemy.url': 'sqlite:///test_webtest_functional.db',
'sqlalchemy.url': 'sqlite:///:memory:',
'available_languages': 'da de en es fr',
'c3smembership.mailaddr': '[email protected]'}
engine = engine_from_config(my_settings)
DBSession.configure(bind=engine)
self.session = DBSession # ()
Base.metadata.create_all(engine)
# dummy database entries for testing
with transaction.manager:
member1 = C3sMember( # german
firstname=u'SomeFirstnäme',
lastname=u'SomeLastnäme',
email=u'[email protected]',
address1=u"addr one",
address2=u"addr two",
postcode=u"12345",
city=u"Footown Mäh",
country=u"Foocountry",
locale=u"DE",
date_of_birth=date.today(),
email_is_confirmed=False,
email_confirm_code=u'ABCDEFGFOO',
password=u'arandompassword',
date_of_submission=date.today(),
membership_type=u'normal',
member_of_colsoc=True,
name_of_colsoc=u"GEMA",
num_shares=u'23',
)
DBSession.add(member1)
DBSession.flush()
from c3smembership import main
app = main({}, **my_settings)
from webtest import TestApp
self.testapp = TestApp(app)
示例3: _initTestingDB
# 需要导入模块: from c3smembership.models import DBSession [as 别名]
# 或者: from c3smembership.models.DBSession import add [as 别名]
def _initTestingDB():
#from sqlalchemy import create_engine
#from c3smembership.models import initialize_sql
#session = initialize_sql(create_engine('sqlite:///memory'))
#session = DBSession
my_settings = {
'sqlalchemy.url': 'sqlite:///:memory:', }
engine = engine_from_config(my_settings)
DBSession.configure(bind=engine)
Base.metadata.create_all(engine)
with transaction.manager:
member1 = C3sMember( # german
firstname=u'SomeFirstnäme',
lastname=u'SomeLastnäme',
email=u'[email protected]',
address1=u"addr one",
address2=u"addr two",
postcode=u"12345",
city=u"Footown Mäh",
country=u"Foocountry",
locale=u"DE",
date_of_birth=date.today(),
email_is_confirmed=False,
email_confirm_code=u'ABCDEFGFOO',
password=u'arandompassword',
date_of_submission=date.today(),
membership_type=u'normal',
member_of_colsoc=True,
name_of_colsoc=u"GEMA",
num_shares=u'23',
)
member2 = C3sMember( # german
firstname=u'AAASomeFirstnäme',
lastname=u'XXXSomeLastnäme',
email=u'[email protected]',
address1=u"addr one",
address2=u"addr two",
postcode=u"12345",
city=u"Footown Mäh",
country=u"Foocountry",
locale=u"DE",
date_of_birth=date.today(),
email_is_confirmed=False,
email_confirm_code=u'ABCDEFGBAR',
password=u'arandompassword',
date_of_submission=date.today(),
membership_type=u'normal',
member_of_colsoc=True,
name_of_colsoc=u"GEMA",
num_shares=u'23',
)
DBSession.add(member1)
DBSession.add(member2)
return DBSession
示例4: setUp
# 需要导入模块: from c3smembership.models import DBSession [as 别名]
# 或者: from c3smembership.models.DBSession import add [as 别名]
def setUp(self):
self.config = testing.setUp()
self.config.include('pyramid_mailer.testing')
try:
DBSession.remove()
except:
pass
#engine = create_engine('sqlite:///test_model_staff.db')
engine = create_engine('sqlite://')
self.session = DBSession
self.session.configure(bind=engine)
Base.metadata.create_all(engine)
with transaction.manager:
group1 = Group(name=u'staff')
group2 = Group(name=u'staff2')
DBSession.add(group1, group2)
DBSession.flush()
示例5: setUp
# 需要导入模块: from c3smembership.models import DBSession [as 别名]
# 或者: from c3smembership.models.DBSession import add [as 别名]
def setUp(self):
"""
set up everything for a test case
"""
self.config = testing.setUp()
self.config.include('pyramid_mailer.testing')
try:
DBSession.close()
DBSession.remove()
#print("removing old DBSession ===================================")
except:
#print("no DBSession to remove ===================================")
pass
from sqlalchemy import create_engine
#engine = create_engine('sqlite:///test_utils.db')
engine = create_engine('sqlite:///:memory:')
DBSession.configure(bind=engine)
self.session = DBSession # ()
Base.metadata.create_all(engine)
with transaction.manager:
member1 = C3sMember( # german
firstname=u'SomeFirstnäme',
lastname=u'SomeLastnäme',
email=u'[email protected]',
address1=u"addr one",
address2=u"addr two",
postcode=u"12345",
city=u"Footown Mäh",
country=u"Foocountry",
locale=u"DE",
date_of_birth=date.today(),
email_is_confirmed=False,
email_confirm_code=u'ABCDEFGBAR',
password=u'arandompassword',
date_of_submission=date.today(),
membership_type=u'normal',
member_of_colsoc=True,
name_of_colsoc=u"GEMA",
num_shares=u'23',
)
DBSession.add(member1)
DBSession.flush()
示例6: main
# 需要导入模块: from c3smembership.models import DBSession [as 别名]
# 或者: from c3smembership.models.DBSession import add [as 别名]
def main(argv=sys.argv):
"""
initialize the database
"""
if len(argv) != 2:
usage(argv)
config_uri = argv[1]
setup_logging(config_uri)
settings = get_appsettings(config_uri)
engine = engine_from_config(settings, 'sqlalchemy.')
DBSession.configure(bind=engine)
Base.metadata.create_all(engine)
# add some content
with transaction.manager:
# a group for accountants/staff
accountants_group = Group(name=u"staff")
try:
DBSession.add(accountants_group)
DBSession.flush()
#print("adding group staff")
except:
print("could not add group staff.")
# pass
with transaction.manager:
# staff personnel
staffer1 = C3sStaff(
login=u"rut",
password=u"berries",
email=u"[email protected]",
)
staffer1.groups = [accountants_group]
try:
DBSession.add(staffer1)
#print("adding staff rut")
DBSession.flush()
except:
print("it borked! (rut)")
# pass
# one more staffer
with transaction.manager:
staffer2 = C3sStaff(
login=u"reel",
password=u"boo",
email=u"[email protected]",
)
staffer2.groups = [accountants_group]
try:
DBSession.add(staffer2)
#print("adding staff reel")
DBSession.flush()
except:
print("it borked! (reel)")
# pass
# a member, actually a membership form submission
with transaction.manager:
member1 = C3sMember(
firstname=u"Firstnäme", # includes umlaut
lastname=u"Lastname",
email=u"[email protected]",
password=u"berries",
address1=u"address one",
address2=u"address two",
postcode=u"12345 foo",
city=u"Footown Mäh",
country=u"Foocountry",
locale=u"en",
date_of_birth=date.today(),
email_is_confirmed=False,
email_confirm_code=u"ABCDEFGHIJ",
num_shares=u'10',
date_of_submission=datetime.now(),
membership_type=u'normal',
member_of_colsoc=True,
name_of_colsoc=u"GEMA",
)
try:
DBSession.add(member1)
#print("adding Firstnäme")
except:
pass
# even more members
import random
import string
print("about to add %s members..." % how_many)
with transaction.manager:
for i in range(how_many): # create 50 members with semi-random dates
#print i
member = C3sMember(
firstname=u"Firstnäme%s" % i, # includes umlaut
lastname=u"Lastname",
email=u"[email protected]",
password=u"berries",
address1=u"address one",
address2=u"address two",
postcode=u"12345 foo",
city=u"Footown Mäh",
country=u"Foocountry",
locale=u"de",
date_of_birth=date.today(),
#.........这里部分代码省略.........
示例7: join_c3s
# 需要导入模块: from c3smembership.models import DBSession [as 别名]
# 或者: from c3smembership.models.DBSession import add [as 别名]
#.........这里部分代码省略.........
# set default of Country select widget according to locale
LOCALE_COUNTRY_MAPPING = {
'de': 'DE',
#'da': 'DK',
'en': 'GB',
#'es': 'ES',
#'fr': 'FR',
}
country_default = LOCALE_COUNTRY_MAPPING.get(locale_name)
if DEBUG: # pragma: no cover
print("== locale is :" + str(locale_name))
print("== choosing :" + str(country_default))
class MembershipForm(colander.MappingSchema):
"""
colander schema for membership application form
"""
firstname = colander.SchemaNode(
colander.String(),
title=_(u"(Real) First Name"),
oid="firstname",
)
lastname = colander.SchemaNode(
colander.String(),
title=_(u"(Real) Last Name"),
oid="lastname",
)
email = colander.SchemaNode(
colander.String(),
title=_(u'Email'),
validator=colander.Email(),
oid="email",
)
address1 = colander.SchemaNode(
colander.String(),
title=_(u'Street & No.')
)
address2 = colander.SchemaNode(
colander.String(),
missing=unicode(''),
title=_(u"address cont'd")
)
postcode = colander.SchemaNode(
colander.String(),
title=_(u'Post Code'),
oid="postcode"
)
city = colander.SchemaNode(
colander.String(),
title=_(u'City'),
oid="city",
)
# region = colander.SchemaNode(
# colander.String(),
# title=_(u'Federal State / Province / County'),
# missing=unicode(''))
country = colander.SchemaNode(
colander.String(),
title=_(u'Country'),
default=country_default,
widget=deform.widget.SelectWidget(
values=country_codes),
oid="country",
)
# type_of_creator = (('composer', _(u'composer')),
示例8: staff_view
# 需要导入模块: from c3smembership.models import DBSession [as 别名]
# 或者: from c3smembership.models.DBSession import add [as 别名]
def staff_view(request):
"""
This view lets admins edit staff/cashier personnel:
who may act as cashier etc.?
"""
_staffers = C3sStaff.get_all()
class Staffer(colander.MappingSchema):
login = colander.SchemaNode(
colander.String(),
title='login',
)
password = colander.SchemaNode(
colander.String(),
title='passwort',
)
schema = Staffer()
stafferform = deform.Form(
schema,
buttons=[
deform.Button('new_staffer', 'save')
]
)
if 'action' in request.POST:
#print(request.POST['id'])
try:
_staffer = C3sStaff.get_by_id(int(request.POST['id']))
except:
# print("exception!")
return HTTPFound(location=request.route_url('staff'))
#print(request.POST['action'])
if request.POST['action'] == u'delete':
#print("will delete staff id %s" % _staffer.id)
C3sStaff.delete_by_id(_staffer.id)
#print("deleted staff id %s" % _staffer.id)
# send mail
encrypted = encrypt_with_gnupg('''hi,
%s was deleted from the backend by %s.
best,
your membership tool''' % (_staffer.login,
request.authenticated_userid))
message = Message(
subject='[C3S Yes] staff was deleted.',
sender='[email protected]',
recipients=[
request.registry.settings['c3smembership.mailaddr']],
body=encrypted
)
mailer = get_mailer(request)
mailer.send(message)
return HTTPFound(location=request.route_url('staff'))
elif request.POST['action'] == 'edit':
appstruct = {
'login': _staffer.login,
'password': '_UNCHANGED_',
}
stafferform.set_appstruct(appstruct)
if 'new_staffer' in request.POST:
#print "new staffer!"
controls = request.POST.items()
try:
appstruct = stafferform.validate(controls)
#print('validated!')
except ValidationFailure, e:
return {
'stafferform': e.render()
}
# XXX login must be unique!
existing = C3sStaff.get_by_login(appstruct['login'])
if existing is not None:
#print "that staffer exists!"
if u'_UNCHANGED_' in appstruct['password']:
pass
else:
existing.password = appstruct['password']
existing.last_password_change = datetime.now()
encrypted = encrypt_with_gnupg('''hi,
the password of %s was changed by %s.
best,
your membership tool''' % (existing.login,
request.authenticated_userid))
message = Message(
subject='[C3S Yes] staff password changed.',
sender='[email protected]',
recipients=[
request.registry.settings['c3smembership.mailaddr']],
body=encrypted
)
else: # create new entry
staffer = C3sStaff(
login=appstruct['login'],
password=appstruct['password'],
email=u'',
#.........这里部分代码省略.........
示例9: setUp
# 需要导入模块: from c3smembership.models import DBSession [as 别名]
# 或者: from c3smembership.models.DBSession import add [as 别名]
def setUp(self):
self.config = testing.setUp()
self.config.include('pyramid_mailer.testing')
try:
DBSession.close()
DBSession.remove()
#print "closed and removed DBSession"
except:
pass
#print "no session to close"
#try:
# os.remove('test_import.db')
# #print "deleted old test database"
#except:
# pass
# #print "never mind"
# self.session = DBSession()
my_settings = {
#'sqlalchemy.url': 'sqlite:///test_import.db',
'sqlalchemy.url': 'sqlite:///:memory:',
'available_languages': 'da de en es fr',
'c3smembership.dashboard_number': '30'}
engine = engine_from_config(my_settings)
DBSession.configure(bind=engine)
Base.metadata.create_all(engine)
with transaction.manager:
member1 = C3sMember( # german
firstname=u'SomeFirstnäme',
lastname=u'SomeLastnäme',
email=u'[email protected]',
address1=u"addr one",
address2=u"addr two",
postcode=u"12345",
city=u"Footown Mäh",
country=u"Foocountry",
locale=u"DE",
date_of_birth=date.today(),
email_is_confirmed=False,
email_confirm_code=u'ABCDEFGFOO',
password=u'arandompassword',
date_of_submission=date.today(),
membership_type=u'normal',
member_of_colsoc=True,
name_of_colsoc=u"GEMA",
num_shares=u'23',
)
DBSession.add(member1)
DBSession.flush()
self.m1_last_pw_change = member1.last_password_change
with transaction.manager:
# a group for accountants/staff
accountants_group = Group(name=u"staff")
try:
DBSession.add(accountants_group)
DBSession.flush()
#print("adding group staff")
except:
#print("could not add group staff.")
pass
# staff personnel
staffer1 = C3sStaff(
login=u"rut",
password=u"berries",
email=u"[email protected]",
)
staffer1.groups = [accountants_group]
try:
DBSession.add(accountants_group)
DBSession.add(staffer1)
DBSession.flush()
except:
#print("it borked! (rut)")
pass
from c3smembership import main
app = main({}, **my_settings)
from webtest import TestApp
self.testapp = TestApp(app)
示例10: join_c3s
# 需要导入模块: from c3smembership.models import DBSession [as 别名]
# 或者: from c3smembership.models.DBSession import add [as 别名]
#.........这里部分代码省略.........
print("== locale is :" + str(locale_name))
print("== choosing :" + str(country_default))
class PersonalData(colander.MappingSchema):
"""
colander schema for membership application form
"""
firstname = colander.SchemaNode(
colander.String(),
title=_(u"(Real) First Name"),
oid="firstname",
)
lastname = colander.SchemaNode(
colander.String(),
title=_(u"(Real) Last Name"),
oid="lastname",
)
email = colander.SchemaNode(
colander.String(),
title=_(u'Email'),
validator=colander.Email(),
oid="email",
)
password = colander.SchemaNode(
colander.String(),
validator=colander.Length(min=5, max=100),
widget=deform.widget.PasswordWidget(size=20),
title=_(u"Password (to protect access to your data)"),
description=_("We need a password to protect your data. After "
"verifying your email you will have to enter it."),
oid="password",
)
address1 = colander.SchemaNode(
colander.String(),
title=_(u'Address Line 1')
)
address2 = colander.SchemaNode(
colander.String(),
missing=unicode(''),
title=_(u"Address Line 2")
)
postcode = colander.SchemaNode(
colander.String(),
title=_(u'Post Code'),
oid="postcode"
)
city = colander.SchemaNode(
colander.String(),
title=_(u'City'),
oid="city",
)
# region = colander.SchemaNode(
# colander.String(),
# title=_(u'Federal State / Province / County'),
# missing=unicode(''))
country = colander.SchemaNode(
colander.String(),
title=_(u'Country'),
default=country_default,
widget=deform.widget.SelectWidget(
values=country_codes),
oid="country",
)
# TODO:
示例11: new_member
# 需要导入模块: from c3smembership.models import DBSession [as 别名]
# 或者: from c3smembership.models.DBSession import add [as 别名]
def new_member(request):
'''
let staff create a new member entry, when receiving input via dead wood
'''
# XXX check if submitted, etc...
class PersonalData(colander.MappingSchema):
"""
colander schema for membership application form
"""
#id = colander.SchemaNode(
# colander.Integer(),
# title='Database ID (optional, used to re-add deleted member',
#)
firstname = colander.SchemaNode(
colander.String(),
title='Vorname',
oid="firstname",
)
lastname = colander.SchemaNode(
colander.String(),
title='Nachnahme',
oid="lastname",
)
email = colander.SchemaNode(
colander.String(),
title=_(u'Email'),
validator=colander.Email(),
oid="email",
)
passwort = colander.SchemaNode(
colander.String(),
widget=deform.widget.HiddenWidget(),
default='NoneSet',
missing='NoneSetPurposefully'
)
address1 = colander.SchemaNode(
colander.String(),
title='Addresse Zeile 1'
)
address2 = colander.SchemaNode(
colander.String(),
missing=unicode(''),
title='Addresse Zeile 2'
)
postcode = colander.SchemaNode(
colander.String(),
title='Postleitzahl',
oid="postcode"
)
city = colander.SchemaNode(
colander.String(),
title='Ort',
oid="city",
)
country = colander.SchemaNode(
colander.String(),
title='Land',
default=country_default,
widget=deform.widget.SelectWidget(
values=country_codes),
oid="country",
)
date_of_birth = colander.SchemaNode(
colander.Date(),
title='Geburtsdatum',
#widget=deform.widget.DatePartsWidget(
# inline=True),
default=date(2013, 1, 1),
validator=Range(
min=date(1913, 1, 1),
max=date(2000, 1, 1),
min_err=_(u'${val} is earlier than earliest date ${min}'),
max_err=_(u'${val} is later than latest date ${max}')
),
oid="date_of_birth",
)
_LOCALE_ = colander.SchemaNode(
colander.String(),
widget=deform.widget.HiddenWidget(),
default='de',
missing='de',
)
class MembershipInfo(colander.Schema):
yes_no = ((u'yes', _(u'Yes')),
(u'no', _(u'No')))
membership_type = colander.SchemaNode(
colander.String(),
title=(u'Art der Mitgliedschaft (lt. Satzung, §4)'),
description=u'Bitte die Art der Mitgliedschaft auswählen.',
widget=deform.widget.RadioChoiceWidget(
values=(
(u'normal',
(u'Normales Mitglied')),
(u'investing',
u'Investierendes Mitglied'),
#.........这里部分代码省略.........
示例12: test_edit_members
# 需要导入模块: from c3smembership.models import DBSession [as 别名]
# 或者: from c3smembership.models.DBSession import add [as 别名]
def test_edit_members(self):
'''
tests for the edit_member view
'''
# unauthorized access must be prevented
res = self.testapp.reset() # delete cookie
res = self.testapp.get('/edit/1', status=403)
assert('Access was denied to this resource' in res.body)
res = self.testapp.get('/login', status=200)
self.failUnless('login' in res.body)
# try valid user
form = res.form
form['login'] = 'rut'
form['password'] = 'berries'
res2 = form.submit('submit', status=302)
# # being logged in ...
res3 = res2.follow() # being redirected to dashboard_only
#print('>'*20)
#print(res3.body)
#print('<'*20)
res4 = res3.follow() # being redirected to dashboard with parameters
self.failUnless(
'Dashboard' in res4.body)
# # now that we are logged in,
# # the login view should redirect us to the dashboard
# res5 = self.testapp.get('/login', status=302)
# # so yes: that was a redirect
# res6 = res5.follow()
# res6 = res6.follow()
# #print(res4.body)
# self.failUnless(
# 'Dashboard' in res6.body)
# # choose number of applications shown
# res6a = self.testapp.get(
# '/dashboard',
# status=302,
# extra_environ={
# 'num_display': '30',
# }
# )
# res6a = res6a.follow()
# no member in DB, so redirecting to dashboard
res = self.testapp.get('/edit/1', status=302)
res2 = res.follow()
with transaction.manager:
member1 = C3sMember( # german
firstname=u'SomeFirstnäme',
lastname=u'SomeLastnäme',
email=u'[email protected]',
address1=u"addr one",
address2=u"addr two",
postcode=u"12345",
city=u"Footown Mäh",
country=u"Foocountry",
locale=u"DE",
date_of_birth=date.today(),
email_is_confirmed=False,
email_confirm_code=u'ABCDEFGFOO',
password=u'arandompassword',
date_of_submission=date.today(),
membership_type=u'normal',
member_of_colsoc=True,
name_of_colsoc=u"GEMA",
num_shares=u'23',
)
DBSession.add(member1)
# now there is a member in the DB
#
# letzt try invalid input
res = self.testapp.get('/edit/foo', status=302)
res2 = res.follow()
res3 = res2.follow()
self.failUnless('Dashboard' in res4.body)
#print '+' * 20
#print res2.body
#print '+' * 20
# now try valid id
res = self.testapp.get('/edit/1', status=200)
#print(res.body)
self.failUnless('Mitglied bearbeiten' in res.body)
# now we change details, really editing that member
form = res.form
#import pdb
#pdb.set_trace()
self.assertTrue(u'SomeFirstn\xe4me' in form['firstname'].value)
form['firstname'] = 'EinVorname'
form['lastname'] = 'EinNachname'
form['email'] = '[email protected]'
form['address1'] = 'adressteil 1'
form['address2'] = 'adressteil 2'
form['postcode'] = '12346'
form['city'] = 'die city'
form['country'] = 'FI'
#print("der wert von 'deformField14': %s" % form['deformField14'].value)
#.........这里部分代码省略.........