Changeset 77

Show
Ignore:
Timestamp:
12/29/05 16:40:37 (3 years ago)
Author:
tim
Message:

test now uses tempfile module

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/timcommithook/pyramid/test/tests.py

    r74 r77  
    44import sys 
    55import difflib 
     6import tempfile 
    67import wingdbstub 
    78 
    89testdatadir = path.path('testdata') 
    9 TEMPFOLDER = path.path('/tmp/pyramidtest'
     10TEMPFOLDER = path.path(tempfile.mkdtemp(prefix='pyramidunittest')
    1011 
    1112def removeTemp(dir): 
     
    2122        removeTemp(dir) 
    2223    os.mkdir(dir)      
     24 
     25def compareDirs(actual,expected,skipdirs=[],skipfiles=[]): 
     26    for root, dirs, files in os.walk(expected): 
     27        relpath = expected.relpathto(root) 
     28        for dir in dirs: 
     29            if dir in skipdirs: 
     30                dirs.remove(dir) 
     31        for file in files: 
     32            if file not in skipfiles: 
     33                file1 = actual / relpath / file 
     34                file2 = expected / relpath / file 
     35                filetext1 = open(file1).readlines() 
     36                filetext2 = open(file2).readlines() 
     37                d = difflib.Differ() 
     38                result = list(difflib.context_diff(filetext1,filetext2)) 
     39                if len(result) > 0: 
     40                    print '%s\n Differences in generated output for %s\n%s' % ('='*70,relpath / file,'='*70)   
     41                    print '\n'.join(result[3:]) 
     42                    print '='*70 
     43                    return False 
     44    return True 
    2345 
    2446class test_yamlRegistry(unittest.TestCase): 
     
    7698         
    7799        for buildtest in tests: 
    78              
     100            print 'testing %s' % buildtest 
    79101            datapath = self.buildtestpath / buildtest / 'data' 
    80102            checkedresultpath = self.buildtestpath / buildtest / 'expected' 
     
    82104            build.build(datapath,TEMPFOLDER / buildtest) 
    83105             
    84             def compareDirs(actual,expected,skipdirs=[],skipfiles=[]): 
    85                 for root, dirs, files in os.walk(checkedresultpath): 
    86                     relpath = checkedresultpath.relpathto(root) 
    87                     for dir in dirs: 
    88                         if dir in skipdirs: 
    89                             dirs.remove(dir) 
    90                     for file in files: 
    91                         if file not in skipfiles: 
    92                              
    93                             filetext1 = open(TEMPFOLDER / buildtest / relpath / file).readlines() 
    94                             filetext2 = open(checkedresultpath / relpath / file).readlines() 
    95                             d = difflib.Differ() 
    96                             result = list(difflib.context_diff(filetext1,filetext2)) 
    97                             if len(result) > 0: 
    98                                 print '\n'.join(result) 
    99                                 return False 
    100                 return True 
    101              
    102106            self.assertEqual(compareDirs(TEMPFOLDER / buildtest,checkedresultpath,skipdirs,['.cache.dump']),True) 
    103             self.assertEqual(compareDirs(TEMPFOLDER / buildtest,checkedresultwithcachepath,skipdirs),True) 
    104              
    105                          
     107            #self.assertEqual(compareDirs(TEMPFOLDER / buildtest,checkedresultwithcachepath,skipdirs),True) 
    106108                  
    107              
    108          
    109109    def tearDown(self): 
    110110        """ remove all test folders