def testExecute2(self): self.assertPreExecute() definition = self.createDefinition() reference = DefinitionModule.ReferenceDefinition() reference.definitionToReference(definition) reference.name(definition.name()) reference = GeneratePomsetsModule.pickleAndReloadDefinition( '.'.join([self.getPicklePath(), 'pomset']), reference ) task = self.createTask(reference) self.bindTaskParameterValues(task) request = self.executeTask(task) self.request = request self.assertPostExecute() return
def testPickleAndLoad(self): """ This verifies a pomset saved out and reloaded still references the same definition - create a pomset that references the two library definitions - save out the pomset - load the pomset again - assert the references are identical, using Python's "is" """ # load the library definitions library = self.initializeLibrary() request = self.automaton.runBootstrapLoader(library) assert not request.exception # create the pomset, add a node # and have that node reference a library definition filter = RelationalModule.ColumnValueFilter( 'definition', FilterModule.IdFilter(TestDefinitionModule.ID_WORDCOUNT)) definitionToReference = library.getDefinition(filter) compositeDefinition = DefinitionModule.getNewNestDefinition() mapperNode = compositeDefinition.createNode(id='mapper') mapperNode.definitionToReference(definitionToReference) # pickle the pomset # unpickle the pomset definition = TestDefinitionModule.pickleAndReloadDefinition( os.sep.join(['', 'tmp', 'foo.pomset']), compositeDefinition ) library.updateWithLibraryDefinitions(definition.definitionToReference()) definitionToReference = library.getDefinition(filter) self.assertTrue(definition.definitionToReference().nodes()[0].definitionToReference() is definitionToReference) return