1+ import json
12import os
23
34from bunq .sdk .context import ApiContext
5+ from bunq .sdk .context import BunqContext
46from bunq .sdk .json import converter
57from tests .bunq_test import BunqSdkTestCase
68
@@ -13,6 +15,10 @@ class TestApiContext(BunqSdkTestCase):
1315
1416 _TMP_FILE_PATH = '/context-save-test.conf'
1517
18+ __FIELD_SESSION_CONTEXT = 'session_context'
19+ __FIELD_EXPIRE_TIME = 'expiry_time'
20+ __TIME_STAMP_IN_PAST = '2000-04-07 19:50:43.839717'
21+
1622 @classmethod
1723 def setUpClass (cls ):
1824 super ().setUpClass ()
@@ -84,3 +90,30 @@ def test_api_context_restore_json(self):
8490 api_context_restored = self ._API_CONTEXT .from_json (context_json )
8591
8692 self .assertEqual (api_context_restored , self ._API_CONTEXT )
93+
94+ def test_auto_bunq_context_update (self ):
95+ """
96+ Tests the auto update of BunqContext.
97+ """
98+
99+ api_context : ApiContext = BunqContext .api_context ()
100+ api_context_json : object = json .loads (api_context .to_json ())
101+
102+ api_context_json [self .__FIELD_SESSION_CONTEXT ][
103+ self .__FIELD_EXPIRE_TIME ] = self .__TIME_STAMP_IN_PAST
104+
105+ expired_api_context = ApiContext .from_json (json .dumps (api_context_json ))
106+
107+ self .assertNotEqual (api_context .session_context .expiry_time ,
108+ expired_api_context .session_context .expiry_time )
109+ self .assertEqual (BunqContext .api_context ().session_context .expiry_time ,
110+ api_context .session_context .expiry_time )
111+
112+ BunqContext .update_api_context (expired_api_context )
113+ BunqContext .user_context ().refresh_user_context ()
114+
115+ self .assertNotEqual (
116+ BunqContext .api_context ().session_context .expiry_time ,
117+ api_context .session_context .expiry_time
118+ )
119+ self .assertFalse (BunqContext .api_context ().ensure_session_active ())
0 commit comments