예제 #1
0
파일: test_main.py 프로젝트: nicoscha/PESI
 def test_convert_parameters(self):
     ESI_parameters = {'pythonic_name': None, 'CamelCase-With-Hyphen': True}
     ESI_parameters_with_addition = {
         'pythonic_name': None,
         'CamelCase-With-Hyphen': True,
         'camelcase_with_hyphen': True
     }
     ESI_to_py._convert_parameters(ESI_parameters)
     self.assertEqual(ESI_parameters, ESI_parameters_with_addition)
예제 #2
0
파일: test_main.py 프로젝트: nicoscha/PESI
 def test_shuffle_kwargs_to_the_end(self):
     test = [
         'arg_1', 'kwarg_1=kwarg_1', 'arg_2', 'kwarg_2=kwarg_2', 'arg_3'
     ]
     returned = ESI_to_py._shuffle_kwargs_to_the_end(test)
     expected = [
         'arg_1', 'arg_2', 'arg_3', 'kwarg_1=kwarg_1', 'kwarg_2=kwarg_2'
     ]
     self.assertEqual(expected, returned)
예제 #3
0
파일: test_main.py 프로젝트: nicoscha/PESI
 def test_filter_parameter_filtered_as_keyword(self):
     parameters = {
         'datasource': '',
         'If-None-Match': 'if_none_match=if_none_match',
         'Accept-Language': 'accept_language=accept_language',
         'page': 'page=page'
     }
     for parameter, expected in parameters.items():
         returned = ESI_to_py._filter_parameter(parameter, as_key_word=True)
         self.assertEqual(expected, returned)
예제 #4
0
파일: test_main.py 프로젝트: nicoscha/PESI
 def test_filter_parameter_filtered_not_keyword(self):
     parameters = {
         'datasource': '',
         'If-None-Match': 'if_none_match=None',
         'Accept-Language': "accept_language='en-us'",
         'page': "page='1'"
     }
     for parameter, expected in parameters.items():
         returned = ESI_to_py._filter_parameter(parameter)
         self.assertEqual(expected, returned)
예제 #5
0
파일: test_main.py 프로젝트: nicoscha/PESI
    def test_get_parameters_with_description(self):
        function_dict = {
            'parameters': [{
                '$ref': '#/parameters/datasource'
            }, {
                '$ref': '#/parameters/language',
                'enum': ['de', 'en-us', 'fr', 'ja', 'ru', 'zh']
            }, {
                'description': 'ID for a war',
                'format': 'int32',
                'in': 'path',
                'minimum': 1,
                'name': 'war_id',
                'enum': [1, 2, 3],
                'required': True,
                'type': 'integer'
            }]
        }
        parameters = {
            'datasource': {
                'default': 'tranquility',
                'description': 'The server name you would like data from',
                'enum': ['tranquility', 'singularity'],
                'in': 'query',
                'name': 'datasource',
                'type': 'string'
            },
            'language': {
                'default': 'en-us',
                'description':
                'Language to use in the response, takes precedence over Accept-Language',
                'enum': ['de', 'en-us', 'fr', 'ja', 'ru', 'zh'],
                'in': 'query',
                'name': 'language',
                'type': 'string'
            },
        }

        full_description = ESI_to_py._get_parameters_with_description(
            function_dict=function_dict, parameters=parameters)
        expected_description = (
            ''':param language: ['de', 'en-us', 'fr', '''
            ''''ja', 'ru', 'zh'] Language to use in the '''
            'response, takes precedence over '
            'Accept-Language\n'
            '    :param war_id: [1, 2, 3] ID for a war\n    ')
        self.assertEqual(expected_description, full_description)
예제 #6
0
파일: test_main.py 프로젝트: nicoscha/PESI
 def test_create_doc_string(self):
     ESI_parameters = {
         'datasource': {
             'default': 'tranquility',
             'description': 'The server name you would like data from',
             'enum': ['tranquility', 'singularity'],
             'in': 'query',
             'name': 'datasource',
             'type': 'string'
         },
         'page': {
             'default': 1,
             'description': 'Which page of results to return',
             'format': 'int32',
             'in': 'query',
             'minimum': 1,
             'name': 'page',
             'type': 'integer'
         },
         'if_none_match': {
             'description':
             'ETag from a previous request. A 304 will be returned if this matches the current ETag',
             'in': 'header',
             'name': 'If-None-Match',
             'type': 'string'
         }
     }
     function_dict = {
         'description':
         'Return a list of kills related to a war\n\n---\nAlternate route: `/dev/wars/{war_id}/killmails/`\n\nAlternate route: `/legacy/wars/{war_id}/killmails/`\n\nAlternate route: `/v1/wars/{war_id}/killmails/`\n\n---\nThis route is cached for up to 3600 seconds',
         'operationId':
         'get_wars_war_id_killmails',
         'parameters': [{
             '$ref': '#/parameters/datasource'
         }, {
             '$ref': '#/parameters/If-None-Match'
         }, {
             '$ref': '#/parameters/page'
         }, {
             'description': 'A valid war ID',
             'format': 'int32',
             'in': 'path',
             'minimum': 1,
             'name': 'war_id',
             'required': True,
             'type': 'integer'
         }]
     }
     expected_doc_string = (
         '\n    """\n'
         '    :param if_none_match: ETag from a previous request. '
         'A 304 will be returned if this matches the current ETag\n'
         '    :param page: Which page of results to return\n'
         '    :param war_id: A valid war ID\n'
         '    Return a list of kills related to a war\n'
         '    ---\n'
         '    Alternate route: `/dev/wars/{war_id}/killmails/`\n'
         '    Alternate route: `/legacy/wars/{war_id}/killmails/`\n'
         '    Alternate route: `/v1/wars/{war_id}/killmails/`\n'
         '    ---\n'
         '    This route is cached for up to 3600 seconds\n'
         '    """\n')
     doc_string = ESI_to_py._create_doc_string(
         ESI_parameters=ESI_parameters, function_dict=function_dict)
     self.assertEqual(expected_doc_string, doc_string)
예제 #7
0
파일: test_main.py 프로젝트: nicoscha/PESI
 def test_format_code(self):
     """Minimal test. For further tests see package tests"""
     test_code = 'x=1'
     expected_code = 'x = 1\n'
     returned_code = ESI_to_py._format_code(test_code)
     self.assertEqual(expected_code, returned_code)
예제 #8
0
파일: test_main.py 프로젝트: nicoscha/PESI
 def test_get_ESI_versions(self):
     versions = ESI_to_py._get_ESI_versions()
     self.assertIsInstance(versions, list)
예제 #9
0
파일: test_main.py 프로젝트: nicoscha/PESI
 def test_request_json(self):
     ESI = ESI_to_py._request_json(version='latest')
     self.assertNotEqual({}, ESI)
예제 #10
0
파일: test_main.py 프로젝트: nicoscha/PESI
 def test_create_functions(self):
     ESI_parameters = {
         'datasource': {
             'default': 'tranquility',
             'description': 'The server name you would like data from',
             'enum': ['tranquility', 'singularity'],
             'in': 'query',
             'name': 'datasource',
             'type': 'string'
         },
         'if_none_match': {
             'description':
             'ETag from a previous request. A 304 will be returned if this matches the current ETag',
             'in': 'header',
             'name': 'If-None-Match',
             'type': 'string'
         }
     }
     ESI_paths = {
         '/wars/': {
             'get': {
                 'description':
                 'Return a list of wars\n\n---\nAlternate route: `/dev/wars/`\n\nAlternate route: `/legacy/wars/`\n\nAlternate route: `/v1/wars/`\n\n---\nThis route is cached for up to 3600 seconds',
                 'operationId':
                 'get_wars',
                 'parameters': [{
                     '$ref': '#/parameters/datasource'
                 }, {
                     '$ref': '#/parameters/If-None-Match'
                 }, {
                     'description':
                     'Only return wars with ID smaller than this',
                     'format': 'int32',
                     'in': 'query',
                     'name': 'max_war_id',
                     'required': False,
                     'type': 'integer'
                 }]
             }
         }
     }
     function = ESI_to_py._create_functions(ESI_parameters=ESI_parameters,
                                            ESI_paths=ESI_paths,
                                            data_source='tranquility',
                                            version='latest')
     expected = (
         'def get_wars(*, max_war_id, if_none_match=None):\n'
         '    """\n'
         '    :param if_none_match: ETag from a previous request. '
         'A 304 will be returned if this matches the current ETag\n'
         '    :param max_war_id: '
         'Only return wars with ID smaller than this\n'
         '    Return a list of wars\n'
         '    ---\n'
         '    Alternate route: `/dev/wars/`\n'
         '    Alternate route: `/legacy/wars/`\n'
         '    Alternate route: `/v1/wars/`\n'
         '    ---\n'
         '    This route is cached for up to 3600 seconds\n'
         '    """\n'
         '    ESI_request.request(if_none_match=if_none_match, '
         "max_war_id=max_war_id, data_source='tranquility', "
         "version='latest', HTTP_method='GET', path=f'/wars/')\n\n\n")
     self.assertEqual(expected, function)
예제 #11
0
파일: test_main.py 프로젝트: nicoscha/PESI
 def test_identifier(self):
     non_identifier = '375. CamelCase-With-Hyphen'
     identifier = 'camelcase_with_hyphen'
     self.assertEqual(ESI_to_py._identifier(non_identifier), identifier)
     self.assertEqual(identifier, identifier)
예제 #12
0
파일: test_main.py 프로젝트: nicoscha/PESI
 def test_filter_parameter_unfiltered_as_keyword(self):
     expected = 'one=one'
     returned = ESI_to_py._filter_parameter('one', as_key_word=True)
     self.assertEqual(expected, returned)
예제 #13
0
파일: test_main.py 프로젝트: nicoscha/PESI
 def test_filter_parameter_no_keyword(self):
     expected = 'one'
     returned = ESI_to_py._filter_parameter('one')
     self.assertEqual(expected, returned)
예제 #14
0
파일: test_main.py 프로젝트: nicoscha/PESI
 def test_join_parameters(self):
     test_parameter = ['abc', 'def', 'ghj']
     returned = ESI_to_py._join_parameters(test_parameter)
     expected = 'abc, def, ghj'
     self.assertEqual(expected, returned)