Add the content_length field to the Document base class

This commit is contained in:
Gergely Polonkai 2022-05-06 17:21:39 +02:00
parent b9d0221e95
commit e8bc0cfd38
No known key found for this signature in database
GPG Key ID: 2D2885533B869ED4
3 changed files with 17 additions and 0 deletions

View File

@ -19,6 +19,11 @@ class Document(ABC): # pragma: no cover pylint: disable=too-few-public-methods
signature: Optional[str]
@property
@abstractmethod
def content_length(self) -> int:
"""The length of the document"""
@abstractmethod
def sign(self, identity: Optional[Identity] = None) -> None:
"""Sign the document as identity

View File

@ -221,6 +221,10 @@ class Es4Document(Document): # pylint: disable=too-many-instance-attributes
self._content = value
self._content_hash = self.hash_value(value)
@property
def content_length(self) -> int:
return len(self._content)
def generate_hash(self) -> str:
"""Calculate the hash of the document

View File

@ -272,3 +272,11 @@ def test_validate_unsigned_document(identity: Identity) -> None:
document.validate_signature()
assert str(ctx.value) == 'document has no signature assigned'
def test_content_length() -> None:
"""Test the content_length property"""
document = Es4Document.from_json(VALID_DOCUMENT)
assert document.content_length == 4