interactions:
- request:
    body: subscription%5Bendpoint%5D=https%3A%2F%2Fexample.com&subscription%5Bkeys%5D%5Bp256dh%5D=BNkc%2BSVfOgfOs8I1WS%2F0KxhbMkLhhLyJR2xrOiyv6JAkHH37dkPfI6Y%2BfyH8NAm4SpSEV3GXVg906gG1eZD%2FlBg%3D&subscription%5Bkeys%5D%5Bauth%5D=sZSxs7Q%2B6ogLvT4lLNr87Q%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:
      - '389'
      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":"BHbaZoDpTM1DFjAELelcIqWMMCXLKayvxGl7bPWlqmggF2tb8t6kiEj8qKrZE1PfF4RxaT46AilrYUDIWgMFmz0="}'
    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-wOlLklZqBIjLBjZCbSBZ8w=='';
        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/"79c9a440144b6e85055cc055ba6dae34"
      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:
      - 90ac8774-a52b-4a8a-b535-28937ecaf497
      X-Runtime:
      - '0.015794'
      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":"BHbaZoDpTM1DFjAELelcIqWMMCXLKayvxGl7bPWlqmggF2tb8t6kiEj8qKrZE1PfF4RxaT46AilrYUDIWgMFmz0="}'
    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-yrFhSBuc+73SMGxJnt932w=='';
        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/"bb4e306d8bc368dd14dc9df1e763ec87"
      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:
      - 556b394a-d02f-4ce7-86ce-cd328207ce5f
      X-Runtime:
      - '0.012790'
      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":"BHbaZoDpTM1DFjAELelcIqWMMCXLKayvxGl7bPWlqmggF2tb8t6kiEj8qKrZE1PfF4RxaT46AilrYUDIWgMFmz0="}'
    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-ajlVQlv+qj1+RQLpqux33Q=='';
        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/"bb4e306d8bc368dd14dc9df1e763ec87"
      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:
      - 6b9bc171-1fb1-4363-972a-d8204446a1f9
      X-Runtime:
      - '0.009346'
      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":"BHbaZoDpTM1DFjAELelcIqWMMCXLKayvxGl7bPWlqmggF2tb8t6kiEj8qKrZE1PfF4RxaT46AilrYUDIWgMFmz0="}'
    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-6LSHzNa03WiEDcyWWrRkRA=='';
        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/"79c9a440144b6e85055cc055ba6dae34"
      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:
      - 22c62ea3-cd1e-4793-9653-8ccd6fdd6263
      X-Runtime:
      - '0.021961'
      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":"BHbaZoDpTM1DFjAELelcIqWMMCXLKayvxGl7bPWlqmggF2tb8t6kiEj8qKrZE1PfF4RxaT46AilrYUDIWgMFmz0="}'
    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-IQL1mBlIcOHnm1lXOHTJkA=='';
        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/"79c9a440144b6e85055cc055ba6dae34"
      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:
      - e478fbb2-b9a6-4fd0-af7b-ae394fd5b357
      X-Runtime:
      - '0.008695'
      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":"BHbaZoDpTM1DFjAELelcIqWMMCXLKayvxGl7bPWlqmggF2tb8t6kiEj8qKrZE1PfF4RxaT46AilrYUDIWgMFmz0="}'
    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-4emYSpsbmxw776ggfGT57w=='';
        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/"79c9a440144b6e85055cc055ba6dae34"
      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:
      - d4e34dc4-3c6a-4a11-adb1-a8eec0242cd2
      X-Runtime:
      - '0.007976'
      X-XSS-Protection:
      - 1; mode=block
    status:
      code: 200
      message: OK
version: 1
