def testFEAT_NIDM(self): # test feat parsing for fname, info in self.testfiles.items(): info['found_feat'] = False for root, dirs, files in os.walk(info['dir']): if detect_feat_directory(root): print 'Found FEAT directory at {}.'.format(root) info['found_feat'] = True try: fslnidm = FSLtoNIDMExporter(feat_dir=root, version="0.2.0") fslnidm.parse() export_dir = fslnidm.export() ttl_file = os.path.join(export_dir,'nidm.ttl') except: print("Unable to parse the FEAT directory: \n{0}.".format(get_traceback())) # confirm results path and existence self.assertTrue(os.path.exists(export_dir)) self.assertEquals(os.path.join(info['dir'],info['export_dir']),export_dir) # incomplete ttl = failure in processing self.assertGreaterEqual(os.path.getsize(ttl_file),info['ttl_fsize']) # test upload nidm for fname, info in self.testfiles.items(): nidm_zpath = os.path.join(self.tmpdir,'{}.nidm.zip'.format(fname.replace('.zip',''))) nidm_zip = zipfile.ZipFile(nidm_zpath, 'w') for root, dirs, files in os.walk(os.path.join(info['dir'],info['export_dir'])): for nfile in files: nidm_zip.write(os.path.join(root, nfile)) nidm_zip.close() zname = os.path.basename(nidm_zip.filename) post_dict = { 'name': zname, 'description':'{0} upload test'.format(zname), 'collection':self.coll.pk, } file_dict = {'zip_file': SimpleUploadedFile(zname, open(nidm_zpath,'r').read())} form = NIDMResultsForm(post_dict, file_dict) # validate NIDM Results self.assertEqual(form.errors, {}) nidm = form.save() statmaps = nidm.nidmresultstatisticmap_set.all() self.assertEquals(len(statmaps),info['num_statmaps']) map_types = [v.map_type for v in statmaps] self.assertEquals(sorted(map_types), sorted(info['map_types'])) names = [v.name for v in statmaps] self.assertEquals(sorted(names), sorted(info['names']))
def testFEAT_NIDM(self): # test feat parsing for fname, info in self.testfiles.items(): info['found_feat'] = False for root, dirs, files in os.walk(info['dir']): if detect_feat_directory(root): print 'Found FEAT directory at {}.'.format(root) info['found_feat'] = True try: fslnidm = FSLtoNIDMExporter(feat_dir=root, version="0.2.0") fslnidm.parse() export_dir = fslnidm.export() ttl_file = os.path.join(export_dir, 'nidm.ttl') except: print("Unable to parse the FEAT directory: \n{0}.". format(get_traceback())) # confirm results path and existence self.assertTrue(os.path.exists(export_dir)) self.assertEquals( os.path.join(info['dir'], info['export_dir']), export_dir) # incomplete ttl = failure in processing self.assertEquals(os.path.getsize(ttl_file), info['ttl_fsize']) # test upload nidm for fname, info in self.testfiles.items(): nidm_zpath = os.path.join( self.tmpdir, '{}.nidm.zip'.format(fname.replace('.zip', ''))) nidm_zip = zipfile.ZipFile(nidm_zpath, 'w') for root, dirs, files in os.walk( os.path.join(info['dir'], info['export_dir'])): for nfile in files: nidm_zip.write(os.path.join(root, nfile)) nidm_zip.close() zname = os.path.basename(nidm_zip.filename) post_dict = { 'name': zname, 'description': '{0} upload test'.format(zname), 'collection': self.coll.pk, } file_dict = { 'zip_file': SimpleUploadedFile(zname, open(nidm_zpath, 'r').read()) } form = NIDMResultsForm(post_dict, file_dict) # validate NIDM Results self.assertTrue(form.is_valid()) nidm = form.save() statmaps = nidm.nidmresultstatisticmap_set.all() self.assertEquals(len(statmaps), info['num_statmaps']) map_types = [v.map_type for v in statmaps] self.assertEquals(sorted(map_types), sorted(info['map_types'])) names = [v.name for v in statmaps] self.assertEquals(sorted(names), sorted(info['names']))
if __name__ == '__main__': feat_dirs_path = raw_input("Enter location of test data:") or '/vagrant/FEAT' find = 0 parse = 0 fail = 0 for root, dirs, files in os.walk(feat_dirs_path, topdown=False): if detect_feat_directory(root): if '.files' in dirs: call(["rm", "-rf",os.path.join(root,'.files')]) tmpdir = tempfile.mkdtemp() feat_dir = os.path.join(tmpdir,os.path.basename(root)) shutil.copytree(root, feat_dir) print 'found feat directory at {0}'.format(root) print 'testing {0}'.format(feat_dir) find += 1 try: fslnidm = FSLtoNIDMExporter(feat_dir=feat_dir, version="0.2.0") fslnidm.parse() export_dir = fslnidm.export() parse += 1 except: fail += 1 print("Unable to parse the FEAT directory: \n{0}.".format(get_traceback())) finally: print 'ttl length: {}'.format(os.path.getsize(os.path.join(export_dir,'nidm.ttl'))) shutil.rmtree(tmpdir) print 'found {0} FEAT dirs, {1} successfully processed, {2} failures.'.format(find,parse,fail)
find = 0 parse = 0 fail = 0 for root, dirs, files in os.walk(feat_dirs_path, topdown=False): if detect_feat_directory(root): if '.files' in dirs: call(["rm", "-rf", os.path.join(root, '.files')]) tmpdir = tempfile.mkdtemp() feat_dir = os.path.join(tmpdir, os.path.basename(root)) shutil.copytree(root, feat_dir) print 'found feat directory at {0}'.format(root) print 'testing {0}'.format(feat_dir) find += 1 try: fslnidm = FSLtoNIDMExporter(feat_dir=feat_dir, version="0.2.0") fslnidm.parse() export_dir = fslnidm.export() parse += 1 except: fail += 1 print("Unable to parse the FEAT directory: \n{0}.".format( get_traceback())) finally: print 'ttl length: {}'.format( os.path.getsize(os.path.join(export_dir, 'nidm.ttl'))) shutil.rmtree(tmpdir) print 'found {0} FEAT dirs, {1} successfully processed, {2} failures.'.format( find, parse, fail)