Skip to content

Commit

Permalink
Merge "tests: Switch get_v4_amz_date_header to take timedeltas"
Browse files Browse the repository at this point in the history
  • Loading branch information
Zuul authored and openstack-gerrit committed Jan 12, 2024
2 parents 03b66c9 + bf7f3ff commit 2331c9a
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 9 deletions.
7 changes: 4 additions & 3 deletions test/unit/common/middleware/s3api/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -199,9 +199,10 @@ def get_date_header(self, skew=0):
# email.utils.formatdate returns utc timestamp in default
return email.utils.formatdate(time.time() + skew)

def get_v4_amz_date_header(self, when=None):
if when is None:
when = datetime.utcnow()
def get_v4_amz_date_header(self, offset=None):
when = datetime.utcnow()
if offset is not None:
when += offset
return when.strftime('%Y%m%dT%H%M%SZ')

def call_app(self, req, app=None, expect_exception=False):
Expand Down
12 changes: 6 additions & 6 deletions test/unit/common/middleware/s3api/test_s3request.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.

from datetime import datetime, timedelta
from datetime import timedelta
import hashlib
from mock import patch, MagicMock
import unittest
Expand Down Expand Up @@ -470,32 +470,32 @@ def test_request_timestamp_sigv4(self):

# near-past X-Amz-Date headers
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)

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, \
patch.object(self.s3api.conf, 'allowable_clock_skew', 300):
self._test_request_timestamp_sigv4(date_header)

# near-future X-Amz-Date headers
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)

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, \
patch.object(self.s3api.conf, 'allowable_clock_skew', 300):
self._test_request_timestamp_sigv4(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:
self._test_request_timestamp_sigv4(date_header)
Expand Down

0 comments on commit 2331c9a

Please sign in to comment.