File tree Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Original file line number Diff line number Diff line change
1
+ import pytest
2
+ from httpx import Response
3
+ from respx import MockRouter
4
+
5
+
6
+ @pytest .mark .asyncio
7
+ async def test_event_based_credential_leak (respx_mock : MockRouter ):
8
+ from spylib .admin_api import OfflineTokenABC
9
+ from spylib .utils .rest import GET
10
+
11
+ class OfflineToken (OfflineTokenABC ):
12
+ async def save (self ):
13
+ raise NotImplementedError ()
14
+
15
+ @classmethod
16
+ async def load (cls , store_name : str ):
17
+ raise NotImplementedError ()
18
+
19
+ store_one = 'store_one'
20
+ store_two = 'store_two'
21
+
22
+ token_one = OfflineToken (
23
+ store_name = store_one , access_token = f'secret_token_for_{ store_one } ' , scope = []
24
+ )
25
+ token_two = OfflineToken (
26
+ store_name = store_two , access_token = f'secret_token_for_{ store_two } ' , scope = []
27
+ )
28
+
29
+ token_one_headers = []
30
+
31
+ async def capture_request (request ):
32
+ token_one_headers .append (request .headers ['X-Shopify-Access-Token' ])
33
+
34
+ token_one .client .event_hooks ['request' ] = [capture_request ]
35
+
36
+ respx_mock .get ().mock (
37
+ return_value = Response (200 , json = {}, headers = {'X-Shopify-Shop-Api-Call-Limit' : '10/20' })
38
+ )
39
+
40
+ await token_two .execute_rest (
41
+ request = GET ,
42
+ endpoint = '/test' ,
43
+ )
44
+
45
+ assert token_one_headers == []
You can’t perform that action at this time.
0 commit comments