2525
2626from ibmcloudant import CouchDbSessionAuthenticator
2727from ibmcloudant .cloudant_v1 import CloudantV1
28+ from ibmcloudant .couchdb_session_token_manager import CouchDbSessionTokenManager
2829
2930request = requests .request
3031request_args = None
@@ -73,6 +74,7 @@ def post_session(request):
7374
7475 @responses .activate
7576 def test_header_passing (self ):
77+ self .cookie_expire_time = None
7678 self .client .set_default_headers ({"yes" : "works" })
7779 response = self .client .get_session_information (headers = {"foo" : "bar" })
7880 self .assertIsNotNone (response )
@@ -89,6 +91,7 @@ def test_header_passing(self):
8991
9092 @responses .activate
9193 def test_disable_ssl_verification_on (self ):
94+ self .cookie_expire_time = None
9295 original_http_client = self .client .get_http_client ()
9396 mock_session = MockSession ()
9497 try :
@@ -101,6 +104,7 @@ def test_disable_ssl_verification_on(self):
101104
102105 @responses .activate
103106 def test_disable_ssl_verification_off (self ):
107+ self .cookie_expire_time = None
104108 original_http_client = self .client .get_http_client ()
105109 mock_session = MockSession ()
106110 try :
@@ -139,6 +143,7 @@ def test_invalid_disable_ssl_verification_type(self):
139143
140144 @responses .activate
141145 def test_cookie_refresh (self ):
146+ self .cookie_expire_time = None
142147 self .client .get_session_information ()
143148 self .assertEqual (responses .calls [- 1 ].request .headers ["Cookie" ], "AuthSession=foobar" )
144149 self .cookie_value = "bar"
@@ -154,6 +159,7 @@ def test_cookie_refresh(self):
154159
155160 @responses .activate
156161 def test_cookie_expired (self ):
162+ self .cookie_expire_time = None
157163 self .client .get_session_information ()
158164 self .assertEqual (responses .calls [- 1 ].request .headers ["Cookie" ], "AuthSession=foobar" )
159165 self .cookie_value = "bar"
@@ -164,6 +170,7 @@ def test_cookie_expired(self):
164170
165171 @responses .activate
166172 def test_cookie_not_yet_expired (self ):
173+ self .cookie_expire_time = None
167174 self .client .get_session_information ()
168175 self .assertEqual (responses .calls [- 1 ].request .headers ["Cookie" ], "AuthSession=foobar" )
169176 self .cookie_value = "bar"
@@ -180,12 +187,23 @@ def test_refresh_time_calculation(self):
180187 self .assertAlmostEqual (self .authenticator .token_manager .refresh_time ,
181188 self .authenticator .token_manager ._get_current_time () + 8 * 60 , delta = 3 )
182189
190+ @responses .activate
191+ def test_refresh_time_calculation_no_expiry (self ):
192+ self .cookie_expire_time = None
193+ self .client .get_session_information ()
194+ token_manager = self .authenticator .token_manager
195+ default_ttl = CouchDbSessionTokenManager ._DEFAULT_SESSION_COOKIE_TTL_SECONDS
196+ self .assertAlmostEqual (token_manager .expire_time ,
197+ token_manager ._get_current_time () + default_ttl , delta = 3 )
198+ self .assertAlmostEqual (token_manager .refresh_time ,
199+ token_manager ._get_current_time () + default_ttl * 0.8 , delta = 3 )
200+
183201 @responses .activate
184202 def test_cookie_without_expiry (self ):
203+ self .cookie_expire_time = None
185204 self .client .get_session_information ()
186205 self .assertEqual (responses .calls [- 1 ].request .headers ["Cookie" ], "AuthSession=foobar" )
187206 self .cookie_value = "bar"
188- self .cookie_expire_time = None
189207 self .authenticator .token_manager .refresh_time = 0
190208 self .client .get_session_information ()
191209 self .assertEqual (responses .calls [- 1 ].request .headers ["Cookie" ], "AuthSession=bar" )
@@ -197,6 +215,7 @@ def test_cookie_without_expiry(self):
197215
198216 @responses .activate
199217 def test_set_service_url (self ):
218+ self .cookie_expire_time = None
200219 self .client .get_session_information ()
201220 self .assertEqual (responses .calls [- 2 ].request .url , "http://cloudant.example/_session" )
202221 self .assertEqual (responses .calls [- 2 ].request .method , "POST" )
0 commit comments