Skip to content

Commit ca4eecd

Browse files
committed
make_bag support for multiple metadata with same header
1 parent b34bfd4 commit ca4eecd

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

bagit.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,11 @@ def make_bag(bag_dir, bag_info=None, processes=1):
119119
headers = bag_info.keys()
120120
headers.sort()
121121
for h in headers:
122+
# v0.97 support for multiple instances of any meta item.
123+
if type(bag_info[h]) == list:
124+
for val in bag_info[h]:
125+
bag_info_txt.write("%s: %s\n" % (h, val))
126+
continue
122127
bag_info_txt.write("%s: %s\n" % (h, bag_info[h]))
123128
bag_info_txt.close()
124129

test.py

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -189,16 +189,11 @@ def test_multiple_oxum_values(self):
189189
self.assertTrue(bag.validate(fast=True))
190190

191191
def test_multiple_meta_values(self):
192-
bag = bagit.make_bag(self.tmpdir)
193-
baginfo = open(os.path.join(self.tmpdir, "bag-info.txt"), "a")
194-
vals = [7, 4, 8, 6, 8]
195-
for val in vals:
196-
baginfo.write('Multival-Meta: %s\n' % val)
197-
baginfo.close()
198-
bag = bagit.Bag(self.tmpdir)
199-
meta = bag.info.get('Multival-Meta')
192+
baginfo = {"Multival-Meta": [7, 4, 8, 6, 8]}
193+
bag = bagit.make_bag(self.tmpdir, baginfo)
194+
meta = bag.info.get("Multival-Meta")
200195
self.assertEqual(type(meta), list)
201-
self.assertEqual(len(meta), len(vals))
196+
self.assertEqual(len(meta), len(baginfo["Multival-Meta"]))
202197

203198
def test_validate_optional_tagfile(self):
204199
bag = bagit.make_bag(self.tmpdir)

0 commit comments

Comments
 (0)