def test_parse_and_validate_manifest_expand_vars(self): expected_fp = os.path.join(self.temp_dir.name, 'manifest.txt') # touch the file - the valdiator will fail if it doesn't exist open(expected_fp, 'w') os.environ['TESTENVGWAR'] = self.temp_dir.name manifest = io.StringIO( 'sample-id,absolute-filepath,direction\n' 'abc,$TESTENVGWAR/manifest.txt,forward') manifest = _parse_and_validate_manifest(manifest, single_end=True) del os.environ['TESTENVGWAR'] self.assertEqual(manifest.iloc[0]['absolute-filepath'], expected_fp)
def test_parse_and_validate_manifest_expand_vars(self): expected_fp = os.path.join(self.temp_dir.name, 'manifest.txt') # touch the file - the valdiator will fail if it doesn't exist open(expected_fp, 'w') os.environ['TESTENVGWAR'] = self.temp_dir.name manifest = io.StringIO( 'sample-id,absolute-filepath,direction\n' 'abc,$TESTENVGWAR/manifest.txt,forward') manifest = _parse_and_validate_manifest(manifest, single_end=True, absolute=True) del os.environ['TESTENVGWAR'] self.assertEqual(manifest.iloc[0]['absolute-filepath'], expected_fp)
def test_parse_and_validate_manifest_invalid(self): manifest = io.StringIO( 'sample-id,absolute-filepath\n' 'abc,/hello/world,forward\n') with self.assertRaisesRegex(ValueError, "header must contain"): _parse_and_validate_manifest(manifest, single_end=True) manifest = io.StringIO( 'sample-id,absolute-filepath,direction\n' 'abc,/hello/world\n' 'abc,/hello/world,forward\n') with self.assertRaisesRegex(ValueError, 'contains fewer'): _parse_and_validate_manifest(manifest, single_end=True) manifest = io.StringIO( 'sample-id,absolute-filepath,direction\n' 'abc,/hello/world,forward\n' 'xyz,/hello/world,forward,extra-field') with self.assertRaisesRegex(ValueError, 'contains more'): _parse_and_validate_manifest(manifest, single_end=True)
def test_parse_and_validate_manifest_invalid(self): manifest = io.StringIO('sample-id,absolute-filepath\n' 'abc,/hello/world,forward\n') with self.assertRaisesRegex( ValueError, "Expected.*absolute-filepath.*found " "'sample-id,absolute-filepath'.$"): _parse_and_validate_manifest(manifest, single_end=True, absolute=True) manifest = io.StringIO('sample-id,absolute-filepath,direction\n' 'abc,/hello/world\n' 'abc,/hello/world,forward\n') with self.assertRaisesRegex(ValueError, 'Empty cells'): _parse_and_validate_manifest(manifest, single_end=True, absolute=True) manifest = io.StringIO('sample-id,absolute-filepath,direction\n' 'abc,/hello/world,forward\n' 'xyz,/hello/world,forward,extra-field') with self.assertRaisesRegex(ValueError, 'issue parsing the manifest'): _parse_and_validate_manifest(manifest, single_end=True, absolute=True) manifest = io.StringIO('sample-id,absolute-filepath,direction\n' 'abc,world,forward\n' 'xyz,world,forward') with self.assertRaisesRegex(ValueError, 'absolute but found relative path'): _parse_and_validate_manifest(manifest, single_end=True, absolute=True) manifest = io.StringIO('sample-id,absolute-filepath,direction\n' 'abc,world,forward\n' 'abc,world,reverse') with self.assertRaisesRegex(ValueError, 'absolute but found relative path'): _parse_and_validate_manifest(manifest, single_end=False, absolute=True) manifest = io.StringIO('sample-id,filename,direction\n' 'abc,/snap/crackle/pop/world,forward\n' 'xyz,/snap/crackle/pop/world,forward') with self.assertRaisesRegex(ValueError, 'relative but found absolute path'): _parse_and_validate_manifest(manifest, single_end=True, absolute=False) manifest = io.StringIO('sample-id,filename,direction\n' 'abc,/snap/crackle/pop/world,forward\n' 'abc,/snap/crackle/pop/world,reverse') with self.assertRaisesRegex(ValueError, 'relative but found absolute path'): _parse_and_validate_manifest(manifest, single_end=False, absolute=False)
def test_parse_and_validate_manifest_invalid(self): manifest = io.StringIO( 'sample-id,absolute-filepath\n' 'abc,/hello/world,forward\n') with self.assertRaisesRegex( ValueError, "Expected.*absolute-filepath.*found " "'sample-id,absolute-filepath'.$"): _parse_and_validate_manifest(manifest, single_end=True, absolute=True) manifest = io.StringIO( 'sample-id,absolute-filepath,direction\n' 'abc,/hello/world\n' 'abc,/hello/world,forward\n') with self.assertRaisesRegex(ValueError, 'Empty cells'): _parse_and_validate_manifest(manifest, single_end=True, absolute=True) manifest = io.StringIO( 'sample-id,absolute-filepath,direction\n' 'abc,/hello/world,forward\n' 'xyz,/hello/world,forward,extra-field') with self.assertRaisesRegex(ValueError, 'issue parsing the manifest'): _parse_and_validate_manifest(manifest, single_end=True, absolute=True) manifest = io.StringIO( 'sample-id,absolute-filepath,direction\n' 'abc,world,forward\n' 'xyz,world,forward') with self.assertRaisesRegex(ValueError, 'absolute but found relative path'): _parse_and_validate_manifest(manifest, single_end=True, absolute=True) manifest = io.StringIO( 'sample-id,absolute-filepath,direction\n' 'abc,world,forward\n' 'abc,world,reverse') with self.assertRaisesRegex(ValueError, 'absolute but found relative path'): _parse_and_validate_manifest(manifest, single_end=False, absolute=True) manifest = io.StringIO( 'sample-id,filename,direction\n' 'abc,/snap/crackle/pop/world,forward\n' 'xyz,/snap/crackle/pop/world,forward') with self.assertRaisesRegex(ValueError, 'relative but found absolute path'): _parse_and_validate_manifest(manifest, single_end=True, absolute=False) manifest = io.StringIO( 'sample-id,filename,direction\n' 'abc,/snap/crackle/pop/world,forward\n' 'abc,/snap/crackle/pop/world,reverse') with self.assertRaisesRegex(ValueError, 'relative but found absolute path'): _parse_and_validate_manifest(manifest, single_end=False, absolute=False)