def test_deserializer(self): users = self.create_users() deserialized, models = self.d.deserialize_object( User(), { 'id': self.admin.id, 'username': '******', 'password': self.admin.password, 'join_date': self.admin.join_date.strftime('%Y-%m-%d %H:%M:%S'), 'active': True, 'admin': True, }) for attr in ['id', 'username', 'password', 'active', 'admin']: self.assertEqual( getattr(deserialized, attr), getattr(self.admin, attr), ) self.assertEqual( deserialized.join_date.strftime('%Y-%m-%d %H:%M:%S'), self.admin.join_date.strftime('%Y-%m-%d %H:%M:%S'), ) admin_pk = self.admin.id deserialized, models = self.d.deserialize_object( self.admin, { 'username': '******', 'active': False, 'admin': False, }) self.assertEqual(deserialized.username, 'edited') self.assertEqual(deserialized.admin, False) self.assertEqual(deserialized.active, False) self.assertEqual(deserialized.id, admin_pk) deserialized.save() self.assertEqual(User.select().count(), 3) edited = User.get(username='******') self.assertEqual(edited.id, admin_pk)
def create_user(self, username, password, **kwargs): user = User(username=username, email=kwargs.pop('email', ''), **kwargs) user.set_password(password) user.save() return user
def test_s_and_d(self): self.create_users() s = self.s.serialize_object(self.admin) d, model_list = self.d.deserialize_object(User(), s) self.assertEqual(d, self.admin)