def testgetNodeList(self): cmd = Command('tag', None) node = Node(cmd) cp = CommandPack([cmd]) nlist = cp.getNodeList() self.failUnlessEqual(nlist, [node])
def testgetTargets(self): t1 = Target('t1') t2 = Target('t2') cmd = Command('tag', None, t1) cmd2 = Command('tag', None, t2=t2) cp = CommandPack([cmd, cmd2]) tset = set(cp.getTargets()) self.failUnlessEqual(tset, set([t1, t2]))
def testgetSources(self): s1 = Source('t1') s2 = Source('t2') cmd = Command('tag', None, s1) cmd2 = Command('tag', None, s2=s2) cp = CommandPack([cmd, cmd2]) tset = set(cp.getSources()) self.failUnlessEqual(tset, set([s1, s2]))
def pack(cls, command, stdin=True, stdout=True): """ pack a source, command and target into a CommandPack instance @return: CommandPack instance """ if isinstance(command, (tuple, list)): comm = command else: comm = [command] return CommandPack(comm, stdin, stdout)
def testsetSource(self): cp = CommandPack(['comm']) self.failUnlessEqual(cp.source, True) cp.source = 'tgt' self.failUnlessEqual(cp.source, 'tgt') cmd = Command('tag', None) cp = CommandPack([cmd], in_cont=None) self.failUnlessRaises(Exception, setattr, cp, 'source', 'src') cmd = Command('tag', None, Source) cp = CommandPack([cmd], in_cont=None) src = Source('tgt') cp.source = src self.failUnlessEqual(cp.source, None) self.failUnlessEqual(cmd.getSources(), [src])
def testsetTarget(self): cp = CommandPack(['comm']) self.failUnlessEqual(cp.target, True) cp.target = 'tgt' self.failUnlessEqual(cp.target, 'tgt') cmd = Command('tag', None) cp = CommandPack([cmd], out_cont=None) self.failUnlessRaises(Exception, setattr, cp, 'target', 'tgt') cmd = Command('tag', None, Target) cp = CommandPack([cmd], out_cont=None) tgt = Target('tgt') cp.target = tgt self.failUnlessEqual(cp.target, None) self.failUnlessEqual(cmd.getTargets(), [tgt])
def scalar_reduction(cls, container, tag, *args, **kargs): """ generate a Scalar from a command """ scalar_methods = container.scalar_methods scmd = scalar_methods.get_command(tag) scalar = Scalar() cont = Source(container) scal = Target(scalar) if cls.env['slimvars']['use_scalar_obj']: command = general_command(tag, None, cont, scal, *args, **kargs) # set command command.func = scmd compack = CommandPack([command], None, None) cls.env['graphmgr'].graphAppend(compack) else: scalar = scal.data return scalar
def gen_new_scal(self,other,func): scalar = Scalar( ) trg_scal = Target( scalar ) src_self = Source( self ) other_obj = self._num_src( other ) # new_func = scalar_helper(func,func_name=func_name) tag = str(func) command = general_command( tag , None, src_self,other_obj,trg_scal ) command.func = func if self.env['slimvars']['keep_tb_info']: stack = traceback.extract_stack( ) st_list = traceback.format_list( stack[:-3] ) command.tb_info = "".join(st_list) compack = CommandPack([command], None, None) self.env['graphmgr'].graphAppend( compack ) return scalar
def map(cls, source, command): """ default mapping 1 to 1 """ return CommandPack([command])