Skip to content
Open
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
15 changes: 15 additions & 0 deletions tests/test_timestamp.py
Original file line number Diff line number Diff line change
Expand Up @@ -646,3 +646,18 @@ def test_ready_raise_attribute_error(self, mock_ready, mock_logger):
nt.assert_true(task.ready())
mock_logger.error.assert_any_call('Failed to get task status! Exception message:')
mock_logger.error.assert_any_call(msg)


class TestEnableTimestampGuard(OsfTestCase):
"""When ENABLE_TIMESTAMP is False, add_token and check_file_timestamp must
return immediately, so that no request is sent to the timestamp authority.
"""

@mock.patch('website.util.timestamp.settings.ENABLE_TIMESTAMP', False)
def test_add_token_disabled(self):
# Args are never touched when the guard is effective.
nt.assert_is_none(timestamp.add_token(None, None, None))

@mock.patch('website.util.timestamp.settings.ENABLE_TIMESTAMP', False)
def test_check_file_timestamp_disabled(self):
nt.assert_is_none(timestamp.check_file_timestamp(None, None, None))
4 changes: 4 additions & 0 deletions website/util/timestamp.py
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,8 @@ def get_full_list(uid, pid, node):
return provider_list

def check_file_timestamp(uid, node, data, verify_external_only=False):
if not settings.ENABLE_TIMESTAMP:
return None
user = OSFUser.objects.get(id=uid)
file_node = BaseFileNode.objects.get(_id=data['file_id'])
if not userkey_generation_check(user._id):
Expand Down Expand Up @@ -525,6 +527,8 @@ def cancel_celery_task(node):
return result

def add_token(uid, node, data):
if not settings.ENABLE_TIMESTAMP:
return None
try:
user = OSFUser.objects.get(id=uid)
file_node = BaseFileNode.objects.get(_id=data['file_id'])
Expand Down
Loading