示例#1
0
def test_print_input_params():
    check_template(
        '''
        {% import "feature_fragments.j2" as frags %}
        {{ frags.print_input_params(request) }}

        ''',
        '''
        mass, length, color
        ''',
        request=samplegen.FullRequest(request_list=[
            samplegen.TransformedRequest(
                base="squid",
                body=[
                    samplegen.AttributeRequestSetup(
                        field="mass", value="10 kg", input_parameter="mass"),
                    samplegen.AttributeRequestSetup(
                        field="length", value="20 m", input_parameter="length")
                ],
                single=None),
            samplegen.TransformedRequest(
                base="diameter",
                single=samplegen.AttributeRequestSetup(value="10 cm"),
                body=None),
            samplegen.TransformedRequest(
                base="color",
                single=samplegen.AttributeRequestSetup(
                    value="red", input_parameter="color"),
                body=None),
        ]))
示例#2
0
def test_render_request_params():
    check_template(
        '''
        {% import "feature_fragments.j2" as frags %}
        {{ frags.render_request_params(request) }}

        ''',
        '''
        mollusc, length_meters=16, order='TEUTHIDA'
        ''',
        request=[
            samplegen.TransformedRequest(
                base="length_meters",
                body=None,
                single=samplegen.AttributeRequestSetup(value="16")),
            samplegen.TransformedRequest(
                base="mollusc",
                body=[
                    samplegen.AttributeRequestSetup(field="video",
                                                    value="path/to/video.mkv"),
                    samplegen.AttributeRequestSetup(field="audio",
                                                    value="path/to/audio.ogg")
                ],
                single=None),
            samplegen.TransformedRequest(
                base="order",
                body=None,
                single=samplegen.AttributeRequestSetup(value="'TEUTHIDA'"))
        ])
示例#3
0
def test_render_method_call_basic_flattenable():
    check_template('''
        {% import "feature_fragments.j2" as frags %}
        {{ frags.render_method_call({"rpc": "CategorizeMollusc", "request": request},
                                  calling_form, calling_form_enum) }}
        ''',
                   '''
        client.categorize_mollusc(video=video, audio=audio, guess=guess)
        ''',
                   request=samplegen.FullRequest(
                       request_list=[
                           samplegen.TransformedRequest(base="video",
                                                        body=True,
                                                        single=None),
                           samplegen.TransformedRequest(base="audio",
                                                        body=True,
                                                        single=None),
                           samplegen.TransformedRequest(base="guess",
                                                        body=True,
                                                        single=None)
                       ],
                       flattenable=True,
                   ),
                   calling_form_enum=CallingForm,
                   calling_form=CallingForm.Request)
示例#4
0
def test_render_method_call_basic_async():
    check_template(
        '''
        {% import "feature_fragments.j2" as frags %}
        {{ frags.render_method_call({"rpc": "CategorizeMollusc", "request": request},
                                  calling_form, calling_form_enum, transport) }}
        ''',
        '''
        await client.categorize_mollusc(request=request)
        ''',
        request=samplegen.FullRequest(
            request_list=[
                samplegen.TransformedRequest(base="video",
                                             body=True,
                                             single=None),
                samplegen.TransformedRequest(base="audio",
                                             body=True,
                                             single=None),
                samplegen.TransformedRequest(base="guess",
                                             body=True,
                                             single=None)
            ],
        ),
        calling_form_enum=CallingForm,
        calling_form=CallingForm.Request,
        transport="grpc-async"
    )
示例#5
0
def test_main_block():
    check_template(
        '''
        {% import "feature_fragments.j2" as frags %}
        {{ frags.render_main_block("ListMolluscs", request) }}
        ''',
        '''
        def main():
            import argparse

            parser = argparse.ArgumentParser()
            parser.add_argument("--order",
                                type=str,
                                default='coleoidea')
            parser.add_argument("--mass",
                                type=str,
                                default='60kg')
            args = parser.parse_args()

            sample_list_molluscs(args.order, args.mass)


        if __name__ == "__main__":
            main()
        ''',
        request=samplegen.FullRequest(
            request_list=[
                samplegen.TransformedRequest(base="input_params",
                                             body=[
                                                 samplegen.AttributeRequestSetup(
                                                     field="list_molluscs.order",
                                                     value="'coleoidea'",
                                                     input_parameter="order"
                                                 ),
                                                 samplegen.AttributeRequestSetup(
                                                     field="list_molluscs.mass",
                                                     value="'60kg'",
                                                     input_parameter="mass")
                                             ],
                                             single=None),
                samplegen.TransformedRequest(base="enum_param",
                                             body=[
                                                 samplegen.AttributeRequestSetup(
                                                     field="list_molluscs.zone",
                                                     value="MESOPELAGIC"
                                                 )
                                             ],
                                             single=None)
            ]
        )
    )
示例#6
0
def test_render_request_resource_name():
    check_template(
        '''
        {% import "feature_fragments.j2" as frags %}
        {{ frags.render_request_setup(request) }}
        ''',
        '''
        # Initialize request argument(s)
        taxon = "kingdom/{kingdom}/phylum/{phylum}".format(kingdom="animalia", phylum=mollusca)
        ''',
        request=samplegen.FullRequest(request_list=[
            samplegen.TransformedRequest(
                base="taxon",
                single=None,
                body=[
                    samplegen.AttributeRequestSetup(
                        field="kingdom",
                        value='"animalia"',
                    ),
                    samplegen.AttributeRequestSetup(
                        field="phylum",
                        value="mollusca",
                        input_parameter="mollusca",
                    )
                ],
                pattern="kingdom/{kingdom}/phylum/{phylum}"),
        ],
                                      flattenable=True),
    )
示例#7
0
def test_render_method_call_client():
    check_template(
        '''
        {% import "feature_fragments.j2" as frags %}
        {{ frags.render_method_call({"rpc": "CategorizeMollusc", "request": request},
        calling_form, calling_form_enum) }}
        ''',
        '''
        client.categorize_mollusc([video])
        ''',
        request=samplegen.FullRequest(request_list=[
            samplegen.TransformedRequest(base="video", body=True, single=None)
        ]),
        calling_form_enum=CallingForm,
        calling_form=CallingForm.RequestStreamingClient)
示例#8
0
def test_render_request_basic():
    check_template('''
        {% import "feature_fragments.j2" as frags %}
        {{ frags.render_request_setup(request) }}
        ''',
                   '''
        # Initialize request argument(s)
        cephalopod = {}
        # cephalopod_mass = '10 kg'
        cephalopod["mantle_mass"] = cephalopod_mass

        # photo_path = 'path/to/cephalopod/photo.jpg'
        with open(photo_path, "rb") as f:
            cephalopod["photo"] = f.read()

        cephalopod["order"] = Molluscs.Cephalopoda.Coleoidea

        gastropod = {}
        # gastropod_mass = '1 kg'
        gastropod["mantle_mass"] = gastropod_mass

        gastropod["order"] = Molluscs.Gastropoda.Pulmonata

        # movie_path = 'path/to/gastropod/movie.mkv'
        with open(movie_path, "rb") as f:
            gastropod["movie"] = f.read()

        ''',
                   request=samplegen.FullRequest(
                       request_list=[
                           samplegen.TransformedRequest(
                               base="cephalopod",
                               body=[
                                   samplegen.AttributeRequestSetup(
                                       field="mantle_mass",
                                       value="'10 kg'",
                                       input_parameter="cephalopod_mass"),
                                   samplegen.AttributeRequestSetup(
                                       field="photo",
                                       value="'path/to/cephalopod/photo.jpg'",
                                       input_parameter="photo_path",
                                       value_is_file=True),
                                   samplegen.AttributeRequestSetup(
                                       field="order",
                                       value="Molluscs.Cephalopoda.Coleoidea"),
                               ],
                               single=None),
                           samplegen.TransformedRequest(
                               base="gastropod",
                               body=[
                                   samplegen.AttributeRequestSetup(
                                       field="mantle_mass",
                                       value="'1 kg'",
                                       input_parameter="gastropod_mass"),
                                   samplegen.AttributeRequestSetup(
                                       field="order",
                                       value="Molluscs.Gastropoda.Pulmonata"),
                                   samplegen.AttributeRequestSetup(
                                       field="movie",
                                       value="'path/to/gastropod/movie.mkv'",
                                       input_parameter="movie_path",
                                       value_is_file=True)
                               ],
                               single=None),
                       ],
                       flattenable=True,
                   ))
示例#9
0
def test_render_request_unflattened():
    check_template(
        '''
        {% import "feature_fragments.j2" as frags %}
        {{ frags.render_request_setup(request, "mollusca", "CreateMolluscRequest") }}
        ''',
        '''
        # Initialize request argument(s)
        cephalopod = {}
        # cephalopod_mass = '10 kg'
        cephalopod["mantle_mass"] = cephalopod_mass

        # photo_path = 'path/to/cephalopod/photo.jpg'
        with open(photo_path, "rb") as f:
            cephalopod["photo"] = f.read()

        cephalopod["order"] = Molluscs.Cephalopoda.Coleoidea

        gastropod = {}
        # gastropod_mass = '1 kg'
        gastropod["mantle_mass"] = gastropod_mass

        gastropod["order"] = Molluscs.Gastropoda.Pulmonata

        # movie_path = 'path/to/gastropod/movie.mkv'
        with open(movie_path, "rb") as f:
            gastropod["movie"] = f.read()

        request = mollusca.CreateMolluscRequest(
            cephalopod=cephalopod,
            gastropod=gastropod,
            bivalve="humboldt",
        )
        ''',
        request=samplegen.FullRequest(request_list=[
            samplegen.TransformedRequest(
                base="cephalopod",
                body=[
                    samplegen.AttributeRequestSetup(
                        field="mantle_mass",
                        value="'10 kg'",
                        input_parameter="cephalopod_mass"),
                    samplegen.AttributeRequestSetup(
                        field="photo",
                        value="'path/to/cephalopod/photo.jpg'",
                        input_parameter="photo_path",
                        value_is_file=True),
                    samplegen.AttributeRequestSetup(
                        field="order", value="Molluscs.Cephalopoda.Coleoidea"),
                ],
                single=None),
            samplegen.TransformedRequest(
                base="gastropod",
                body=[
                    samplegen.AttributeRequestSetup(
                        field="mantle_mass",
                        value="'1 kg'",
                        input_parameter="gastropod_mass"),
                    samplegen.AttributeRequestSetup(
                        field="order", value="Molluscs.Gastropoda.Pulmonata"),
                    samplegen.AttributeRequestSetup(
                        field="movie",
                        value="'path/to/gastropod/movie.mkv'",
                        input_parameter="movie_path",
                        value_is_file=True)
                ],
                single=None),
            samplegen.TransformedRequest(
                base="bivalve", body=None, single='"humboldt"'),
        ]),
        api=common_types.DummyApiSchema(),
    )
示例#10
0
def test_render_request_unflattened():
    check_template(
        '''
        {% import "feature_fragments.j2" as frags %}
        {{ frags.render_request_setup(request, module_name, request_type, calling_form, calling_form_enum) }}
        ''',
        '''
        # Initialize request argument(s)
        cephalopod = mollusca.Cephalopod()

        # cephalopod_mass = '10 kg'
        cephalopod.mantle_mass = cephalopod_mass

        # photo_path = 'path/to/cephalopod/photo.jpg'
        with open(photo_path, "rb") as f:
            cephalopod.photo = f.read()
        cephalopod.order = Molluscs.Cephalopoda.Coleoidea

        gastropod = mollusca.Gastropod()

        # gastropod_mass = '1 kg'
        gastropod.mantle_mass = gastropod_mass
        gastropod.order = Molluscs.Gastropoda.Pulmonata

        # movie_path = 'path/to/gastropod/movie.mkv'
        with open(movie_path, "rb") as f:
            gastropod.movie = f.read()

        request = mollusca.CreateMolluscRequest(
            cephalopod=cephalopod,
            gastropod=gastropod,
            bivalve="humboldt",
        )
        ''',
        request=samplegen.FullRequest(
            request_list=[
                samplegen.TransformedRequest(base="cephalopod",
                                             body=[
                                                  samplegen.AttributeRequestSetup(
                                                      field="mantle_mass",
                                                      value="'10 kg'",
                                                      input_parameter="cephalopod_mass"
                                                  ),
                                                 samplegen.AttributeRequestSetup(
                                                      field="photo",
                                                      value="'path/to/cephalopod/photo.jpg'",
                                                      input_parameter="photo_path",
                                                      value_is_file=True
                                                  ),
                                                 samplegen.AttributeRequestSetup(
                                                      field="order",
                                                      value="Molluscs.Cephalopoda.Coleoidea"),
                                             ],
                                             single=None),
                samplegen.TransformedRequest(base="gastropod",
                                             body=[
                                                  samplegen.AttributeRequestSetup(
                                                      field="mantle_mass",
                                                      value="'1 kg'",
                                                      input_parameter="gastropod_mass"
                                                  ),
                                                 samplegen.AttributeRequestSetup(
                                                      field="order",
                                                      value="Molluscs.Gastropoda.Pulmonata"
                                                  ),
                                                 samplegen.AttributeRequestSetup(
                                                      field="movie",
                                                      value="'path/to/gastropod/movie.mkv'",
                                                      input_parameter="movie_path",
                                                      value_is_file=True
                                                  )
                                             ],
                                             single=None),
                samplegen.TransformedRequest(base="bivalve",
                                             body=None,
                                             single=samplegen.AttributeRequestSetup(
                                                 value='"humboldt"',
                                             ),),
            ]
        ),
        module_name="mollusca",
        request_type=common_types.DummyMessage(
            fields={
                "cephalopod": common_types.DummyField(
                    name="cephalopod",
                    type=common_types.DummyMessageTypePB(name="Cephalopod")
                ),
                "gastropod": common_types.DummyField(
                    name="gastropod",
                    type=common_types.DummyMessageTypePB(name="Gastropod")
                )
            },
            ident=common_types.DummyIdent(name="CreateMolluscRequest")
        ),
        calling_form_enum=CallingForm,
        calling_form=CallingForm.Request,
    )