{
  "appeals": 1,
  "budgets": {
    "baseline_limit_s": 600,
    "verification_timeout_s": 600,
    "worker": {
      "max_completion_tokens": 96000,
      "max_turns": 60,
      "max_wall_seconds": 1500.0,
      "prompt_token_budget": 160000
    }
  },
  "issue": "`make_dataclass` erase the `__post_init__` method \nin #714 we changed how we create GET request model from using `attrs` to `dataclass`. This was to support `alias` with `-`.  The downside was that we need to do `validation/conversion` in a `__post_init__` method.\r\n\r\nIt seems that this wasn't well tested \ud83d\ude22, and now when we create a Model with `extensions` the `__post_init__` is not ran \ud83d\ude2d \ud83d\ude2d \ud83d\ude2d \ud83d\ude2d \ud83d\ude2d \r\n\r\n```python\r\nfrom stac_fastapi.api.models import create_get_request_model\r\nfrom stac_fastapi.extensions.core import FieldsExtension\r\n\r\nmodel = create_get_request_model(extensions=[FieldsExtension()])\r\nmodel(datetime=\"yo\")\r\n\r\n\r\nmodel = create_get_request_model(extensions=[])\r\nmodel(datetime=\"yo\")\r\n\r\n>> HTTPException: 400: Invalid RFC3339 datetime.\r\n```\r\n\r\n### where \r\n\r\nhttps://github.com/stac-utils/stac-fastapi/blob/494e485c5d619d8c800bc845c391dfdced21fb2a/stac_fastapi/api/stac_fastapi/api/models.py#L28-L50",
  "source": {
    "image": "docker.io/swerebenchv2/stac-utils-stac-fastapi:729-494e485",
    "platform": "linux/amd64",
    "python": "python",
    "setup": [
      "python -c 'import base64; from pathlib import Path; Path('\"'\"'/tmp/receipts-stac-utils__stac-fastapi-729-test.patch'\"'\"').write_bytes(base64.b64decode('\"'\"'ZGlmZiAtLWdpdCBhL3N0YWNfZmFzdGFwaS9hcGkvdGVzdHMvdGVzdF9hcHAucHkgYi9zdGFjX2Zhc3RhcGkvYXBpL3Rlc3RzL3Rlc3RfYXBwLnB5CmluZGV4IDlmYjJjNTIuLjBkZGNiMjQgMTAwNjQ0Ci0tLSBhL3N0YWNfZmFzdGFwaS9hcGkvdGVzdHMvdGVzdF9hcHAucHkKKysrIGIvc3RhY19mYXN0YXBpL2FwaS90ZXN0cy90ZXN0X2FwcC5weQpAQCAtMSwxMiArMSwxMyBAQAotZnJvbSBkYXRhY2xhc3NlcyBpbXBvcnQgZGF0YWNsYXNzCiBmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQogZnJvbSB0eXBpbmcgaW1wb3J0IExpc3QsIE9wdGlvbmFsLCBVbmlvbgogCitpbXBvcnQgYXR0cgogaW1wb3J0IHB5dGVzdAogZnJvbSBmYXN0YXBpIGltcG9ydCBQYXRoLCBRdWVyeQogZnJvbSBmYXN0YXBpLnRlc3RjbGllbnQgaW1wb3J0IFRlc3RDbGllbnQKIGZyb20gcHlkYW50aWMgaW1wb3J0IFZhbGlkYXRpb25FcnJvcgogZnJvbSBzdGFjX3B5ZGFudGljIGltcG9ydCBhcGkKK2Zyb20gdHlwaW5nX2V4dGVuc2lvbnMgaW1wb3J0IEFubm90YXRlZAogCiBmcm9tIHN0YWNfZmFzdGFwaS5hcGkgaW1wb3J0IGFwcAogZnJvbSBzdGFjX2Zhc3RhcGkuYXBpLm1vZGVscyBpbXBvcnQgKApAQCAtMzI4LDI1ICszMjksMjUgQEAgZGVmIHRlc3RfZmllbGRzX2V4dGVuc2lvbih2YWxpZGF0ZSwgVGVzdENvcmVDbGllbnQsIGl0ZW1fZGljdCk6CiBkZWYgdGVzdF9yZXF1ZXN0X21vZGVsKEFzeW5jVGVzdENvcmVDbGllbnQpOgogICAgICIiIlRlc3QgaWYgcmVxdWVzdCBtb2RlbHMgYXJlIHBhc3NlZCBjb3JyZWN0bHkuIiIiCiAKLSAgICBAZGF0YWNsYXNzCisgICAgQGF0dHIucwogICAgIGNsYXNzIENvbGxlY3Rpb25zUmVxdWVzdChBUElSZXF1ZXN0KToKLSAgICAgICAgdXNlcjogc3RyID0gUXVlcnkoLi4uKQorICAgICAgICB1c2VyOiBBbm5vdGF0ZWRbc3RyLCBRdWVyeSguLi4pXSA9IGF0dHIuaWIoKQogCi0gICAgQGRhdGFjbGFzcworICAgIEBhdHRyLnMKICAgICBjbGFzcyBDb2xsZWN0aW9uUmVxdWVzdChBUElSZXF1ZXN0KToKLSAgICAgICAgY29sbGVjdGlvbl9pZDogc3RyID0gUGF0aChkZXNjcmlwdGlvbj0iQ29sbGVjdGlvbiBJRCIpCi0gICAgICAgIHVzZXI6IHN0ciA9IFF1ZXJ5KC4uLikKKyAgICAgICAgY29sbGVjdGlvbl9pZDogQW5ub3RhdGVkW3N0ciwgUGF0aChkZXNjcmlwdGlvbj0iQ29sbGVjdGlvbiBJRCIpXSA9IGF0dHIuaWIoKQorICAgICAgICB1c2VyOiBBbm5vdGF0ZWRbc3RyLCBRdWVyeSguLi4pXSA9IGF0dHIuaWIoKQogCi0gICAgQGRhdGFjbGFzcworICAgIEBhdHRyLnMKICAgICBjbGFzcyBJdGVtc1JlcXVlc3QoQVBJUmVxdWVzdCk6Ci0gICAgICAgIGNvbGxlY3Rpb25faWQ6IHN0ciA9IFBhdGgoZGVzY3JpcHRpb249IkNvbGxlY3Rpb24gSUQiKQotICAgICAgICB1c2VyOiBzdHIgPSBRdWVyeSguLi4pCisgICAgICAgIGNvbGxlY3Rpb25faWQ6IEFubm90YXRlZFtzdHIsIFBhdGgoZGVzY3JpcHRpb249IkNvbGxlY3Rpb24gSUQiKV0gPSBhdHRyLmliKCkKKyAgICAgICAgdXNlcjogQW5ub3RhdGVkW3N0ciwgUXVlcnkoLi4uKV0gPSBhdHRyLmliKCkKIAotICAgIEBkYXRhY2xhc3MKKyAgICBAYXR0ci5zCiAgICAgY2xhc3MgSXRlbVJlcXVlc3QoQVBJUmVxdWVzdCk6Ci0gICAgICAgIGNvbGxlY3Rpb25faWQ6IHN0ciA9IFBhdGgoZGVzY3JpcHRpb249IkNvbGxlY3Rpb24gSUQiKQotICAgICAgICBpdGVtX2lkOiBzdHIgPSBQYXRoKGRlc2NyaXB0aW9uPSJJdGVtIElEIikKLSAgICAgICAgdXNlcjogc3RyID0gUXVlcnkoLi4uKQorICAgICAgICBjb2xsZWN0aW9uX2lkOiBBbm5vdGF0ZWRbc3RyLCBQYXRoKGRlc2NyaXB0aW9uPSJDb2xsZWN0aW9uIElEIildID0gYXR0ci5pYigpCisgICAgICAgIGl0ZW1faWQ6IEFubm90YXRlZFtzdHIsIFBhdGgoZGVzY3JpcHRpb249Ikl0ZW0gSUQiKV0gPSBhdHRyLmliKCkKKyAgICAgICAgdXNlcjogQW5ub3RhdGVkW3N0ciwgUXVlcnkoLi4uKV0gPSBhdHRyLmliKCkKIAogICAgIHRlc3RfYXBwID0gYXBwLlN0YWNBcGkoCiAgICAgICAgIHNldHRpbmdzPUFwaVNldHRpbmdzKCksCmRpZmYgLS1naXQgYS9zdGFjX2Zhc3RhcGkvYXBpL3Rlc3RzL3Rlc3RfbW9kZWxzLnB5IGIvc3RhY19mYXN0YXBpL2FwaS90ZXN0cy90ZXN0X21vZGVscy5weQppbmRleCAyNGVkNTlhLi5iMGMyYWQ5IDEwMDY0NAotLS0gYS9zdGFjX2Zhc3RhcGkvYXBpL3Rlc3RzL3Rlc3RfbW9kZWxzLnB5CisrKyBiL3N0YWNfZmFzdGFwaS9hcGkvdGVzdHMvdGVzdF9tb2RlbHMucHkKQEAgLTEsMTkgKzEsMjAgQEAKIGltcG9ydCBqc29uCiAKIGltcG9ydCBweXRlc3QKLWZyb20gZmFzdGFwaSBpbXBvcnQgRGVwZW5kcywgRmFzdEFQSQorZnJvbSBmYXN0YXBpIGltcG9ydCBEZXBlbmRzLCBGYXN0QVBJLCBIVFRQRXhjZXB0aW9uCiBmcm9tIGZhc3RhcGkudGVzdGNsaWVudCBpbXBvcnQgVGVzdENsaWVudAogZnJvbSBweWRhbnRpYyBpbXBvcnQgVmFsaWRhdGlvbkVycm9yCiAKIGZyb20gc3RhY19mYXN0YXBpLmFwaS5tb2RlbHMgaW1wb3J0IGNyZWF0ZV9nZXRfcmVxdWVzdF9tb2RlbCwgY3JlYXRlX3Bvc3RfcmVxdWVzdF9tb2RlbAotZnJvbSBzdGFjX2Zhc3RhcGkuZXh0ZW5zaW9ucy5jb3JlLmZpbHRlci5maWx0ZXIgaW1wb3J0IEZpbHRlckV4dGVuc2lvbgotZnJvbSBzdGFjX2Zhc3RhcGkuZXh0ZW5zaW9ucy5jb3JlLnNvcnQuc29ydCBpbXBvcnQgU29ydEV4dGVuc2lvbgorZnJvbSBzdGFjX2Zhc3RhcGkuZXh0ZW5zaW9ucy5jb3JlIGltcG9ydCBGaWVsZHNFeHRlbnNpb24sIEZpbHRlckV4dGVuc2lvbiwgU29ydEV4dGVuc2lvbgogZnJvbSBzdGFjX2Zhc3RhcGkudHlwZXMuc2VhcmNoIGltcG9ydCBCYXNlU2VhcmNoR2V0UmVxdWVzdCwgQmFzZVNlYXJjaFBvc3RSZXF1ZXN0CiAKIAogZGVmIHRlc3RfY3JlYXRlX2dldF9yZXF1ZXN0X21vZGVsKCk6Ci0gICAgZXh0ZW5zaW9ucyA9IFtGaWx0ZXJFeHRlbnNpb24oKV0KLSAgICByZXF1ZXN0X21vZGVsID0gY3JlYXRlX2dldF9yZXF1ZXN0X21vZGVsKGV4dGVuc2lvbnMsIEJhc2VTZWFyY2hHZXRSZXF1ZXN0KQorICAgIHJlcXVlc3RfbW9kZWwgPSBjcmVhdGVfZ2V0X3JlcXVlc3RfbW9kZWwoCisgICAgICAgIGV4dGVuc2lvbnM9W0ZpbHRlckV4dGVuc2lvbigpLCBGaWVsZHNFeHRlbnNpb24oKV0sCisgICAgICAgIGJhc2VfbW9kZWw9QmFzZVNlYXJjaEdldFJlcXVlc3QsCisgICAgKQogCiAgICAgbW9kZWwgPSByZXF1ZXN0X21vZGVsKAogICAgICAgICBjb2xsZWN0aW9ucz0idGVzdDEsdGVzdDIiLApAQCAtMzUsNiArMzYsOSBAQCBkZWYgdGVzdF9jcmVhdGVfZ2V0X3JlcXVlc3RfbW9kZWwoKToKICAgICBhc3NlcnQgbW9kZWwuY29sbGVjdGlvbnMgPT0gWyJ0ZXN0MSIsICJ0ZXN0MiJdCiAgICAgYXNzZXJ0IG1vZGVsLmZpbHRlcl9jcnMgPT0gImVwc2c6NDMyNiIKIAorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhIVFRQRXhjZXB0aW9uKToKKyAgICAgICAgcmVxdWVzdF9tb2RlbChkYXRldGltZT0ieW8iKQorCiAgICAgYXBwID0gRmFzdEFQSSgpCiAKICAgICBAYXBwLmdldCgiL3Rlc3QiKQpAQCAtNjIsOCArNjYsMTAgQEAgZGVmIHRlc3RfY3JlYXRlX2dldF9yZXF1ZXN0X21vZGVsKCk6CiAgICAgWyhOb25lLCBUcnVlKSwgKHsidGVzdCI6ICJ0ZXN0In0sIFRydWUpLCAoInRlc3Q9PXRlc3QiLCBGYWxzZSksIChbXSwgRmFsc2UpXSwKICkKIGRlZiB0ZXN0X2NyZWF0ZV9wb3N0X3JlcXVlc3RfbW9kZWwoZmlsdGVyLCBwYXNzZXMpOgotICAgIGV4dGVuc2lvbnMgPSBbRmlsdGVyRXh0ZW5zaW9uKCldCi0gICAgcmVxdWVzdF9tb2RlbCA9IGNyZWF0ZV9wb3N0X3JlcXVlc3RfbW9kZWwoZXh0ZW5zaW9ucywgQmFzZVNlYXJjaFBvc3RSZXF1ZXN0KQorICAgIHJlcXVlc3RfbW9kZWwgPSBjcmVhdGVfcG9zdF9yZXF1ZXN0X21vZGVsKAorICAgICAgICBleHRlbnNpb25zPVtGaWx0ZXJFeHRlbnNpb24oKSwgRmllbGRzRXh0ZW5zaW9uKCldLAorICAgICAgICBiYXNlX21vZGVsPUJhc2VTZWFyY2hQb3N0UmVxdWVzdCwKKyAgICApCiAKICAgICBpZiBub3QgcGFzc2VzOgogICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsaWRhdGlvbkVycm9yKToKQEAgLTEwMCw4ICsxMDYsMTAgQEAgZGVmIHRlc3RfY3JlYXRlX3Bvc3RfcmVxdWVzdF9tb2RlbChmaWx0ZXIsIHBhc3Nlcyk6CiAgICAgXSwKICkKIGRlZiB0ZXN0X2NyZWF0ZV9wb3N0X3JlcXVlc3RfbW9kZWxfbmVzdGVkX2ZpZWxkcyhzb3J0YnksIHBhc3Nlcyk6Ci0gICAgZXh0ZW5zaW9ucyA9IFtTb3J0RXh0ZW5zaW9uKCldCi0gICAgcmVxdWVzdF9tb2RlbCA9IGNyZWF0ZV9wb3N0X3JlcXVlc3RfbW9kZWwoZXh0ZW5zaW9ucywgQmFzZVNlYXJjaFBvc3RSZXF1ZXN0KQorICAgIHJlcXVlc3RfbW9kZWwgPSBjcmVhdGVfcG9zdF9yZXF1ZXN0X21vZGVsKAorICAgICAgICBleHRlbnNpb25zPVtTb3J0RXh0ZW5zaW9uKCldLAorICAgICAgICBiYXNlX21vZGVsPUJhc2VTZWFyY2hQb3N0UmVxdWVzdCwKKyAgICApCiAKICAgICBpZiBub3QgcGFzc2VzOgogICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsaWRhdGlvbkVycm9yKToK'\"'\"'))'",
      "git apply /tmp/receipts-stac-utils__stac-fastapi-729-test.patch"
    ],
    "workdir": "/stac-fastapi"
  },
  "spec_paths": [
    "stac_fastapi/api/tests/test_app.py",
    "stac_fastapi/api/tests/test_models.py"
  ],
  "spec_tests": [
    "stac_fastapi/api/tests/test_models.py::test_create_get_request_model"
  ],
  "suite_scope": "--no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning stac_fastapi/api/tests/test_app.py stac_fastapi/api/tests/test_models.py"
}
