Skip to content

Commit e5cb549

Browse files
author
Marcin Molenda
committed
Expose tags in Operation object
1 parent 82a24f7 commit e5cb549

File tree

3 files changed

+7
-4
lines changed

3 files changed

+7
-4
lines changed

openapi_core/schema/operations/generators.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ def generate(self, path_name, path):
3131
parameters = self.parameters_generator.generate_from_list(
3232
parameters_list)
3333
operation_id = operation_deref.get('operationId')
34+
tags_list = operation_deref.get('tags', [])
3435

3536
request_body = None
3637
if 'requestBody' in operation_deref:
@@ -43,7 +44,7 @@ def generate(self, path_name, path):
4344
Operation(
4445
http_method, path_name, responses, list(parameters),
4546
request_body=request_body, deprecated=deprecated,
46-
operation_id=operation_id,
47+
operation_id=operation_id, tags=list(tags_list)
4748
),
4849
)
4950

openapi_core/schema/operations/models.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,15 @@ class Operation(object):
88

99
def __init__(
1010
self, http_method, path_name, responses, parameters,
11-
request_body=None, deprecated=False, operation_id=None):
11+
request_body=None, deprecated=False, operation_id=None, tags=None):
1212
self.http_method = http_method
1313
self.path_name = path_name
1414
self.responses = dict(responses)
1515
self.parameters = dict(parameters)
1616
self.request_body = request_body
1717
self.deprecated = deprecated
1818
self.operation_id = operation_id
19+
self.tags = tags
1920

2021
def __getitem__(self, name):
2122
return self.parameters[name]

tests/integration/test_petstore.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,13 @@ def test_spec(self, spec, spec_dict):
7373
assert path.name == path_name
7474

7575
for http_method, operation in iteritems(path.operations):
76+
operation_spec = spec_dict['paths'][path_name][http_method]
77+
7678
assert type(operation) == Operation
7779
assert operation.path_name == path_name
7880
assert operation.http_method == http_method
7981
assert operation.operation_id is not None
80-
81-
operation_spec = spec_dict['paths'][path_name][http_method]
82+
assert operation.tags == operation_spec['tags']
8283

8384
responses_spec = operation_spec.get('responses')
8485

0 commit comments

Comments
 (0)