From 181b1a7e6da4105bd46696d164d75f9f887080f7 Mon Sep 17 00:00:00 2001 From: Martin Vrachev Date: Tue, 14 Dec 2021 11:16:05 +0200 Subject: [PATCH] Metadata API: remove dateutil requirement I added "dateutil" as a possible argument type for `Metadata.bump_expiration()` as we are already testing for this and implying it should be supported. The problem is that "dateutil" is not added as a nontest requirement and after a discussion, we decided we don't want to add it as well. That's why we decided to remove "dateutil" mentions from the code and not confuse our users we support it. We will create a separate issue discussing the validity of `Metadata.bump_expiration()`. Signed-off-by: Martin Vrachev --- requirements-test.txt | 4 ---- tests/test_api.py | 10 ---------- tuf/api/metadata.py | 5 +---- 3 files changed, 1 insertion(+), 18 deletions(-) diff --git a/requirements-test.txt b/requirements-test.txt index 10675fd8fe..2e7d6145c2 100644 --- a/requirements-test.txt +++ b/requirements-test.txt @@ -3,9 +3,6 @@ # pinned tuf runtime dependencies (should auto-update and -trigger ci/cd) -r requirements-pinned.txt -# tuf.api tests use python-dateutil -python-dateutil - # additional test tools for linting and coverage measurement coverage black @@ -14,4 +11,3 @@ pylint mypy bandit types-requests -types-python-dateutil diff --git a/tests/test_api.py b/tests/test_api.py index 01b9d6526b..2ef44ed76f 100755 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -16,7 +16,6 @@ from datetime import datetime, timedelta from typing import ClassVar, Dict -from dateutil.relativedelta import relativedelta from securesystemslib import hash as sslib_hash from securesystemslib.interface import ( import_ed25519_privatekey_from_file, @@ -333,15 +332,6 @@ def test_metadata_timestamp(self) -> None: timestamp.signed.bump_expiration(timedelta(days=365)) self.assertEqual(timestamp.signed.expires, datetime(2031, 1, 2, 0, 0)) - # Test whether dateutil.relativedelta works, this provides a much - # easier to use interface for callers - delta = relativedelta(days=1) - timestamp.signed.bump_expiration(delta) - self.assertEqual(timestamp.signed.expires, datetime(2031, 1, 3, 0, 0)) - delta = relativedelta(years=5) - timestamp.signed.bump_expiration(delta) - self.assertEqual(timestamp.signed.expires, datetime(2036, 1, 3, 0, 0)) - # Create a MetaFile instance representing what we expect # the updated data to be. hashes = { diff --git a/tuf/api/metadata.py b/tuf/api/metadata.py index 1717682665..6adcf412da 100644 --- a/tuf/api/metadata.py +++ b/tuf/api/metadata.py @@ -47,7 +47,6 @@ cast, ) -from dateutil.relativedelta import relativedelta from securesystemslib import exceptions as sslib_exceptions from securesystemslib import hash as sslib_hash from securesystemslib import keys as sslib_keys @@ -501,9 +500,7 @@ def is_expired(self, reference_time: Optional[datetime] = None) -> bool: return reference_time >= self.expires # Modification. - def bump_expiration( - self, delta: Union[timedelta, relativedelta] = timedelta(days=1) - ) -> None: + def bump_expiration(self, delta: timedelta = timedelta(days=1)) -> None: """Increments the expires attribute by the passed timedelta.""" self.expires += delta