def test_json_schema_ref_url_json(mocker):
    parser = JsonSchemaParser('')
    obj = {
        "type": "object",
        "properties": {
            "user": {
                '$ref': 'https://example.org/schema.json#/definitions/User'
            }
        },
    }
    mock_get = mocker.patch('httpx.get')
    mock_get.return_value.text = json.dumps(
        json.load((DATA_PATH / 'user.json').open()))

    parser.parse_raw_obj('Model', obj, ['Model'])
    assert (dump_templates(list(parser.results)) == '''class Model(BaseModel):
    user: Optional[User] = None


class User(BaseModel):
    name: Optional[str] = Field(None, example='ken')


class Pet(BaseModel):
    name: Optional[str] = Field(None, examples=['dog', 'cat'])''')
    mock_get.assert_called_once_with('https://example.org/schema.json', )
Пример #2
0
def test_json_schema_parser_parse_ref():
    parser = JsonSchemaParser(BaseModel, CustomRootType)
    parser.parse_raw_obj = Mock()
    external_parent_path = Path(DATA_PATH / 'external_parent.json')
    parser.base_path = external_parent_path.parent
    parser.excludes_ref_path = set()
    external_parent = external_parent_path.read_text()
    obj = JsonSchemaObject.parse_raw(external_parent)

    parser.parse_ref(obj)
    parser.parse_raw_obj.assert_has_calls([
        call(
            'Yaml',
            {
                'properties': {
                    'firstName': {
                        'type': 'string'
                    }
                },
                'type': 'object'
            },
        ),
        call(
            'Json',
            {
                'properties': {
                    'firstName': {
                        'type': 'string'
                    }
                },
                'type': 'object'
            },
        ),
    ])
Пример #3
0
def test_json_schema_parser_parse_ref():
    parser = JsonSchemaParser(BaseModel,
                              CustomRootType,
                              data_model_field_type=DataModelField)
    parser.parse_raw_obj = Mock()
    external_parent_path = Path(DATA_PATH / 'external_parent.json')
    parser.base_path = external_parent_path.parent
    parser.excludes_ref_path = set()
    external_parent = external_parent_path.read_text()
    obj = JsonSchemaObject.parse_raw(external_parent)

    parser.parse_ref(obj, [])
def test_parse_default(source_obj, generated_classes):
    parser = JsonSchemaParser('')
    parser.parse_raw_obj('Defaults', source_obj, [])
    assert dump_templates(list(parser.results)) == generated_classes
def test_parse_one_of_object(source_obj, generated_classes):
    parser = JsonSchemaParser('')
    parser.parse_raw_obj('onOfObject', source_obj, [])
    assert dump_templates(list(parser.results)) == generated_classes
Пример #6
0
def test_parse_default(source_obj, generated_classes):
    parser = JsonSchemaParser(BaseModel,
                              CustomRootType,
                              data_model_field_type=DataModelField)
    parser.parse_raw_obj('Defaults', source_obj, [])
    assert dump_templates(list(parser.results)) == generated_classes