interactions:
- request:
    body: subscription%5Bendpoint%5D=https%3A%2F%2Fexample.com&subscription%5Bkeys%5D%5Bp256dh%5D=BGBA2KKc4lK5ELrhppxm7mrBCUtiJU1GnWhN8EQmss8Mgr77526U%2FsTpQADbeB%2BsVD42e9FG8AHNiUKOE5pQB8Y%3D&subscription%5Bkeys%5D%5Bauth%5D=VGLsZxvmcJJuFTX13BonMQ%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:
      - '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","alerts":{"mention":false,"reblog":false,"follow":false,"favourite":false},"server_key":"BCzv2IBoCn5an4RTxaTcxEUb14hWbXsS6yVkraxqbFAOwD_nR0l5I4fS7kFzJYmNnYij873sO8zDjJ_m6OAFqEo="}'
    headers:
      Cache-Control:
      - no-store
      Content-Security-Policy:
      - 'base-uri ''none''; default-src ''none''; frame-ancestors ''none''; font-src
        ''self'' http://localhost:3000; img-src ''self'' https: data: blob: http://localhost:3000;
        style-src ''self'' http://localhost:3000 ''nonce-pauSTkvSUbmd656Gw+YE3w=='';
        media-src ''self'' https: data: http://localhost:3000; frame-src ''self''
        https:; manifest-src ''self'' http://localhost:3000; connect-src ''self''
        data: blob: http://localhost:3000 http://localhost:3000 ws://localhost:4000
        ws://localhost:3035 http://localhost:3035; script-src ''self'' ''unsafe-inline''
        ''unsafe-eval'' http://localhost:3000; child-src ''self'' blob: http://localhost:3000;
        worker-src ''self'' blob: http://localhost:3000'
      Content-Type:
      - application/json; charset=utf-8
      ETag:
      - W/"a527f07100953388c1e5a0153ea5210c"
      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:
      - 2ea47b1a-a49b-419f-863f-0793d1ce7b14
      X-Runtime:
      - '0.014389'
      X-XSS-Protection:
      - 1; mode=block
    status:
      code: 200
      message: OK
- request:
    body: 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:
      - '127'
      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":"BCzv2IBoCn5an4RTxaTcxEUb14hWbXsS6yVkraxqbFAOwD_nR0l5I4fS7kFzJYmNnYij873sO8zDjJ_m6OAFqEo="}'
    headers:
      Cache-Control:
      - no-store
      Content-Security-Policy:
      - 'base-uri ''none''; default-src ''none''; frame-ancestors ''none''; font-src
        ''self'' http://localhost:3000; img-src ''self'' https: data: blob: http://localhost:3000;
        style-src ''self'' http://localhost:3000 ''nonce-e+UWW1Y4TeOdg5rlxa0hnA=='';
        media-src ''self'' https: data: http://localhost:3000; frame-src ''self''
        https:; manifest-src ''self'' http://localhost:3000; connect-src ''self''
        data: blob: http://localhost:3000 http://localhost:3000 ws://localhost:4000
        ws://localhost:3035 http://localhost:3035; script-src ''self'' ''unsafe-inline''
        ''unsafe-eval'' http://localhost:3000; child-src ''self'' blob: http://localhost:3000;
        worker-src ''self'' blob: http://localhost:3000'
      Content-Type:
      - application/json; charset=utf-8
      ETag:
      - W/"d553a2d39a3941ff0f32a6297a79d219"
      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:
      - 109dd26c-0968-4695-946b-fe52ec1fab1e
      X-Runtime:
      - '0.011000'
      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":"BCzv2IBoCn5an4RTxaTcxEUb14hWbXsS6yVkraxqbFAOwD_nR0l5I4fS7kFzJYmNnYij873sO8zDjJ_m6OAFqEo="}'
    headers:
      Cache-Control:
      - no-store
      Content-Security-Policy:
      - 'base-uri ''none''; default-src ''none''; frame-ancestors ''none''; font-src
        ''self'' http://localhost:3000; img-src ''self'' https: data: blob: http://localhost:3000;
        style-src ''self'' http://localhost:3000 ''nonce-kJEGhwgn+LfR/aXSrIjacg=='';
        media-src ''self'' https: data: http://localhost:3000; frame-src ''self''
        https:; manifest-src ''self'' http://localhost:3000; connect-src ''self''
        data: blob: http://localhost:3000 http://localhost:3000 ws://localhost:4000
        ws://localhost:3035 http://localhost:3035; script-src ''self'' ''unsafe-inline''
        ''unsafe-eval'' http://localhost:3000; child-src ''self'' blob: http://localhost:3000;
        worker-src ''self'' blob: http://localhost:3000'
      Content-Type:
      - application/json; charset=utf-8
      ETag:
      - W/"d553a2d39a3941ff0f32a6297a79d219"
      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:
      - bc7d2af0-f270-47a7-b3af-8c71044e63e9
      X-Runtime:
      - '0.009102'
      X-XSS-Protection:
      - 1; mode=block
    status:
      code: 200
      message: OK
- request:
    body: 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:
      - '127'
      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":"BCzv2IBoCn5an4RTxaTcxEUb14hWbXsS6yVkraxqbFAOwD_nR0l5I4fS7kFzJYmNnYij873sO8zDjJ_m6OAFqEo="}'
    headers:
      Cache-Control:
      - no-store
      Content-Security-Policy:
      - 'base-uri ''none''; default-src ''none''; frame-ancestors ''none''; font-src
        ''self'' http://localhost:3000; img-src ''self'' https: data: blob: http://localhost:3000;
        style-src ''self'' http://localhost:3000 ''nonce-s0UQGzEqZgJVynaznGw1cg=='';
        media-src ''self'' https: data: http://localhost:3000; frame-src ''self''
        https:; manifest-src ''self'' http://localhost:3000; connect-src ''self''
        data: blob: http://localhost:3000 http://localhost:3000 ws://localhost:4000
        ws://localhost:3035 http://localhost:3035; script-src ''self'' ''unsafe-inline''
        ''unsafe-eval'' http://localhost:3000; child-src ''self'' blob: http://localhost:3000;
        worker-src ''self'' blob: http://localhost:3000'
      Content-Type:
      - application/json; charset=utf-8
      ETag:
      - W/"a527f07100953388c1e5a0153ea5210c"
      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:
      - 7d0e2e9f-f42a-4973-8352-5293c5b68212
      X-Runtime:
      - '0.013032'
      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":"BCzv2IBoCn5an4RTxaTcxEUb14hWbXsS6yVkraxqbFAOwD_nR0l5I4fS7kFzJYmNnYij873sO8zDjJ_m6OAFqEo="}'
    headers:
      Cache-Control:
      - no-store
      Content-Security-Policy:
      - 'base-uri ''none''; default-src ''none''; frame-ancestors ''none''; font-src
        ''self'' http://localhost:3000; img-src ''self'' https: data: blob: http://localhost:3000;
        style-src ''self'' http://localhost:3000 ''nonce-wXTj1AE6x8fXR+bNf6iExA=='';
        media-src ''self'' https: data: http://localhost:3000; frame-src ''self''
        https:; manifest-src ''self'' http://localhost:3000; connect-src ''self''
        data: blob: http://localhost:3000 http://localhost:3000 ws://localhost:4000
        ws://localhost:3035 http://localhost:3035; script-src ''self'' ''unsafe-inline''
        ''unsafe-eval'' http://localhost:3000; child-src ''self'' blob: http://localhost:3000;
        worker-src ''self'' blob: http://localhost:3000'
      Content-Type:
      - application/json; charset=utf-8
      ETag:
      - W/"a527f07100953388c1e5a0153ea5210c"
      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:
      - 01124467-0b62-4f04-a469-fd9c181420e5
      X-Runtime:
      - '0.008655'
      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":"BCzv2IBoCn5an4RTxaTcxEUb14hWbXsS6yVkraxqbFAOwD_nR0l5I4fS7kFzJYmNnYij873sO8zDjJ_m6OAFqEo="}'
    headers:
      Cache-Control:
      - no-store
      Content-Security-Policy:
      - 'base-uri ''none''; default-src ''none''; frame-ancestors ''none''; font-src
        ''self'' http://localhost:3000; img-src ''self'' https: data: blob: http://localhost:3000;
        style-src ''self'' http://localhost:3000 ''nonce-yIP8TqlfHO22EnXg51nTKA=='';
        media-src ''self'' https: data: http://localhost:3000; frame-src ''self''
        https:; manifest-src ''self'' http://localhost:3000; connect-src ''self''
        data: blob: http://localhost:3000 http://localhost:3000 ws://localhost:4000
        ws://localhost:3035 http://localhost:3035; script-src ''self'' ''unsafe-inline''
        ''unsafe-eval'' http://localhost:3000; child-src ''self'' blob: http://localhost:3000;
        worker-src ''self'' blob: http://localhost:3000'
      Content-Type:
      - application/json; charset=utf-8
      ETag:
      - W/"a527f07100953388c1e5a0153ea5210c"
      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:
      - fad6c298-c172-4361-bc12-bc566dcc157e
      X-Runtime:
      - '0.006980'
      X-XSS-Protection:
      - 1; mode=block
    status:
      code: 200
      message: OK
version: 1
