55 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # -*- coding: utf-8; -*-
 | |
| 
 | |
| from wuttjamaican import people as mod
 | |
| from wuttjamaican.testing import DataTestCase
 | |
| 
 | |
| try:
 | |
|     import sqlalchemy as sa
 | |
| except ImportError:
 | |
|     pass
 | |
| else:
 | |
| 
 | |
|     class TestPeopleHandler(DataTestCase):
 | |
| 
 | |
|         def make_handler(self):
 | |
|             return mod.PeopleHandler(self.config)
 | |
| 
 | |
|         def test_get_person(self):
 | |
|             model = self.app.model
 | |
|             myperson = model.Person(full_name="Barny Rubble")
 | |
|             self.session.add(myperson)
 | |
|             self.session.commit()
 | |
|             handler = self.make_handler()
 | |
| 
 | |
|             # empty obj is ignored
 | |
|             person = handler.get_person(None)
 | |
|             self.assertIsNone(person)
 | |
| 
 | |
|             # person is returned as-is
 | |
|             person = handler.get_person(myperson)
 | |
|             self.assertIs(person, myperson)
 | |
| 
 | |
|             # find person from user
 | |
|             myuser = model.User(username="barney", person=myperson)
 | |
|             self.session.add(myuser)
 | |
|             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)
 |