Skip to content

Commit 996d7db

Browse files
test: explicitly set session cookie expiry
1 parent c330b7a commit 996d7db

1 file changed

Lines changed: 20 additions & 1 deletion

File tree

‎test/unit/test_couchdb_session_auth.py‎

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
from ibmcloudant import CouchDbSessionAuthenticator
2727
from ibmcloudant.cloudant_v1 import CloudantV1
28+
from ibmcloudant.couchdb_session_token_manager import CouchDbSessionTokenManager
2829

2930
request = requests.request
3031
request_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

Comments
 (0)