|
3 | 3 | from starlette.testclient import TestClient |
4 | 4 |
|
5 | 5 | from star_resty.apidocs import setup_spec |
6 | | -from .utils.method import CreateUser, GetUser, SearchUser |
| 6 | +from .utils.method import CreateUser, GetUser, SearchUser, GetItemsEcho |
7 | 7 |
|
8 | 8 |
|
9 | 9 | def test_generate_api_docs(): |
@@ -104,3 +104,25 @@ def test_generate_api_docs_for_path(): |
104 | 104 | 'responses': { |
105 | 105 | '200': {'schema': {'$ref': '#/definitions/tests.utils.method.CreateUserResponse'}}, |
106 | 106 | '400': {'description': 'Bad request'}}}}} |
| 107 | + |
| 108 | + |
| 109 | +def test_generate_api_docs_for_nested(): |
| 110 | + app = Starlette() |
| 111 | + |
| 112 | + setup_spec(app, title='test') |
| 113 | + app.add_route('/items', GetItemsEcho.as_endpoint(), methods=['GET']) |
| 114 | + |
| 115 | + client = TestClient(app) |
| 116 | + resp = client.get('/apidocs.json') |
| 117 | + assert resp is not None |
| 118 | + body = resp.json() |
| 119 | + assert body is not None |
| 120 | + assert body.get('paths') == { |
| 121 | + '/items': { |
| 122 | + 'get': {'tags': ['items'], 'description': 'get items', 'produces': ['application/json'], 'parameters': [ |
| 123 | + {'in': 'query', 'name': 'id', 'required': False, 'collectionFormat': 'multi', 'type': 'array', |
| 124 | + 'items': {'type': 'integer', 'format': 'int32'}}], |
| 125 | + 'responses': {'200': {'schema': {'$ref': '#/definitions/tests.utils.method.ItemsModel'}}, |
| 126 | + '400': {'description': 'Bad request'}}} |
| 127 | + } |
| 128 | + } |
0 commit comments