shutil.rmtree(self.small_files_dir)
shutil.rmtree(self.tempdir_with_symlink)
- def test_non_regular_files_are_ignored(self):
+ def test_non_regular_files_are_ignored_except_symlinks_to_dirs(self):
def pfunc(x):
with open(x, 'w') as f:
f.write('test')
fifo_filename = 'fifo-file'
- fifo_path = os.path.join(self.tempdir, fifo_filename)
+ fifo_path = os.path.join(self.tempdir_with_symlink, fifo_filename)
+ self.assertTrue(os.path.islink(os.path.join(self.tempdir_with_symlink, 'linkeddir')))
os.mkfifo(fifo_path)
producer = multiprocessing.Process(target=pfunc, args=(fifo_path,))
producer.start()
- cwriter = arv_put.ArvPutUploadJob([self.tempdir])
+ cwriter = arv_put.ArvPutUploadJob([self.tempdir_with_symlink])
cwriter.start(save_collection=False)
- self.assertNotIn(fifo_filename, cwriter.manifest_text())
if producer.exitcode is None:
- # If the producer is still running, kill it.
+ # If the producer is still running, kill it. This should always be
+ # before any assertion that may fail.
producer.terminate()
producer.join(1)
+ self.assertIn('linkeddir', cwriter.manifest_text())
+ self.assertNotIn(fifo_filename, cwriter.manifest_text())
def test_symlinks_are_followed_by_default(self):
self.assertTrue(os.path.islink(os.path.join(self.tempdir_with_symlink, 'linkeddir')))
def test_put_block_replication(self):
self.call_main_on_test_file()
+ arv_put.api_client = None
with mock.patch('arvados.collection.KeepClient.local_store_put') as put_mock:
put_mock.return_value = 'acbd18db4cc2f85cedef654fccc4a4d8+3'
self.call_main_on_test_file(['--replication', '1'])