diff --git a/docs/api/tuf.api.rst b/docs/api/tuf.api.rst index d4309b843e..7d3126d23d 100644 --- a/docs/api/tuf.api.rst +++ b/docs/api/tuf.api.rst @@ -16,4 +16,5 @@ Metadata API tuf.api.serialization .. automodule:: tuf.api.metadata - :no-members: \ No newline at end of file + :no-members: + :no-inherited-members: diff --git a/docs/conf.py b/docs/conf.py index cb146ed917..a5314127e8 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -66,5 +66,6 @@ autodoc_default_options = { 'members': True, + 'inherited-members': 'Exception', # excl. members inherited from 'Exception' 'exclude-members': 'to_dict, from_dict' -} \ No newline at end of file +} diff --git a/tests/test_api.py b/tests/test_api.py index 6accd680bd..531d8f868c 100755 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -264,10 +264,6 @@ def test_metadata_base(self) -> None: md.signed.bump_version() self.assertEqual(md.signed.version, 2) self.assertEqual(md.signed.expires, datetime(2030, 1, 1, 0, 0)) - md.signed.bump_expiration() - self.assertEqual(md.signed.expires, datetime(2030, 1, 2, 0, 0)) - md.signed.bump_expiration(timedelta(days=365)) - self.assertEqual(md.signed.expires, datetime(2031, 1, 2, 0, 0)) # Test is_expired with reference_time provided is_expired = md.signed.is_expired(md.signed.expires) @@ -329,7 +325,7 @@ def test_metadata_verify_delegate(self) -> None: # verify fails when delegate content is modified expires = snapshot.signed.expires - snapshot.signed.bump_expiration() + snapshot.signed.expires = expires + timedelta(days=1) with self.assertRaises(exceptions.UnsignedMetadataError): root.verify_delegate(Snapshot.type, snapshot) snapshot.signed.expires = expires diff --git a/tuf/api/metadata.py b/tuf/api/metadata.py index f4bff9537b..68b6d4bebf 100644 --- a/tuf/api/metadata.py +++ b/tuf/api/metadata.py @@ -30,7 +30,7 @@ import logging import tempfile from collections import OrderedDict -from datetime import datetime, timedelta +from datetime import datetime from typing import ( IO, Any, @@ -409,6 +409,11 @@ def _type(self) -> str: @property def expires(self) -> datetime: + """The metadata expiry date:: + + # Use 'datetime' module to e.g. expire in seven days from now + obj.expires = utcnow() + timedelta(days=7) + """ return self._expires @expires.setter @@ -508,11 +513,6 @@ def is_expired(self, reference_time: Optional[datetime] = None) -> bool: return reference_time >= self.expires - # Modification. - def bump_expiration(self, delta: timedelta = timedelta(days=1)) -> None: - """Increments the expires attribute by the passed timedelta.""" - self.expires += delta - def bump_version(self) -> None: """Increments the metadata version number by 1.""" self.version += 1