Ejemplo n.º 1
0
 def testChecklistEvalExcel(self):
     """
     Test checklist evaluation with generated Minim file from Excel source
     """
     self.setupConfig()
     rodir = self.createTestRo(testbase, "testro", "RO for testMkMinim", "ro-testMkMinim")
     self.populateTestRo(testbase, rodir)
     self.annotateResource(testbase, rodir, "", "FileAnnotations.ttl")
     rouri = ro_manifest.getRoUri(rodir)
     # Create minim graph from CSV file
     gridname = "TestMkMinim.xls"
     griduri = ro_manifest.getComponentUri(rodir, gridname)
     gridxls = os.path.join(rodir, gridname)
     gridbase = "http://example.org/base/"
     grid = GridExcel(gridxls, baseuri=gridbase)
     (status, minimgr) = mkminim.mkminim(grid, baseuri=grid.resolveUri(""))
     self.assertEquals(status, 0)
     # Write Minim
     minimname = "TestMkMinim_minim.ttl"
     with open(rodir + "/" + minimname, "w") as minimfile:
         minimgr.serialize(minimfile, format="turtle")
     # Evaluate checklist
     minimuri = ro_manifest.getComponentUri(rodir, minimname)
     minimpurpose = "test1"
     args = ["ro", "evaluate", "checklist", "-a", "-d", rodir + "/", minimname, minimpurpose, "."]
     self.outstr.seek(0)
     with StdoutContext.SwitchStdout(self.outstr):
         status = ro.runCommand(
             os.path.join(testbase, TestConfig.ro_test_config.CONFIGDIR),
             os.path.join(testbase, TestConfig.ro_test_config.ROBASEDIR),
             args,
         )
     outtxt = self.outstr.getvalue()
     assert status == 0, "Status %d, outtxt: %s" % (status, outtxt)
     log.debug("status %d, outtxt: %s" % (status, outtxt))
     # Check response returned
     # filelist  = [ unicode(ro_manifest.getComponentUri(rodir, f))
     #               for f in ["File1.txt", "File2.txt", "File3.txt"] ]
     filelist = ValueList(
         [str(ro_manifest.getComponentUri(rodir, f)) for f in ["File1.txt", "File2.txt", "File3.txt"]]
     )
     expect = [
         "Research Object file://%s/:" % (rodir),
         "Fully complete for test1 of resource .",
         "Satisfied requirements:",
         "  At least 3 file as part values are present",
         "  At most 3 file as part values are present",
         "  All part resource files %s are aggregated in RO" % (filelist),
         "  All file as part resources are accessible (live)",
         "  Python 2.7.x present",
         "  Files as part are partOf some indicated whole",
         "  File exists as a part",
         "Research object URI:     %s" % (rouri),
         "Minimum information URI: %s" % (minimuri),
     ]
     self.outstr.seek(0)
     for line in self.outstr:
         self.assertIn(str(line)[:-1], expect)
     self.deleteTestRo(rodir)
     return
Ejemplo n.º 2
0
    status = 0
    # open spreadsheet file as grid
    log.debug("%s: open grid %s"%(progname, options.checklist))
    gridfilename = os.path.join(filebase,options.checklist)
    log.debug("CSV file: %s"%gridfilename)
    base = ""
    if gridfilename.endswith(".csv"):
        try:
            with open(gridfilename, "rU") as csvfile:
                grid = GridCSV(csvfile, baseuri="", dialect=csv.excel)
        except IOError, e:
            print "Failed to open grid CSV file %s"%(e)
            return 2
    elif gridfilename.endswith(".xls"):
        try:
            grid = GridExcel(gridfilename, baseuri="")
        except IOError, e:
            print "Failed to open grid XLS file %s"%(e)
            return 2
    else:
        print "Unrecognized grid file type %s; must be CSV or XLS."%(gridfilename)
        return 2
    # Make minim file
    log.debug("mkminim %s"%(repr(options)))
    (status, mgr) = mkminim(grid,  baseuri=grid.resolveUri(""))
    # Serialize graph to output stream
    if status == 0:
        mgr.serialize(sys.stdout, format=options.outformat)
    # Exit
    return status