def generate_messages():
            headers = {}

            messages = [
                message.Message(payload="hello", headers=headers),
                message.Message(payload="world", headers=headers),
                message.Message(payload="foo", headers=headers),
                message.Message(payload="bar", headers=headers),
            ]
            for msg in messages:
                yield msg
示例#2
0
        def generate_messages():
            headers = {
                'Content-Type':
                message.Message.HeaderValue(values=['text/plain'])
            }

            messages = [
                message.Message(payload=b'foo', headers=headers),
                message.Message(payload=b'bar', headers=headers),
                message.Message(payload=b'foobar', headers=headers),
            ]
            for msg in messages:
                yield msg
        def generate_messages():
            headers = {
                'Content-Type': message.Message.HeaderValue(values=['text/plain']),
                'correlationId': message.Message.HeaderValue(values=[str(uuid.uuid4())])
            }

            messages = [
                message.Message(payload="hello", headers=headers),
                message.Message(payload="world", headers=headers),
                message.Message(payload="foo", headers=headers),
                message.Message(payload="bar", headers=headers),
            ]
            for msg in messages:
                yield msg
示例#4
0
    def test_discrete_window_text(self):

        from itertools import count
        import json

        env = function_env('windows.py', 'discrete_window_text')

        func, interaction_model = invoker.function_invoker.install_function(
            env)

        threading.Thread(target=invoker.function_invoker.invoke_function,
                         args=([func, interaction_model, env])).start()

        channel = grpc.insecure_channel('localhost:%s' % env['GRPC_PORT'])
        testutils.wait_until_channel_ready(channel)
        '''
        unbounded generator of Messages converting int to bytes
        '''
        messages = (message.Message(
            payload=bytes("X%d" % i, 'UTF-8'),
            headers={
                'Content-Type':
                message.Message.HeaderValue(values=['text/plain'])
            }) for i in count())

        responses = function.MessageFunctionStub(channel).Call(messages)
        '''
        Check the first 10 responses. Each message is a json serialized tuple of size 3 containing the next sequence of ints.
        '''
        for _ in range(10):
            tpl = json.loads(next(responses).payload)

        invoker.function_invoker.stop()
        def generate_messages():
            headers = {
                'Content-Type': message.Message.HeaderValue(values=['application/json']),
                'correlationId': message.Message.HeaderValue(values=[str(uuid.uuid4())])
            }

            messages = [
                message.Message(payload='{"foo":"bar","hello":"world"}', headers=headers),
            ]
            for msg in messages:
                yield msg
示例#6
0
    def test_sliding_window(self):
        from itertools import count
        import struct
        import json

        env = function_env('windows.py', 'sliding_window')

        func, interaction_model = invoker.function_invoker.install_function(
            env)

        threading.Thread(target=invoker.function_invoker.invoke_function,
                         args=([func, interaction_model, env])).start()

        channel = grpc.insecure_channel('localhost:%s' % env['GRPC_PORT'])
        testutils.wait_until_channel_ready(channel)
        '''
        unbounded generator of Messages converting int to bytes
        '''
        messages = (message.Message(
            payload=struct.pack(">I", i),
            headers={
                'Content-Type':
                message.Message.HeaderValue(
                    values=['application/octet-stream'])
            }) for i in count())

        responses = function.MessageFunctionStub(channel).Call(messages)
        '''
        Check the first 10 responses. Each message is a json serialized tuple of size 3 containing the next sequence 
        of ints: ((0,1,2),(1,2,3),(2,3,4))
        '''
        for i in range(10):
            tpl = json.loads(next(responses).payload)
            self.assertEqual(3, len(tpl))
            for j in range(len(tpl)):
                self.assertEqual(i + j, tpl[j])

        invoker.function_invoker.stop()
示例#7
0
 def messages():
     yield message.Message()