@@ -1209,6 +1209,49 @@ def test_remove_payload_directory_requires_recursive(self):
12091209 with self .assertRaises (ValueError ):
12101210 bag .remove_payload ("data/extra" )
12111211
1212+ def test_add_payload_directory (self ):
1213+ bag = bagit .make_bag (self .tmpdir )
1214+
1215+ src_dir = tempfile .mkdtemp ()
1216+ try :
1217+ with open (j (src_dir , "one.txt" ), "w" ) as f :
1218+ f .write ("one" )
1219+
1220+ os .mkdir (j (src_dir , "nested" ))
1221+
1222+ with open (j (src_dir , "nested" , "two.txt" ), "w" ) as f :
1223+ f .write ("two" )
1224+
1225+ bag .add_payload (src_dir )
1226+
1227+ dest_dir = j (self .tmpdir , "data" , os .path .basename (src_dir ))
1228+
1229+ self .assertTrue (os .path .isdir (dest_dir ))
1230+ self .assertTrue (os .path .isfile (j (dest_dir , "one.txt" )))
1231+ self .assertTrue (os .path .isfile (j (dest_dir , "nested" , "two.txt" )))
1232+
1233+ bag = bagit .Bag (self .tmpdir )
1234+ self .assertTrue (bag .is_valid ())
1235+ finally :
1236+ shutil .rmtree (src_dir )
1237+
1238+ def test_add_payload_directory_with_destination (self ):
1239+ bag = bagit .make_bag (self .tmpdir )
1240+
1241+ src_dir = tempfile .mkdtemp ()
1242+ try :
1243+ with open (j (src_dir , "one.txt" ), "w" ) as f :
1244+ f .write ("one" )
1245+
1246+ bag .add_payload (src_dir , "imports/sip" )
1247+
1248+ self .assertTrue (os .path .isdir (j (self .tmpdir , "data" , "imports" , "sip" )))
1249+ self .assertTrue (os .path .isfile (j (self .tmpdir , "data" , "imports" , "sip" , "one.txt" )))
1250+
1251+ bag = bagit .Bag (self .tmpdir )
1252+ self .assertTrue (bag .is_valid ())
1253+ finally :
1254+ shutil .rmtree (src_dir )
12121255
12131256
12141257class TestFetch (SelfCleaningTestCase ):
0 commit comments