fix: add make_person()
method for people, auth handlers
This commit is contained in:
parent
06524dc4ed
commit
57ff7ec1d3
|
@ -225,6 +225,17 @@ class AuthHandler(GenericHandler):
|
||||||
if person:
|
if person:
|
||||||
return person.user
|
return person.user
|
||||||
|
|
||||||
|
def make_person(self, **kwargs):
|
||||||
|
"""
|
||||||
|
Make and return a new
|
||||||
|
:class:`~wuttjamaican.db.model.base.Person`.
|
||||||
|
|
||||||
|
This is a convenience wrapper around
|
||||||
|
:class:`~wuttjamaican.people.PeopleHandler.make_person()`.
|
||||||
|
"""
|
||||||
|
people = self.app.get_people_handler()
|
||||||
|
return people.make_person(**kwargs)
|
||||||
|
|
||||||
def make_user(self, session=None, **kwargs):
|
def make_user(self, session=None, **kwargs):
|
||||||
"""
|
"""
|
||||||
Make and return a new
|
Make and return a new
|
||||||
|
|
|
@ -39,6 +39,30 @@ class PeopleHandler(GenericHandler):
|
||||||
things.
|
things.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
def make_person(self, **kwargs):
|
||||||
|
"""
|
||||||
|
Make and return a new Person.
|
||||||
|
|
||||||
|
This mostly a convenience wrapper; it will auto-populate the
|
||||||
|
:attr:`~wuttjamaican.db.model.base.Person.full_name` if not
|
||||||
|
specified.
|
||||||
|
|
||||||
|
:param \**kwargs: All kwargs are passed as-is to the model
|
||||||
|
class constructor.
|
||||||
|
|
||||||
|
:rtype: :class:`~wuttjamaican.db.model.base.Person`
|
||||||
|
"""
|
||||||
|
model = self.app.model
|
||||||
|
|
||||||
|
if 'full_name' not in kwargs:
|
||||||
|
full_name = self.app.make_full_name(kwargs.get('first_name'),
|
||||||
|
kwargs.get('middle_name'),
|
||||||
|
kwargs.get('last_name'))
|
||||||
|
if full_name:
|
||||||
|
kwargs['full_name'] = full_name
|
||||||
|
|
||||||
|
return model.Person(**kwargs)
|
||||||
|
|
||||||
def get_person(self, obj, **kwargs):
|
def get_person(self, obj, **kwargs):
|
||||||
"""
|
"""
|
||||||
Return the :class:`~wuttjamaican.db.model.base.Person`
|
Return the :class:`~wuttjamaican.db.model.base.Person`
|
||||||
|
|
|
@ -17,7 +17,7 @@ else:
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.config = WuttaConfig()
|
self.config = WuttaConfig()
|
||||||
self.app = self.config.get_app()
|
self.app = self.config.get_app()
|
||||||
self.handler = mod.AuthHandler(self.config)
|
self.handler = self.make_handler()
|
||||||
|
|
||||||
self.engine = sa.create_engine('sqlite://')
|
self.engine = sa.create_engine('sqlite://')
|
||||||
self.app.model.Base.metadata.create_all(bind=self.engine)
|
self.app.model.Base.metadata.create_all(bind=self.engine)
|
||||||
|
@ -30,6 +30,9 @@ else:
|
||||||
def make_session(self):
|
def make_session(self):
|
||||||
return self.app.make_session(bind=self.engine)
|
return self.app.make_session(bind=self.engine)
|
||||||
|
|
||||||
|
def make_handler(self):
|
||||||
|
return mod.AuthHandler(self.config)
|
||||||
|
|
||||||
def test_authenticate_user(self):
|
def test_authenticate_user(self):
|
||||||
model = self.app.model
|
model = self.app.model
|
||||||
barney = model.User(username='barney')
|
barney = model.User(username='barney')
|
||||||
|
@ -133,6 +136,24 @@ else:
|
||||||
user = self.handler.get_user(myperson)
|
user = self.handler.get_user(myperson)
|
||||||
self.assertIs(user, myuser)
|
self.assertIs(user, myuser)
|
||||||
|
|
||||||
|
def test_make_person(self):
|
||||||
|
model = self.app.model
|
||||||
|
handler = self.handler
|
||||||
|
|
||||||
|
person = handler.make_person()
|
||||||
|
self.assertIsInstance(person, model.Person)
|
||||||
|
self.assertIsNone(person.first_name)
|
||||||
|
self.assertIsNone(person.last_name)
|
||||||
|
self.assertIsNone(person.full_name)
|
||||||
|
self.assertNotIn(person, self.session)
|
||||||
|
|
||||||
|
person = handler.make_person(first_name='Barney', last_name='Rubble')
|
||||||
|
self.assertIsInstance(person, model.Person)
|
||||||
|
self.assertEqual(person.first_name, 'Barney')
|
||||||
|
self.assertEqual(person.last_name, 'Rubble')
|
||||||
|
self.assertEqual(person.full_name, 'Barney Rubble')
|
||||||
|
self.assertNotIn(person, self.session)
|
||||||
|
|
||||||
def test_make_user(self):
|
def test_make_user(self):
|
||||||
model = self.app.model
|
model = self.app.model
|
||||||
|
|
||||||
|
|
|
@ -36,3 +36,21 @@ else:
|
||||||
self.session.commit()
|
self.session.commit()
|
||||||
person = handler.get_person(myuser)
|
person = handler.get_person(myuser)
|
||||||
self.assertIs(person, myperson)
|
self.assertIs(person, myperson)
|
||||||
|
|
||||||
|
def test_make_person(self):
|
||||||
|
model = self.app.model
|
||||||
|
handler = self.make_handler()
|
||||||
|
|
||||||
|
person = handler.make_person()
|
||||||
|
self.assertIsInstance(person, model.Person)
|
||||||
|
self.assertIsNone(person.first_name)
|
||||||
|
self.assertIsNone(person.last_name)
|
||||||
|
self.assertIsNone(person.full_name)
|
||||||
|
self.assertNotIn(person, self.session)
|
||||||
|
|
||||||
|
person = handler.make_person(first_name='Barney', last_name='Rubble')
|
||||||
|
self.assertIsInstance(person, model.Person)
|
||||||
|
self.assertEqual(person.first_name, 'Barney')
|
||||||
|
self.assertEqual(person.last_name, 'Rubble')
|
||||||
|
self.assertEqual(person.full_name, 'Barney Rubble')
|
||||||
|
self.assertNotIn(person, self.session)
|
||||||
|
|
Loading…
Reference in a new issue