def test_to_model(self): WidgetMessage, widget = self.make_test_model() # Simple test message = WidgetMessage(string='Dalek', integer=1) simple_widget = protopigeon.to_entity(message, MessageModelTest) assert message.string == simple_widget.string assert message.integer == simple_widget.integer # Updating an existing instance simple_widget = protopigeon.to_entity(message, MessageModelTest(string='Meow')) assert message.string == simple_widget.string assert message.integer == simple_widget.integer # Full serialization/deserialization comparion test. message = protopigeon.to_message(widget, WidgetMessage) print message deserialized = protopigeon.to_entity(message, MessageModelTest) for prop in MessageModelTest._properties.keys(): assert getattr(deserialized, prop) == getattr(widget, prop) assert deserialized.key.urlsafe() == widget.key.urlsafe()
def list_private_links(self, request=(ParamsMessage,)): user_key = ndb.Key(urlsafe=getattr(request, 'user')) if user_key: private_link = Links.query(Links.user == user_key).get() return protopigeon.to_message(private_link, PrivateLinkMessages) else: raise f3.NotFoundException("user not exist")
def test_to_message(self): WidgetMessage, widget = self.make_test_model() message = protopigeon.to_message(widget, WidgetMessage) assert message.string == widget.string assert message.repeatedString == widget.repeatedString assert message.text == widget.text assert message.repeatedText == widget.repeatedText assert message.blob == widget.blob assert message.repeatedBlob == widget.repeatedBlob assert message.boolean == widget.boolean assert message.repeatedBoolean == widget.repeatedBoolean assert message.integer == widget.integer assert message.repeatedInteger == widget.repeatedInteger assert message.float == widget.float assert message.repeatedFloat == widget.repeatedFloat assert message.keyProp == widget.keyProp.urlsafe() assert len(message.repeatedKey) == 2 assert message.repeatedKey[0] == widget.repeatedKey[0].urlsafe() assert message.datetime.year == widget.datetime.year assert message.datetime.month == widget.datetime.month assert message.datetime.day == widget.datetime.day assert message.datetime.hour == widget.datetime.hour assert message.datetime.minute == widget.datetime.minute assert len(message.repeatedDatetime) == 2 assert message.repeatedDatetime[0].year == widget.repeatedDatetime[ 0].year assert message.geopt.lat == widget.geopt.lat assert message.geopt.lon == widget.geopt.lon assert len(message.repeatedGeopt) == 2 assert message.repeatedGeopt[0].lat == widget.repeatedGeopt[0].lat assert message.blobkey == str(widget.blobkey) assert message.repeatedBlobkey[1] == str(widget.repeatedBlobkey[1]) assert message.structured.one == widget.structured.one assert message.structured.two == widget.structured.two assert message.repeatedStructured[0].one == widget.repeatedStructured[ 0].one assert message.id == widget.key.urlsafe() # Updating an existing instance message = protopigeon.to_message(widget, WidgetMessage(string='Meow')) assert message.string == widget.string assert message.integer == widget.integer
def test_to_message(self): WidgetMessage, widget = self.make_test_model() message = protopigeon.to_message(widget, WidgetMessage) assert message.string == widget.string assert message.repeatedString == widget.repeatedString assert message.text == widget.text assert message.repeatedText == widget.repeatedText assert message.blob == widget.blob assert message.repeatedBlob == widget.repeatedBlob assert message.boolean == widget.boolean assert message.repeatedBoolean == widget.repeatedBoolean assert message.integer == widget.integer assert message.repeatedInteger == widget.repeatedInteger assert message.float == widget.float assert message.repeatedFloat == widget.repeatedFloat assert message.keyProp == widget.keyProp.urlsafe() assert len(message.repeatedKey) == 2 assert message.repeatedKey[0] == widget.repeatedKey[0].urlsafe() assert message.datetime.year == widget.datetime.year assert message.datetime.month == widget.datetime.month assert message.datetime.day == widget.datetime.day assert message.datetime.hour == widget.datetime.hour assert message.datetime.minute == widget.datetime.minute assert len(message.repeatedDatetime) == 2 assert message.repeatedDatetime[0].year == widget.repeatedDatetime[0].year assert message.geopt.lat == widget.geopt.lat assert message.geopt.lon == widget.geopt.lon assert len(message.repeatedGeopt) == 2 assert message.repeatedGeopt[0].lat == widget.repeatedGeopt[0].lat assert message.blobkey == str(widget.blobkey) assert message.repeatedBlobkey[1] == str(widget.repeatedBlobkey[1]) assert message.structured.one == widget.structured.one assert message.structured.two == widget.structured.two assert message.repeatedStructured[0].one == widget.repeatedStructured[0].one assert message.id == widget.key.urlsafe() # Updating an existing instance message = protopigeon.to_message(widget, WidgetMessage(string='Meow')) assert message.string == widget.string assert message.integer == widget.integer
def test_empty_values(self): WidgetMessage, widget = self.make_test_model() empty_widget = MessageModelTest() message = protopigeon.to_message(empty_widget, WidgetMessage) for prop in MessageModelTest._properties.keys(): assert not getattr(message, prop) empty_message = WidgetMessage() widget = protopigeon.to_entity(empty_message, MessageModelTest) for field in WidgetMessage.all_fields(): assert not getattr(widget, prop)
def register(self, request=(UserMessageP,)): if getattr(request, 'username') is not None and getattr(request, 'password') is not None: user_key = ndb.Key('User', getattr(request, 'email')) if user_key.get() is None: user = User( key=ndb.Key('User', getattr(request, 'email')), username=getattr(request, 'username'), password=getattr(request, 'password'), email=getattr(request, 'email')) user.put() if user is not None: return protopigeon.to_message(user, UserMessageP) else: raise f3.BadRequestException("Incorrect credentials") else: raise f3.BadRequestException("You already an account") else: raise f3.BadRequestException("user or password doesn't specified")
def _transform_entity(self, entity): return to_message(entity, self.controller.meta.Message)
def serialize(MessageType, entity): return protopigeon.to_message(entity, MessageType)
def _transform_entity(self, entity): if hasattr(self.controller.meta, 'messaging_transform_function'): return self.controller.meta.messaging_transform_function( entity, self.controller.meta.Message) return to_message(entity, self.controller.meta.Message)
def _transform_entity(self, entity): if hasattr(self.controller.meta, 'messaging_transform_function'): return self.controller.meta.messaging_transform_function(entity, self.controller.meta.Message) return to_message(entity, self.controller.meta.Message)
def serialize(MessageType, entity, **kwargs): return protopigeon.to_message(entity, MessageType, **kwargs)