tests: Switch get_v4_amz_date_header to take timedeltas

Change-Id: Ic89141c0dce619390c2be8a01d231f9ff8e2056c
This commit is contained in:
Tim Burke 2024-01-03 17:43:54 +00:00
parent 8bdd8f206a
commit bf7f3ff2f9
2 changed files with 10 additions and 9 deletions

View File

@ -199,9 +199,10 @@ class S3ApiTestCase(unittest.TestCase):
# email.utils.formatdate returns utc timestamp in default # email.utils.formatdate returns utc timestamp in default
return email.utils.formatdate(time.time() + skew) return email.utils.formatdate(time.time() + skew)
def get_v4_amz_date_header(self, when=None): def get_v4_amz_date_header(self, offset=None):
if when is None: when = datetime.utcnow()
when = datetime.utcnow() if offset is not None:
when += offset
return when.strftime('%Y%m%dT%H%M%SZ') return when.strftime('%Y%m%dT%H%M%SZ')
def call_app(self, req, app=None, expect_exception=False): def call_app(self, req, app=None, expect_exception=False):

View File

@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from datetime import datetime, timedelta from datetime import timedelta
import hashlib import hashlib
from mock import patch, MagicMock from mock import patch, MagicMock
import unittest import unittest
@ -470,12 +470,12 @@ class TestRequest(S3ApiTestCase):
# near-past X-Amz-Date headers # near-past X-Amz-Date headers
date_header = {'X-Amz-Date': self.get_v4_amz_date_header( date_header = {'X-Amz-Date': self.get_v4_amz_date_header(
datetime.utcnow() - timedelta(minutes=10) timedelta(minutes=-10)
)} )}
self._test_request_timestamp_sigv4(date_header) self._test_request_timestamp_sigv4(date_header)
date_header = {'X-Amz-Date': self.get_v4_amz_date_header( date_header = {'X-Amz-Date': self.get_v4_amz_date_header(
datetime.utcnow() - timedelta(minutes=10) timedelta(minutes=-10)
)} )}
with self.assertRaises(RequestTimeTooSkewed) as cm, \ with self.assertRaises(RequestTimeTooSkewed) as cm, \
patch.object(self.s3api.conf, 'allowable_clock_skew', 300): patch.object(self.s3api.conf, 'allowable_clock_skew', 300):
@ -483,19 +483,19 @@ class TestRequest(S3ApiTestCase):
# near-future X-Amz-Date headers # near-future X-Amz-Date headers
date_header = {'X-Amz-Date': self.get_v4_amz_date_header( date_header = {'X-Amz-Date': self.get_v4_amz_date_header(
datetime.utcnow() + timedelta(minutes=10) timedelta(minutes=10)
)} )}
self._test_request_timestamp_sigv4(date_header) self._test_request_timestamp_sigv4(date_header)
date_header = {'X-Amz-Date': self.get_v4_amz_date_header( date_header = {'X-Amz-Date': self.get_v4_amz_date_header(
datetime.utcnow() + timedelta(minutes=10) timedelta(minutes=10)
)} )}
with self.assertRaises(RequestTimeTooSkewed) as cm, \ with self.assertRaises(RequestTimeTooSkewed) as cm, \
patch.object(self.s3api.conf, 'allowable_clock_skew', 300): patch.object(self.s3api.conf, 'allowable_clock_skew', 300):
self._test_request_timestamp_sigv4(date_header) self._test_request_timestamp_sigv4(date_header)
date_header = {'X-Amz-Date': self.get_v4_amz_date_header( date_header = {'X-Amz-Date': self.get_v4_amz_date_header(
datetime.utcnow() + timedelta(days=1) timedelta(days=1)
)} )}
with self.assertRaises(RequestTimeTooSkewed) as cm: with self.assertRaises(RequestTimeTooSkewed) as cm:
self._test_request_timestamp_sigv4(date_header) self._test_request_timestamp_sigv4(date_header)