示例#1
0
    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 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()
示例#3
0
 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")
示例#4
0
    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
示例#6
0
    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 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)
示例#8
0
 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")
示例#9
0
 def _transform_entity(self, entity):
     return to_message(entity, self.controller.meta.Message)
示例#10
0
def serialize(MessageType, entity):
    return protopigeon.to_message(entity, MessageType)
示例#11
0
 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 _transform_entity(self, entity):
     return to_message(entity, self.controller.meta.Message)
示例#14
0
def serialize(MessageType, entity, **kwargs):
    return protopigeon.to_message(entity, MessageType, **kwargs)