From fe044cb07b6de436ae49c2331d3c24e8ccfee4fc Mon Sep 17 00:00:00 2001 From: Timur Osmanov Date: Mon, 23 Dec 2024 12:22:52 +0300 Subject: [PATCH] add: yaml test --- tests/__init__.py | 0 tests/data/petstore_spec.yaml | 111 ++++++++++++++++++++++++++++++++++ tests/test_swaggerdoc.py | 20 ++++-- 3 files changed, 127 insertions(+), 4 deletions(-) create mode 100644 tests/__init__.py create mode 100644 tests/data/petstore_spec.yaml diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/data/petstore_spec.yaml b/tests/data/petstore_spec.yaml new file mode 100644 index 0000000..612be29 --- /dev/null +++ b/tests/data/petstore_spec.yaml @@ -0,0 +1,111 @@ +openapi: 3.0.0 +info: + version: 1.0.0 + title: Swagger Petstore + license: + name: MIT +servers: + - url: http://petstore.swagger.io/v1 +paths: + /pets: + get: + summary: List all pets + operationId: listPets + tags: + - pets + parameters: + - name: limit + in: query + description: How many items to return at one time (max 100) + required: false + schema: + type: integer + format: int32 + responses: + '200': + description: A paged array of pets + headers: + x-next: + description: A link to the next page of responses + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/Pets' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + summary: Create a pet + operationId: createPets + tags: + - pets + responses: + '201': + description: Null response + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /pets/{petId}: + get: + summary: Info for a specific pet + operationId: showPetById + tags: + - pets + parameters: + - name: petId + in: path + required: true + description: The id of the pet to retrieve + schema: + type: string + responses: + '200': + description: Expected response to a valid request + content: + application/json: + schema: + $ref: '#/components/schemas/Pet' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' +components: + schemas: + Pet: + type: object + required: + - id + - name + properties: + id: + type: integer + format: int64 + name: + type: string + tag: + type: string + Pets: + type: array + items: + $ref: '#/components/schemas/Pet' + Error: + type: object + required: + - code + - message + properties: + code: + type: integer + format: int32 + message: + type: string diff --git a/tests/test_swaggerdoc.py b/tests/test_swaggerdoc.py index e05ee84..cf41b32 100644 --- a/tests/test_swaggerdoc.py +++ b/tests/test_swaggerdoc.py @@ -16,11 +16,23 @@ class TestSwaggerdoc(TestCase): def setUp(self): self.ptf = PreprocessorTestFramework('swaggerdoc') self.ptf.context['project_path'] = Path('.') - self.ptf.options = { - 'json_path': rel_name(os.path.join('data', 'petstore_spec.json')), - } + self.ptf.options = {} - def test_petstore_spec(self): + def test_petstore_spec_json(self): + self.ptf.options['json_path'] = rel_name(os.path.join('data', 'petstore_spec.json')) + input_content = data_file_content(os.path.join('data', 'input', 'test1.md')) + expected_content = data_file_content(os.path.join('data', 'expected', 'test1.md')) + self.ptf.test_preprocessor( + input_mapping = { + 'index.md': input_content + }, + expected_mapping = { + 'index.md': expected_content + } + ) + + def test_petstore_spec_yaml(self): + self.ptf.options['spec_path'] = rel_name(os.path.join('data', 'petstore_spec.yaml')) input_content = data_file_content(os.path.join('data', 'input', 'test1.md')) expected_content = data_file_content(os.path.join('data', 'expected', 'test1.md')) self.ptf.test_preprocessor(