def test_generate_swagger_json(mocker, yaml_file): try: mocker.patch('__builtin__.open', create=True) except Exception: # Python3 mocker.patch('builtins.open', create=True) mocker.patch('swagger_aggregator.swagger_aggregator.yaml.load', return_value=yaml_file) mock_yaml = mocker.patch('swagger_aggregator.swagger_aggregator.yaml.dump') mocker.patch('swagger_aggregator.swagger_aggregator.SwaggerParser') mocker.patch('swagger_aggregator.swagger_aggregator.SwaggerAggregator.generate_operation_id_function') mocker.patch('swagger_aggregator.swagger_aggregator.SwaggerAggregator.get_spec_from_uri', return_value=('uri', {})) mocker.patch('swagger_aggregator.swagger_aggregator.uuid', return_value='string') agg = SwaggerAggregator('config.yaml', 'trax', 'air') def exclude_paths(swagger): return swagger agg.exclude_paths = exclude_paths def swagger_aggregate(): return {'identifications': {'spec': {'paths': {'123': {'get': {}}}, 'definitions': {'456': {'post': {}}}}, 'url': 'http://trax/v1'}, 'ingestion': {'spec': {'paths': {'789': {'delete': {}}}, 'definitions': {'147': {'put': {}}}}, 'url': 'http://air/v1'}} agg.get_aggregate_swagger = swagger_aggregate agg.generate_swagger_json() mock_yaml.assert_called_once_with({'info': {'version': '0.1', 'title': 'API Gateway'}, 'definitions': {'ingestion147': {'put': {}}, 'identifications456': {'post': {}}}, 'basePath': '/v1', 'swagger': '2.0', 'paths': {'123': {'get': {'operationId': 'swagger_aggregator.string'}}, '789': {'delete': {'operationId': 'swagger_aggregator.string'}}}}, default_flow_style=False)
def test_get_aggregate_swagger(yaml_file, mocker): try: mocker.patch('__builtin__.open', create=True) except Exception: # Python3 mocker.patch('builtins.open', create=True) mocker.patch('swagger_aggregator.swagger_aggregator.yaml.load', return_value=yaml_file) mock_request = mocker.patch('swagger_aggregator.swagger_aggregator.requests') mock_request.get.return_value.json.return_value = 'swagger' agg = SwaggerAggregator('config.yaml', 'trax', 'air') assert agg.get_aggregate_swagger() == {'identifications': {'spec': 'swagger', 'url': 'http://trax/v1'}, 'ingestion': {'spec': 'swagger', 'url': 'http://air/v1'}}
def test_get_aggregate_swagger(yaml_file, mocker): try: mocker.patch('__builtin__.open', create=True) except Exception: # Python3 mocker.patch('builtins.open', create=True) mocker.patch('swagger_aggregator.swagger_aggregator.yaml.load', return_value=yaml_file) mock_request = mocker.patch( 'swagger_aggregator.swagger_aggregator.requests') mock_request.get.return_value.json.return_value = 'swagger' agg = SwaggerAggregator('config.yaml', 'trax', 'air') assert agg.get_aggregate_swagger() == { 'identifications': { 'spec': 'swagger', 'url': 'http://trax/v1' }, 'ingestion': { 'spec': 'swagger', 'url': 'http://air/v1' } }
def test_generate_swagger_json(mocker, yaml_file): try: mocker.patch('__builtin__.open', create=True) except Exception: # Python3 mocker.patch('builtins.open', create=True) mocker.patch('swagger_aggregator.swagger_aggregator.yaml.load', return_value=yaml_file) mock_yaml = mocker.patch('swagger_aggregator.swagger_aggregator.yaml.dump') mocker.patch('swagger_aggregator.swagger_aggregator.SwaggerParser') mocker.patch( 'swagger_aggregator.swagger_aggregator.SwaggerAggregator.generate_operation_id_function' ) mocker.patch( 'swagger_aggregator.swagger_aggregator.SwaggerAggregator.get_spec_from_uri', return_value=('uri', {})) mocker.patch('swagger_aggregator.swagger_aggregator.uuid', return_value='string') agg = SwaggerAggregator('config.yaml', 'trax', 'air') def exclude_paths(swagger): return swagger agg.exclude_paths = exclude_paths def swagger_aggregate(): return { 'identifications': { 'spec': { 'paths': { '123': { 'get': {} } }, 'definitions': { '456': { 'post': {} } } }, 'url': 'http://trax/v1' }, 'ingestion': { 'spec': { 'paths': { '789': { 'delete': {} } }, 'definitions': { '147': { 'put': {} } } }, 'url': 'http://air/v1' } } agg.get_aggregate_swagger = swagger_aggregate agg.generate_swagger_json() mock_yaml.assert_called_once_with( { 'info': { 'version': '0.1', 'title': 'API Gateway' }, 'definitions': { 'ingestion147': { 'put': {} }, 'identifications456': { 'post': {} } }, 'basePath': '/v1', 'swagger': '2.0', 'paths': { '123': { 'get': { 'operationId': 'swagger_aggregator.string' } }, '789': { 'delete': { 'operationId': 'swagger_aggregator.string' } } } }, default_flow_style=False)