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', )
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' }, ), ])
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
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