Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix references to no longer existing private props in access (post pydantic refactor related) (resubmit) #358

Merged
merged 2 commits into from
Jun 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions python/lib/access/dmod/access/redis_session_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -227,13 +227,13 @@ def refresh_session(self, session: Session) -> bool:
if looked_up is None or looked_up.is_expired() or looked_up.session_secret != session.session_secret:
return False
new_last_accessed = datetime.datetime.now()
looked_up._last_accessed = new_last_accessed
looked_up.last_accessed = new_last_accessed
# TODO(later): consider adding a maximum session time to cap refreshes
attr_write_set = {self._session_redis_hash_subkey_last_accessed}
pipeline = self.redis.pipeline()
try:
self._write_session_via_pipeline(session=looked_up, pipeline=pipeline, write_attr_subkeys=attr_write_set)
session._last_accessed = new_last_accessed
session.last_accessed = new_last_accessed
return True
finally:
pipeline.reset()
Expand Down
22 changes: 11 additions & 11 deletions python/lib/access/dmod/test/it_redis_session_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -384,10 +384,10 @@ def test__write_session_via_pipeline_3_a(self):
attr_modified = set()

attr_modified.add(self._session_manager._session_redis_hash_subkey_last_accessed)
original_last_accessed = created_session._last_accessed
original_last_accessed = created_session.last_accessed
time.sleep(5)
updated_last_accessed = datetime.datetime.now()
created_session._last_accessed = updated_last_accessed
created_session.last_accessed = updated_last_accessed

self._session_manager._write_session_via_pipeline(session=created_session, write_attr_subkeys=attr_modified)

Expand All @@ -410,15 +410,15 @@ def test__write_session_via_pipeline_3_b(self):
attr_modified = set()

attr_modified.add(self._session_manager._session_redis_hash_subkey_last_accessed)
original_last_accessed = created_session._last_accessed
original_last_accessed = created_session.last_accessed
time.sleep(5)
updated_last_accessed = datetime.datetime.now()
created_session._last_accessed = updated_last_accessed
created_session.last_accessed = updated_last_accessed

attr_modified.add(self._session_manager._session_redis_hash_subkey_ip_address)
original_ip_address = ip_addr
updated_ip_address = self._session_ip_2
created_session._ip_address = updated_ip_address
created_session.ip_address = updated_ip_address

self._session_manager._write_session_via_pipeline(session=created_session, write_attr_subkeys=attr_modified)

Expand Down Expand Up @@ -539,7 +539,7 @@ def test_create_session_4_a(self):
created_session_1 = self._manual_init_session(user=user_1, ip_addr=ip_addr_1, created=created_1,
last_access_delta=last_access_delta_1)
initial_sid_in_sequence = created_session_1.session_id
created_session_1._session_id = initial_sid_in_sequence + 1
created_session_1.session_id = initial_sid_in_sequence + 1

if created_session_1.is_expired():
raise RuntimeError("Manually created session for writing test should not already be expired")
Expand Down Expand Up @@ -639,7 +639,7 @@ def test_refresh_session_2_b(self):
last_access_delta=last_access_delta)

self._session_manager._write_session_via_pipeline(session=created_session)
created_session._last_accessed = datetime.datetime.now()
created_session.last_accessed = datetime.datetime.now()
if created_session.is_expired():
raise RuntimeError("Expecting test to have non-expired local session object, but was expired")

Expand All @@ -654,7 +654,7 @@ def test_refresh_session_2_c(self):
ip_addr = self._session_ip_1

created_session = self._session_manager.create_session(ip_address=ip_addr, username=user)
created_session._session_secret = created_session.session_secret + "a"
created_session.session_secret = created_session.session_secret + "a"
self.assertFalse(self._session_manager.refresh_session(created_session))

def test_refresh_session_3_a(self):
Expand All @@ -677,11 +677,11 @@ def test_refresh_session_3_b(self):
ip_addr = self._session_ip_1

created_session = self._session_manager.create_session(ip_address=ip_addr, username=user)
initial_last_accessed = created_session._last_accessed
initial_last_accessed = created_session.last_accessed
time.sleep(1)
self._session_manager.refresh_session(created_session)

self.assertTrue(initial_last_accessed < created_session._last_accessed)
self.assertTrue(initial_last_accessed < created_session.last_accessed)

def test_refresh_session_3_c(self):
"""
Expand All @@ -695,7 +695,7 @@ def test_refresh_session_3_c(self):
time.sleep(1)
approx_now = datetime.datetime.now()
self._session_manager.refresh_session(created_session)
rough_diff = created_session._last_accessed - approx_now
rough_diff = created_session.last_accessed - approx_now
self.assertTrue(rough_diff < datetime.timedelta(seconds=0.3))

def test_refresh_session_3_d(self):
Expand Down