Merge "tests: Switch get_v4_amz_date_header to take timedeltas"

This commit is contained in:
Zuul
2024-01-12 18:49:47 +00:00
committed by Gerrit Code Review
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)