Add the content_length field to the Document base class
This commit is contained in:
parent
b9d0221e95
commit
e8bc0cfd38
@ -19,6 +19,11 @@ class Document(ABC): # pragma: no cover pylint: disable=too-few-public-methods
|
|||||||
|
|
||||||
signature: Optional[str]
|
signature: Optional[str]
|
||||||
|
|
||||||
|
@property
|
||||||
|
@abstractmethod
|
||||||
|
def content_length(self) -> int:
|
||||||
|
"""The length of the document"""
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def sign(self, identity: Optional[Identity] = None) -> None:
|
def sign(self, identity: Optional[Identity] = None) -> None:
|
||||||
"""Sign the document as identity
|
"""Sign the document as identity
|
||||||
|
@ -221,6 +221,10 @@ class Es4Document(Document): # pylint: disable=too-many-instance-attributes
|
|||||||
self._content = value
|
self._content = value
|
||||||
self._content_hash = self.hash_value(value)
|
self._content_hash = self.hash_value(value)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def content_length(self) -> int:
|
||||||
|
return len(self._content)
|
||||||
|
|
||||||
def generate_hash(self) -> str:
|
def generate_hash(self) -> str:
|
||||||
"""Calculate the hash of the document
|
"""Calculate the hash of the document
|
||||||
|
|
||||||
|
@ -272,3 +272,11 @@ def test_validate_unsigned_document(identity: Identity) -> None:
|
|||||||
document.validate_signature()
|
document.validate_signature()
|
||||||
|
|
||||||
assert str(ctx.value) == 'document has no signature assigned'
|
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
|
||||||
|
Loading…
Reference in New Issue
Block a user