Coverage for tests/test_headers.py : 28%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
# This file is part of astro_metadata_translator. # # Developed for the LSST Data Management System. # This product includes software developed by the LSST Project # (http://www.lsst.org). # See the LICENSE file at the top-level directory of this distribution # for details of code ownership. # # Use of this source code is governed by a 3-clause BSD-style # license that can be found in the LICENSE file.
# Define reference headers self.h1 = dict( ORIGIN="LSST", KEY0=0, KEY1=1, KEY2=3, KEY3=3.1415, KEY4="a", ) self.h2 = dict( ORIGIN="LSST", KEY0="0", KEY2=4, KEY5=42 ) self.h3 = dict( ORIGIN="AUXTEL", KEY3=3.1415, KEY2=50, KEY5=42, ) self.h4 = dict( KEY6="New", KEY1="Exists", )
with self.assertRaises(ValueError): merge_headers([self.h1], mode="wrong")
with self.assertRaises(ValueError): merge_headers([])
merged = merge_headers([self.h1, self.h2], mode="overwrite")
expected = { "ORIGIN": self.h1["ORIGIN"], "KEY0": self.h2["KEY0"], "KEY1": self.h1["KEY1"], "KEY2": self.h2["KEY2"], "KEY3": self.h1["KEY3"], "KEY4": self.h1["KEY4"], "KEY5": self.h2["KEY5"], } self.assertEqual(merged, expected)
merged = merge_headers([self.h1, self.h2, self.h3, self.h4], mode="overwrite")
expected = { "ORIGIN": self.h3["ORIGIN"], "KEY0": self.h2["KEY0"], "KEY1": self.h4["KEY1"], "KEY2": self.h3["KEY2"], "KEY3": self.h3["KEY3"], "KEY4": self.h1["KEY4"], "KEY5": self.h3["KEY5"], "KEY6": self.h4["KEY6"], }
self.assertEqual(merged, expected)
merged = merge_headers([self.h1, self.h2, self.h3, self.h4], mode="first")
expected = { "ORIGIN": self.h1["ORIGIN"], "KEY0": self.h1["KEY0"], "KEY1": self.h1["KEY1"], "KEY2": self.h1["KEY2"], "KEY3": self.h1["KEY3"], "KEY4": self.h1["KEY4"], "KEY5": self.h2["KEY5"], "KEY6": self.h4["KEY6"], }
self.assertEqual(merged, expected)
merged = merge_headers([self.h1, self.h2, self.h3, self.h4], mode="drop")
expected = { "KEY3": self.h1["KEY3"], "KEY4": self.h1["KEY4"], "KEY5": self.h2["KEY5"], "KEY6": self.h4["KEY6"], }
self.assertEqual(merged, expected)
# Try with two headers first merged = merge_headers([self.h1, self.h2], mode="append")
expected = { "ORIGIN": self.h1["ORIGIN"], "KEY0": [self.h1["KEY0"], self.h2["KEY0"]], "KEY1": self.h1["KEY1"], "KEY2": [self.h1["KEY2"], self.h2["KEY2"]], "KEY3": self.h1["KEY3"], "KEY4": self.h1["KEY4"], "KEY5": self.h2["KEY5"], }
self.assertEqual(merged, expected)
merged = merge_headers([self.h1, self.h2, self.h3, self.h4], mode="append")
expected = { "ORIGIN": [self.h1["ORIGIN"], self.h2["ORIGIN"], self.h3["ORIGIN"], None], "KEY0": [self.h1["KEY0"], self.h2["KEY0"], None, None], "KEY1": [self.h1["KEY1"], None, None, self.h4["KEY1"]], "KEY2": [self.h1["KEY2"], self.h2["KEY2"], self.h3["KEY2"], None], "KEY3": self.h3["KEY3"], "KEY4": self.h1["KEY4"], "KEY5": self.h3["KEY5"], "KEY6": self.h4["KEY6"], }
self.assertEqual(merged, expected)
unittest.main() |