interactions:
- request:
    body: subscription%5Bendpoint%5D=https%3A%2F%2Fexample.com&subscription%5Bkeys%5D%5Bp256dh%5D=BGYJr5am94jr7sGVlIKLFZHAPqwAaaPZAUYQjg3aDUXA9veGs59iZVlc9qorxDN%2FympDcjFTSqRYBZalmrTbJMw%3D&subscription%5Bkeys%5D%5Bauth%5D=tIKZY7i%2B2s6pj6nSBDdZnA%3D%3D&policy=all&data%5Balerts%5D%5Bfollow%5D=0&data%5Balerts%5D%5Bfavourite%5D=0&data%5Balerts%5D%5Breblog%5D=0&data%5Balerts%5D%5Bmention%5D=0
    headers:
      Accept:
      - '*/*'
      Accept-Encoding:
      - gzip, deflate, br
      Authorization:
      - Bearer __MASTODON_PY_TEST_ACCESS_TOKEN
      Connection:
      - keep-alive
      Content-Length:
      - '383'
      Content-Type:
      - application/x-www-form-urlencoded
      User-Agent:
      - tests/v311
    method: POST
    uri: http://localhost:3000/api/v1/push/subscription
  response:
    body:
      string: '{"id":2,"endpoint":"https://example.com","standard":false,"alerts":{"mention":false,"reblog":false,"follow":false,"favourite":false},"server_key":"BKGsRlMhRk26SiksmAVnO0Qme01ZMxazuh5Bt_2bd0NIAZDly-N8oqDGuiRpfZyvTdhGLedFV5Y5nkIAX0KIeZI=","policy":"all"}'
    headers:
      Content-Length:
      - '252'
      cache-control:
      - private, no-store
      content-security-policy:
      - default-src 'none'; frame-ancestors 'none'; form-action 'none'
      content-type:
      - application/json; charset=utf-8
      etag:
      - W/"e6b0a6a737f68175a5ba5e932895e4a9"
      referrer-policy:
      - strict-origin-when-cross-origin
      server-timing:
      - cache_read.active_support;dur=0.03, sql.active_record;dur=12.18, cache_generate.active_support;dur=1.09,
        cache_write.active_support;dur=0.08, instantiation.active_record;dur=0.35,
        start_processing.action_controller;dur=0.00, start_transaction.active_record;dur=0.01,
        transaction.active_record;dur=14.70, render.active_model_serializers;dur=0.19,
        process_action.action_controller;dur=45.27
      vary:
      - Authorization, Origin
      x-content-type-options:
      - nosniff
      x-frame-options:
      - SAMEORIGIN
      x-permitted-cross-domain-policies:
      - none
      x-ratelimit-limit:
      - '300'
      x-ratelimit-remaining:
      - '299'
      x-ratelimit-reset:
      - '2025-08-17T18:45:00.516781Z'
      x-request-id:
      - 8d7c7679-443c-4705-a1e0-a0f6d506aa70
      x-runtime:
      - '0.063791'
      x-xss-protection:
      - '0'
    status:
      code: 200
      message: OK
- request:
    body: policy=all&data%5Balerts%5D%5Bfollow%5D=1&data%5Balerts%5D%5Bfavourite%5D=1&data%5Balerts%5D%5Breblog%5D=1&data%5Balerts%5D%5Bmention%5D=1
    headers:
      Accept:
      - '*/*'
      Accept-Encoding:
      - gzip, deflate, br
      Authorization:
      - Bearer __MASTODON_PY_TEST_ACCESS_TOKEN
      Connection:
      - keep-alive
      Content-Length:
      - '138'
      Content-Type:
      - application/x-www-form-urlencoded
      User-Agent:
      - tests/v311
    method: PUT
    uri: http://localhost:3000/api/v1/push/subscription
  response:
    body:
      string: '{"id":2,"endpoint":"https://example.com","standard":false,"alerts":{"mention":true,"reblog":true,"follow":true,"favourite":true},"server_key":"BKGsRlMhRk26SiksmAVnO0Qme01ZMxazuh5Bt_2bd0NIAZDly-N8oqDGuiRpfZyvTdhGLedFV5Y5nkIAX0KIeZI=","policy":"all"}'
    headers:
      Content-Length:
      - '248'
      cache-control:
      - private, no-store
      content-security-policy:
      - default-src 'none'; frame-ancestors 'none'; form-action 'none'
      content-type:
      - application/json; charset=utf-8
      etag:
      - W/"94d6ff4cdfbfa5ff330d37b5f3189b49"
      referrer-policy:
      - strict-origin-when-cross-origin
      server-timing:
      - cache_read.active_support;dur=0.03, sql.active_record;dur=5.67, cache_generate.active_support;dur=1.15,
        cache_write.active_support;dur=0.08, instantiation.active_record;dur=0.27,
        start_processing.action_controller;dur=0.00, start_transaction.active_record;dur=0.00,
        transaction.active_record;dur=4.50, render.active_model_serializers;dur=0.18,
        process_action.action_controller;dur=36.25
      vary:
      - Authorization, Origin
      x-content-type-options:
      - nosniff
      x-frame-options:
      - SAMEORIGIN
      x-permitted-cross-domain-policies:
      - none
      x-ratelimit-limit:
      - '300'
      x-ratelimit-remaining:
      - '299'
      x-ratelimit-reset:
      - '2025-08-17T18:45:00.588272Z'
      x-request-id:
      - e6e1106d-bacf-46ea-8a02-1302078437ab
      x-runtime:
      - '0.055036'
      x-xss-protection:
      - '0'
    status:
      code: 200
      message: OK
- request:
    body: null
    headers:
      Accept:
      - '*/*'
      Accept-Encoding:
      - gzip, deflate, br
      Authorization:
      - Bearer __MASTODON_PY_TEST_ACCESS_TOKEN
      Connection:
      - keep-alive
      User-Agent:
      - tests/v311
    method: GET
    uri: http://localhost:3000/api/v1/push/subscription
  response:
    body:
      string: '{"id":2,"endpoint":"https://example.com","standard":false,"alerts":{"mention":true,"reblog":true,"follow":true,"favourite":true},"server_key":"BKGsRlMhRk26SiksmAVnO0Qme01ZMxazuh5Bt_2bd0NIAZDly-N8oqDGuiRpfZyvTdhGLedFV5Y5nkIAX0KIeZI=","policy":"all"}'
    headers:
      Content-Length:
      - '248'
      cache-control:
      - private, no-store
      content-security-policy:
      - default-src 'none'; frame-ancestors 'none'; form-action 'none'
      content-type:
      - application/json; charset=utf-8
      etag:
      - W/"94d6ff4cdfbfa5ff330d37b5f3189b49"
      referrer-policy:
      - strict-origin-when-cross-origin
      server-timing:
      - cache_read.active_support;dur=0.03, sql.active_record;dur=1.22, cache_generate.active_support;dur=1.17,
        cache_write.active_support;dur=0.13, instantiation.active_record;dur=0.25,
        start_processing.action_controller;dur=0.00, render.active_model_serializers;dur=0.18,
        process_action.action_controller;dur=35.50
      vary:
      - Authorization, Origin
      x-content-type-options:
      - nosniff
      x-frame-options:
      - SAMEORIGIN
      x-permitted-cross-domain-policies:
      - none
      x-ratelimit-limit:
      - '300'
      x-ratelimit-remaining:
      - '299'
      x-ratelimit-reset:
      - '2025-08-17T18:45:00.659063Z'
      x-request-id:
      - 97d65b39-f6f1-4785-94fa-4d514ce98321
      x-runtime:
      - '0.054199'
      x-xss-protection:
      - '0'
    status:
      code: 200
      message: OK
- request:
    body: policy=all&data%5Balerts%5D%5Bfollow%5D=0&data%5Balerts%5D%5Bfavourite%5D=0&data%5Balerts%5D%5Breblog%5D=0&data%5Balerts%5D%5Bmention%5D=0
    headers:
      Accept:
      - '*/*'
      Accept-Encoding:
      - gzip, deflate, br
      Authorization:
      - Bearer __MASTODON_PY_TEST_ACCESS_TOKEN
      Connection:
      - keep-alive
      Content-Length:
      - '138'
      Content-Type:
      - application/x-www-form-urlencoded
      User-Agent:
      - tests/v311
    method: PUT
    uri: http://localhost:3000/api/v1/push/subscription
  response:
    body:
      string: '{"id":2,"endpoint":"https://example.com","standard":false,"alerts":{"mention":false,"reblog":false,"follow":false,"favourite":false},"server_key":"BKGsRlMhRk26SiksmAVnO0Qme01ZMxazuh5Bt_2bd0NIAZDly-N8oqDGuiRpfZyvTdhGLedFV5Y5nkIAX0KIeZI=","policy":"all"}'
    headers:
      Content-Length:
      - '252'
      cache-control:
      - private, no-store
      content-security-policy:
      - default-src 'none'; frame-ancestors 'none'; form-action 'none'
      content-type:
      - application/json; charset=utf-8
      etag:
      - W/"e6b0a6a737f68175a5ba5e932895e4a9"
      referrer-policy:
      - strict-origin-when-cross-origin
      server-timing:
      - cache_read.active_support;dur=0.03, sql.active_record;dur=5.81, cache_generate.active_support;dur=1.10,
        cache_write.active_support;dur=0.07, instantiation.active_record;dur=0.25,
        start_processing.action_controller;dur=0.00, start_transaction.active_record;dur=0.00,
        transaction.active_record;dur=4.87, render.active_model_serializers;dur=0.19,
        process_action.action_controller;dur=35.57
      vary:
      - Authorization, Origin
      x-content-type-options:
      - nosniff
      x-frame-options:
      - SAMEORIGIN
      x-permitted-cross-domain-policies:
      - none
      x-ratelimit-limit:
      - '300'
      x-ratelimit-remaining:
      - '299'
      x-ratelimit-reset:
      - '2025-08-17T18:45:00.711964Z'
      x-request-id:
      - 457994c8-0e42-4c93-9d20-61f894666db9
      x-runtime:
      - '0.054307'
      x-xss-protection:
      - '0'
    status:
      code: 200
      message: OK
- request:
    body: null
    headers:
      Accept:
      - '*/*'
      Accept-Encoding:
      - gzip, deflate, br
      Authorization:
      - Bearer __MASTODON_PY_TEST_ACCESS_TOKEN
      Connection:
      - keep-alive
      User-Agent:
      - tests/v311
    method: GET
    uri: http://localhost:3000/api/v1/push/subscription
  response:
    body:
      string: '{"id":2,"endpoint":"https://example.com","standard":false,"alerts":{"mention":false,"reblog":false,"follow":false,"favourite":false},"server_key":"BKGsRlMhRk26SiksmAVnO0Qme01ZMxazuh5Bt_2bd0NIAZDly-N8oqDGuiRpfZyvTdhGLedFV5Y5nkIAX0KIeZI=","policy":"all"}'
    headers:
      Content-Length:
      - '252'
      cache-control:
      - private, no-store
      content-security-policy:
      - default-src 'none'; frame-ancestors 'none'; form-action 'none'
      content-type:
      - application/json; charset=utf-8
      etag:
      - W/"e6b0a6a737f68175a5ba5e932895e4a9"
      referrer-policy:
      - strict-origin-when-cross-origin
      server-timing:
      - cache_read.active_support;dur=0.03, sql.active_record;dur=0.99, cache_generate.active_support;dur=1.10,
        cache_write.active_support;dur=0.08, instantiation.active_record;dur=0.29,
        start_processing.action_controller;dur=0.00, render.active_model_serializers;dur=0.21,
        process_action.action_controller;dur=29.09
      vary:
      - Authorization, Origin
      x-content-type-options:
      - nosniff
      x-frame-options:
      - SAMEORIGIN
      x-permitted-cross-domain-policies:
      - none
      x-ratelimit-limit:
      - '300'
      x-ratelimit-remaining:
      - '299'
      x-ratelimit-reset:
      - '2025-08-17T18:45:00.774101Z'
      x-request-id:
      - de022758-6687-4f83-a5c5-ee701a977040
      x-runtime:
      - '0.046319'
      x-xss-protection:
      - '0'
    status:
      code: 200
      message: OK
- request:
    body: null
    headers:
      Accept:
      - '*/*'
      Accept-Encoding:
      - gzip, deflate, br
      Authorization:
      - Bearer __MASTODON_PY_TEST_ACCESS_TOKEN
      Connection:
      - keep-alive
      User-Agent:
      - tests/v311
    method: GET
    uri: http://localhost:3000/api/v1/push/subscription
  response:
    body:
      string: '{"id":2,"endpoint":"https://example.com","standard":false,"alerts":{"mention":false,"reblog":false,"follow":false,"favourite":false},"server_key":"BKGsRlMhRk26SiksmAVnO0Qme01ZMxazuh5Bt_2bd0NIAZDly-N8oqDGuiRpfZyvTdhGLedFV5Y5nkIAX0KIeZI=","policy":"all"}'
    headers:
      Content-Length:
      - '252'
      cache-control:
      - private, no-store
      content-security-policy:
      - default-src 'none'; frame-ancestors 'none'; form-action 'none'
      content-type:
      - application/json; charset=utf-8
      etag:
      - W/"e6b0a6a737f68175a5ba5e932895e4a9"
      referrer-policy:
      - strict-origin-when-cross-origin
      server-timing:
      - cache_read.active_support;dur=0.03, sql.active_record;dur=0.96, cache_generate.active_support;dur=1.03,
        cache_write.active_support;dur=0.08, instantiation.active_record;dur=0.26,
        start_processing.action_controller;dur=0.00, render.active_model_serializers;dur=0.19,
        process_action.action_controller;dur=28.31
      vary:
      - Authorization, Origin
      x-content-type-options:
      - nosniff
      x-frame-options:
      - SAMEORIGIN
      x-permitted-cross-domain-policies:
      - none
      x-ratelimit-limit:
      - '300'
      x-ratelimit-remaining:
      - '299'
      x-ratelimit-reset:
      - '2025-08-17T18:45:00.827137Z'
      x-request-id:
      - b8467275-252d-4997-a6b5-94867ec70c15
      x-runtime:
      - '0.046420'
      x-xss-protection:
      - '0'
    status:
      code: 200
      message: OK
version: 1
