From 4bc6d0d8cbfe475c2cc24f1db339f33aa900b03a Mon Sep 17 00:00:00 2001
From: Tamas Gal <tgal@km3net.de>
Date: Tue, 2 Feb 2021 18:34:17 +0100
Subject: [PATCH] Add keys, items and values to Header

---
 km3io/offline.py      |  9 +++++++++
 tests/test_offline.py | 14 ++++++++++++++
 2 files changed, 23 insertions(+)

diff --git a/km3io/offline.py b/km3io/offline.py
index 6fd13b2..25d7f18 100644
--- a/km3io/offline.py
+++ b/km3io/offline.py
@@ -146,3 +146,12 @@ class Header:
 
     def __getitem__(self, key):
         return self._data[key]
+
+    def keys(self):
+        return self._data.keys()
+
+    def items(self):
+        return self._data.items()
+
+    def values(self):
+        return self._data.values()
diff --git a/tests/test_offline.py b/tests/test_offline.py
index 2f59f05..5762bf3 100644
--- a/tests/test_offline.py
+++ b/tests/test_offline.py
@@ -123,6 +123,20 @@ class TestHeader(unittest.TestCase):
         assert 7 == header["d"]
         assert "bar" == header["e+f"]
 
+    def test_header_behaves_like_a_dict(self):
+        head = {
+            "a": "1 2 3",
+            "b+c": "4 5 6",
+            "c": "foo",
+            "d": "7",
+            "e+f": "bar",
+        }
+
+        header = Header(head)
+        self.assertListEqual(list(head.keys()), list(header.keys()))
+        assert 5 == len(header.values())
+        assert 5 == len(header.items())
+
     def test_reading_header_from_sample_file(self):
         head = OFFLINE_NUMUCC.header
 
-- 
GitLab