]> git.ipfire.org Git - thirdparty/python-fints.git/commitdiff
Make SegmentHeader output shorter
authorHenryk Plötz <henryk@ploetzli.ch>
Tue, 7 Aug 2018 14:45:56 +0000 (16:45 +0200)
committerRaphael Michel <mail@raphaelmichel.de>
Mon, 3 Dec 2018 18:34:17 +0000 (19:34 +0100)
fints/formals.py
tests/test_formals.py

index 7bb7cd75c7613b57b0f200214125e82e88f8145e..6ad2023835f8626f18714836b692c42f2c78f375 100644 (file)
@@ -338,11 +338,28 @@ class Container(metaclass=ContainerMeta):
             )
         stream.write( (prefix + level*indent) + "){}\n".format(trailer) )
 
+class ShortReprMixin:
+    def __repr__(self):
+        return "{}{}({})".format(
+            "{}.".format(self.__class__.__module__),
+            self.__class__.__name__,
+            ", ".join(
+                [ "{!r}".format(getattr(self, name))
+                    for name in list(self._fields.keys())] +
+                ( ['_additional_data={!r}'.format(self._additional_data)] if self._additional_data else [] )
+            )
+        )
+
+    def print_nested(self, stream=None, level=0, indent="    ", prefix="", first_level_indent=True, trailer=""):
+        stream.write(
+            ( (prefix + level*indent) if first_level_indent else "")
+            + "{!r}{}\n".format(self, trailer)
+        )
 
 class DataElementGroup(Container):
     pass
 
-class SegmentHeader(DataElementGroup):
+class SegmentHeader(ShortReprMixin, DataElementGroup):
     type = AlphanumericField(max_length=6)
     number = NumericField(max_length=3)
     version = NumericField(max_length=3)
index 19fa5e922f406f2fd1dfa3acf9e800d12b8c1295..556f9e4793dd664ff68ce8a40c391afcc2b9445f 100644 (file)
@@ -1,5 +1,5 @@
 import pytest
-from fints.formals import Container, ContainerField, DataElementField, DataElementGroupField, DigitsField, NumericField, Field, SegmentSequence
+from fints.formals import Container, ContainerField, DataElementField, DataElementGroupField, DigitsField, NumericField, Field, SegmentSequence, SegmentHeader
 
 def test_container_simple():
     class A(Container):
@@ -262,3 +262,8 @@ def test_sequence_repr():
     s = SegmentSequence()
 
     assert repr(s) == 'SegmentSequence([])'
+
+def test_segmentheader_short():
+    h = SegmentHeader('HNHBS', 5, 1)
+
+    assert repr(h) == "fints.formals.SegmentHeader('HNHBS', 5, 1, None)"