interactions:
- request:
    body: subscription%5Bendpoint%5D=https%3A%2F%2Fexample.com&subscription%5Bkeys%5D%5Bp256dh%5D=BFyMfoSuk0ORyVIteYZr8Uf7cJmuNJRSBW3p1Gd3G%2FE0oQZoZNeAA6BKBlsM8OklQICV6moFB1V%2FPbfnwJOidqY%3D&subscription%5Bkeys%5D%5Bauth%5D=WXFm9qEx5g1Yl%2Bxf8DkX7A%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
      Authorization:
      - Bearer __MASTODON_PY_TEST_ACCESS_TOKEN
      Connection:
      - keep-alive
      Content-Length:
      - '385'
      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","alerts":{"mention":false,"reblog":false,"follow":false,"favourite":false},"server_key":"BL-2en1hK4a_0v7FUkjYpaossigfCfsvzpFEHRKPIq-ikoE0--80fVSrZdGMmXvrPJQcVTDgNN2cU0D7epxI6Ik=","policy":"all"}'
    headers:
      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/"4091b52148127a345b692c3bac387b88"
      Referrer-Policy:
      - strict-origin-when-cross-origin
      Transfer-Encoding:
      - chunked
      Vary:
      - Accept, Origin
      X-Content-Type-Options:
      - nosniff
      X-Download-Options:
      - noopen
      X-Frame-Options:
      - SAMEORIGIN
      X-Permitted-Cross-Domain-Policies:
      - none
      X-Request-Id:
      - 2f12d9f7-79e9-4414-b65c-22dadcbf2a2c
      X-Runtime:
      - '0.032430'
      X-XSS-Protection:
      - 1; mode=block
    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
      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","alerts":{"mention":true,"reblog":true,"follow":true,"favourite":true},"server_key":"BL-2en1hK4a_0v7FUkjYpaossigfCfsvzpFEHRKPIq-ikoE0--80fVSrZdGMmXvrPJQcVTDgNN2cU0D7epxI6Ik=","policy":"all"}'
    headers:
      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/"9fb75540594cf80ae4e93d3998dd472f"
      Referrer-Policy:
      - strict-origin-when-cross-origin
      Transfer-Encoding:
      - chunked
      Vary:
      - Accept, Origin
      X-Content-Type-Options:
      - nosniff
      X-Download-Options:
      - noopen
      X-Frame-Options:
      - SAMEORIGIN
      X-Permitted-Cross-Domain-Policies:
      - none
      X-Request-Id:
      - b49fabf9-1e0b-4d04-8250-040152afc292
      X-Runtime:
      - '0.016742'
      X-XSS-Protection:
      - 1; mode=block
    status:
      code: 200
      message: OK
- request:
    body: null
    headers:
      Accept:
      - '*/*'
      Accept-Encoding:
      - gzip, deflate
      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","alerts":{"mention":true,"reblog":true,"follow":true,"favourite":true},"server_key":"BL-2en1hK4a_0v7FUkjYpaossigfCfsvzpFEHRKPIq-ikoE0--80fVSrZdGMmXvrPJQcVTDgNN2cU0D7epxI6Ik=","policy":"all"}'
    headers:
      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/"9fb75540594cf80ae4e93d3998dd472f"
      Referrer-Policy:
      - strict-origin-when-cross-origin
      Transfer-Encoding:
      - chunked
      Vary:
      - Accept, Origin
      X-Content-Type-Options:
      - nosniff
      X-Download-Options:
      - noopen
      X-Frame-Options:
      - SAMEORIGIN
      X-Permitted-Cross-Domain-Policies:
      - none
      X-Request-Id:
      - b294e04a-81d3-4f0f-9d84-23632b5fce6c
      X-Runtime:
      - '0.011559'
      X-XSS-Protection:
      - 1; mode=block
    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
      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","alerts":{"mention":false,"reblog":false,"follow":false,"favourite":false},"server_key":"BL-2en1hK4a_0v7FUkjYpaossigfCfsvzpFEHRKPIq-ikoE0--80fVSrZdGMmXvrPJQcVTDgNN2cU0D7epxI6Ik=","policy":"all"}'
    headers:
      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/"4091b52148127a345b692c3bac387b88"
      Referrer-Policy:
      - strict-origin-when-cross-origin
      Transfer-Encoding:
      - chunked
      Vary:
      - Accept, Origin
      X-Content-Type-Options:
      - nosniff
      X-Download-Options:
      - noopen
      X-Frame-Options:
      - SAMEORIGIN
      X-Permitted-Cross-Domain-Policies:
      - none
      X-Request-Id:
      - 28700e33-e737-4e51-a976-b0a3051a9b1c
      X-Runtime:
      - '0.014047'
      X-XSS-Protection:
      - 1; mode=block
    status:
      code: 200
      message: OK
- request:
    body: null
    headers:
      Accept:
      - '*/*'
      Accept-Encoding:
      - gzip, deflate
      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","alerts":{"mention":false,"reblog":false,"follow":false,"favourite":false},"server_key":"BL-2en1hK4a_0v7FUkjYpaossigfCfsvzpFEHRKPIq-ikoE0--80fVSrZdGMmXvrPJQcVTDgNN2cU0D7epxI6Ik=","policy":"all"}'
    headers:
      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/"4091b52148127a345b692c3bac387b88"
      Referrer-Policy:
      - strict-origin-when-cross-origin
      Transfer-Encoding:
      - chunked
      Vary:
      - Accept, Origin
      X-Content-Type-Options:
      - nosniff
      X-Download-Options:
      - noopen
      X-Frame-Options:
      - SAMEORIGIN
      X-Permitted-Cross-Domain-Policies:
      - none
      X-Request-Id:
      - 258d359b-8761-40c1-b718-710382d818f1
      X-Runtime:
      - '0.011305'
      X-XSS-Protection:
      - 1; mode=block
    status:
      code: 200
      message: OK
- request:
    body: null
    headers:
      Accept:
      - '*/*'
      Accept-Encoding:
      - gzip, deflate
      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","alerts":{"mention":false,"reblog":false,"follow":false,"favourite":false},"server_key":"BL-2en1hK4a_0v7FUkjYpaossigfCfsvzpFEHRKPIq-ikoE0--80fVSrZdGMmXvrPJQcVTDgNN2cU0D7epxI6Ik=","policy":"all"}'
    headers:
      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/"4091b52148127a345b692c3bac387b88"
      Referrer-Policy:
      - strict-origin-when-cross-origin
      Transfer-Encoding:
      - chunked
      Vary:
      - Accept, Origin
      X-Content-Type-Options:
      - nosniff
      X-Download-Options:
      - noopen
      X-Frame-Options:
      - SAMEORIGIN
      X-Permitted-Cross-Domain-Policies:
      - none
      X-Request-Id:
      - c75b2ff7-920e-49cd-8525-205b265da7a9
      X-Runtime:
      - '0.010049'
      X-XSS-Protection:
      - 1; mode=block
    status:
      code: 200
      message: OK
version: 1
