コード例 #1
0
ファイル: test_feat.py プロジェクト: MihirVaidya94/NeuroVault
    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']))
コード例 #2
0
    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']))
コード例 #3
0
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)

コード例 #4
0
    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)