def test_files(self):
data = Data(id=123, resolwe=MagicMock())
data._get_dir_files = MagicMock(
side_effect=[['first_dir/file1.txt'], ['fastq_dir/file2.txt']])
data.annotation = {
'output.list': {'value': [{'file': "element.gz"}], 'type': 'list:basic:file:'},
'output.dir_list': {'value': [{'dir': "first_dir"}], 'type': 'list:basic:dir:'},
'output.fastq': {'value': {'file': "file.fastq.gz"}, 'type': 'basic:file:fastq'},
'output.fastq_archive': {'value': {'file': "archive.gz"}, 'type': 'basic:file:'},
'output.fastq_dir': {'value': {'dir': "fastq_dir"}, 'type': 'basic:dir:'},
'input.fastq_url': {'value': {'file': "blah"}, 'type': 'basic:url:'},
'input.blah': {'value': "blah.gz", 'type': 'basic:file:'}
}
file_list = data.files()
six.assertCountEqual(self, file_list, [
'element.gz',
'archive.gz',
'file.fastq.gz',
'first_dir/file1.txt',
'fastq_dir/file2.txt'
])
file_list = data.files(file_name='element.gz')
self.assertEqual(file_list, ['element.gz'])
file_list = data.files(field_name='output.fastq')
self.assertEqual(file_list, ['file.fastq.gz'])
data.annotation = {
'output.list': {'value': [{'no_file_field_here': "element.gz"}],
'type': 'list:basic:file:'},
}
with six.assertRaisesRegex(self, KeyError, "does not contain 'file' key."):
data.files()
data = Data(resolwe=MagicMock(), id=None)
with six.assertRaisesRegex(self, ValueError, "must be saved before"):
data.files()
评论列表
文章目录