@ -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"""
def sign(self, identity: Optional[Identity] = None) -> None:
"""Sign the document as identity
@ -221,6 +221,10 @@ class Es4Document(Document): # pylint: disable=too-many-instance-attributes
self._content = value
self._content_hash = self.hash_value(value)
return len(self._content)
def generate_hash(self) -> str:
"""Calculate the hash of the document
@ -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