interactions:
- request:
    body: subscription%5Bendpoint%5D=https%3A%2F%2Fexample.com&subscription%5Bkeys%5D%5Bp256dh%5D=BKLlr86PxkRGJgZxwCN%2BmQq9tG6hbWx8NWtdNewKMi1GDrmhWY3MZh9n%2BwHEOKy6Y4140rC2%2BnShUAQw5InURJY%3D&subscription%5Bkeys%5D%5Bauth%5D=0FmdB%2BEosmZTZnTqh3FASw%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:
      - '387'
      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":"BFq8_sg614eyBL-mXiONoBFN8xuwp6gACRnn7kkoKidg3TkHAfoSQCSMLlpDjR-3vOBpF8wTeVBM0GFFJNQLUJo=","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/"75a69c4f450de7f35bf84bfa0302f3e9"
      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:
      - 28a38173-0a66-482e-8d1c-98474931879a
      X-Runtime:
      - '0.024486'
      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":"BFq8_sg614eyBL-mXiONoBFN8xuwp6gACRnn7kkoKidg3TkHAfoSQCSMLlpDjR-3vOBpF8wTeVBM0GFFJNQLUJo=","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/"3c4d8fd17ff78e3639b3eff8b6109230"
      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:
      - 84617e47-18cf-4a46-8fc1-6ccde6089ee0
      X-Runtime:
      - '0.013959'
      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":"BFq8_sg614eyBL-mXiONoBFN8xuwp6gACRnn7kkoKidg3TkHAfoSQCSMLlpDjR-3vOBpF8wTeVBM0GFFJNQLUJo=","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/"3c4d8fd17ff78e3639b3eff8b6109230"
      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:
      - 3391e6dc-1915-4a63-8ea1-17fe91a14559
      X-Runtime:
      - '0.010473'
      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":"BFq8_sg614eyBL-mXiONoBFN8xuwp6gACRnn7kkoKidg3TkHAfoSQCSMLlpDjR-3vOBpF8wTeVBM0GFFJNQLUJo=","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/"75a69c4f450de7f35bf84bfa0302f3e9"
      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:
      - 4e8a5db2-cff7-4948-8fab-3a95db05c08d
      X-Runtime:
      - '0.013172'
      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":"BFq8_sg614eyBL-mXiONoBFN8xuwp6gACRnn7kkoKidg3TkHAfoSQCSMLlpDjR-3vOBpF8wTeVBM0GFFJNQLUJo=","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/"75a69c4f450de7f35bf84bfa0302f3e9"
      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:
      - f6cb7e11-3239-40f0-975a-6b9b6538432e
      X-Runtime:
      - '0.015267'
      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":"BFq8_sg614eyBL-mXiONoBFN8xuwp6gACRnn7kkoKidg3TkHAfoSQCSMLlpDjR-3vOBpF8wTeVBM0GFFJNQLUJo=","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/"75a69c4f450de7f35bf84bfa0302f3e9"
      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:
      - 62579f41-58c8-4ec1-9cd3-aa14d3c7a9e4
      X-Runtime:
      - '0.008958'
      X-XSS-Protection:
      - 1; mode=block
    status:
      code: 200
      message: OK
version: 1
