Revision: 5839
                            
                                                            
                                    
                                        
Updated Code
                                    
                                    
                                                    
                        at April 7, 2008 15:13 by kangell
                            
                            Updated Code
from popen2 import popen4 from types import ListType class RUNError: def __init__( self, cmd, expect, result, nomatch=None ): self.cmd = cmd self.expect = expect self.result = result self.nomatch = nomatch if self.nomatch is None: self.nomatch = [] def __repr__( self ): expect = self.expect if len( self.nomatch ): expect = self.nomatch return """Ran '%s'; expected '%s', got '%s'""" % ( self.cmd, str( expect ), self.result ) def run( command, expect=None, matchall=False ): """Run the specified command. If expect is not None then look for the given text in the output. If it is not there we throw an error. expect can also be a list of strings. In that case any match results in success. Unless matchall=True""" stdout,stdin = popen4( command ) result = stdout.read() result = result.strip() nomatch = [] if not expect is None: if len( expect ): if not type( expect ) is ListType: expect = [ expect ] found = False for s in expect: if result.find( s ) > -1: found = True if not matchall: break else: nomatch.append( s ) if not found: raise RUNError( command, expect, result, nomatch ) else: if len( result ): raise RUNError( command, "<empty string>", result ) if matchall and (type( expect ) is ListType) and ( len( nomatch ) ): raise RUNError( command, expect, result, nomatch ) return result
                            Revision: 5838
                            
                                                            
                                    
                                        
Initial Code
                                    
                                    
                                                            
                                    
                                        
Initial URL
                                    
                                    
                                
                                                            
                                    
                                        
Initial Description
                                    
                                    
                                                            
                                    
                                        
Initial Title
                                    
                                    
                                                            
                                    
                                        
Initial Tags
                                    
                                    
                                                            
                                    
                                        
Initial Language
                                    
                                    
                                                    
                        at April 7, 2008 14:24 by kangell
                            
                            Initial Code
from popen2 import popen4 from types import ListType class RUNError: def __init__( self, cmd, expect, result ): self.cmd = cmd self.expect = expect self.result = result def __repr__( self ): return """Ran '%s'; expected '%s', got '%s'""" % ( self.cmd, str( self.expect ), self.result ) def run( command, expect=None, matchall=False ): """Run the specified command. If expect is not None then look for the given text in the output. If it is not there we throw an error. expect can also be a list of strings. In that case any match results in success. Unless matchall=True""" stdout,stdin = popen4( command ) result = stdout.read() result = result.strip() nomatch = [] if not expect is None: if len( expect ): if not type( expect ) is ListType: expect = [ expect ] found = False for s in expect: if result.find( s ) > -1: found = True if not matchall: break else: nomatch.append( s ) if not found: raise RUNError( command, expect, result ) else: if len( result ): raise RUNError( command, expect, result ) if matchall and (type( expect ) is ListType) and ( len( nomatch ) ): raise RUNError( command, expect, result ) return result
Initial URL
Initial Description
Run the specified command. If expect is not None then look for the given text in the output. If it is not there we throw an error. expect can also be a list of strings. In that case any match results in success unless matchall=True.
Initial Title
Run OS Command w/ Expected Output
Initial Tags
command
Initial Language
Python