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:
|
||||
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):
|
||||
"""
|
||||
Make and return a new
|
||||
|
|
|
@ -39,6 +39,30 @@ class PeopleHandler(GenericHandler):
|
|||
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):
|
||||
"""
|
||||
Return the :class:`~wuttjamaican.db.model.base.Person`
|
||||
|
|
|
@ -17,7 +17,7 @@ else:
|
|||
def setUp(self):
|
||||
self.config = WuttaConfig()
|
||||
self.app = self.config.get_app()
|
||||
self.handler = mod.AuthHandler(self.config)
|
||||
self.handler = self.make_handler()
|
||||
|
||||
self.engine = sa.create_engine('sqlite://')
|
||||
self.app.model.Base.metadata.create_all(bind=self.engine)
|
||||
|
@ -30,6 +30,9 @@ else:
|
|||
def make_session(self):
|
||||
return self.app.make_session(bind=self.engine)
|
||||
|
||||
def make_handler(self):
|
||||
return mod.AuthHandler(self.config)
|
||||
|
||||
def test_authenticate_user(self):
|
||||
model = self.app.model
|
||||
barney = model.User(username='barney')
|
||||
|
@ -133,6 +136,24 @@ else:
|
|||
user = self.handler.get_user(myperson)
|
||||
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):
|
||||
model = self.app.model
|
||||
|
||||
|
|
|
@ -36,3 +36,21 @@ else:
|
|||
self.session.commit()
|
||||
person = handler.get_person(myuser)
|
||||
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