def test_noop_when_model_already_marked(response_spec, pet_model_spec):
    pet_model_spec[MODEL_MARKER] = 'Pet'
    response_spec['schema'] = build_pet_proxy(
        '#/definitions/Pet', pet_model_spec)
    annotate_with_xmodel_callback(response_spec, key='schema')
    assert pet_model_spec[MODEL_MARKER] == 'Pet'
def test_noop_when_not_jsonref(response_spec, pet_model_spec):
    annotate_with_xmodel_callback(response_spec, key='schema')
    assert MODEL_MARKER not in pet_model_spec
def test_noop_when_ref_target_path_doesnt_match(response_spec, pet_model_spec):
    # Not a model because the ref path doesn't match `#/definitions/<blah>`
    response_spec['schema'] = build_pet_proxy(
        '#/i_am_not_a_model/Pet', pet_model_spec)
    annotate_with_xmodel_callback(response_spec, key='schema')
    assert MODEL_MARKER not in pet_model_spec
def test_annotates_external_ref(response_spec, pet_model_spec):
    response_spec['schema'] = build_pet_proxy(
        'pet.json#/definitions/Pet', pet_model_spec)
    annotate_with_xmodel_callback(response_spec, key='schema')
    assert pet_model_spec[MODEL_MARKER] == 'Pet'