source: trunk/anuga_core/source/anuga/utilities/test_file_utils.py @ 7780

Last change on this file since 7780 was 7780, checked in by hudson, 14 years ago

Almost all failing tests fixed.

File size: 3.7 KB
Line 
1import unittest
2import tempfile
3import os
4import shutil
5
6from anuga.utilities.file_utils import copy_code_files, get_all_swwfiles
7from anuga.utilities.file_utils import del_dir
8
9
10class Test_FileUtils(unittest.TestCase):
11               
12    def test_copy_code_files(self):
13        '''test that the copy_code_files() function is sane.'''
14
15        def create_file(f):
16            fd = open(f, 'w')
17            fd.write('%s\n' % f)
18            fd.close()
19
20        # create working directories and test files
21        work_dir = tempfile.mkdtemp()
22        dst_dir = tempfile.mkdtemp(dir=work_dir)
23        src_dir = tempfile.mkdtemp(dir=work_dir)
24
25        f1 = 'file1'       
26        filename1 = os.path.join(src_dir, f1)
27        create_file(filename1)
28        f2 = 'file2'       
29        filename2 = os.path.join(src_dir, f2)
30        create_file(filename2)
31        f3 = 'file3'       
32        filename3 = os.path.join(src_dir, f3)
33        create_file(filename3)
34        f4 = 'file4'       
35        filename4 = os.path.join(src_dir, f4)
36        create_file(filename4)
37        f5 = 'file5'       
38        filename5 = os.path.join(src_dir, f5)
39        create_file(filename5)
40
41        # exercise the copy function
42        copy_code_files(dst_dir, filename1)
43        copy_code_files(dst_dir, filename1, filename2)
44        copy_code_files(dst_dir, (filename4, filename5, filename3))
45
46        # test that files were actually copied
47        self.failUnless(os.access(os.path.join(dst_dir, f1), os.F_OK))
48        self.failUnless(os.access(os.path.join(dst_dir, f2), os.F_OK))
49        self.failUnless(os.access(os.path.join(dst_dir, f3), os.F_OK))
50        self.failUnless(os.access(os.path.join(dst_dir, f4), os.F_OK))
51        self.failUnless(os.access(os.path.join(dst_dir, f5), os.F_OK))
52
53        # clean up
54        shutil.rmtree(work_dir)
55       
56    def test_get_all_swwfiles(self):
57        try:
58            swwfiles = get_all_swwfiles('','test.txt')  #Invalid
59        except IOError:
60            pass
61        else:
62            raise 'Should have raised exception' 
63       
64    def test_get_all_swwfiles1(self):
65       
66        temp_dir = tempfile.mkdtemp('','sww_test')
67        filename0 = tempfile.mktemp('.sww','test',temp_dir)
68        filename1 = tempfile.mktemp('.sww','test',temp_dir)
69        filename2 = tempfile.mktemp('.sww','test',temp_dir)
70        filename3 = tempfile.mktemp('.sww','test',temp_dir)
71       
72        #print'filename', filename0,filename1,filename2,filename3
73       
74        fid0 = open(filename0, 'w')
75        fid1 = open(filename1, 'w')
76        fid2 = open(filename2, 'w')
77        fid3 = open(filename3, 'w')
78
79        fid0.write('hello')
80        fid1.write('hello')
81        fid2.write('hello')
82        fid3.write('hello')
83       
84        fid0.close()
85        fid1.close()
86        fid2.close()
87        fid3.close()
88       
89       
90        dir, name0 = os.path.split(filename0)
91        #print 'dir',dir,name0
92       
93        iterate=get_all_swwfiles(dir,'test')
94       
95        del_dir(temp_dir)
96#        removeall(temp_dir)
97
98        _, name0 = os.path.split(filename0) 
99        #print'name0',name0[:-4],iterate[0]   
100        _, name1 = os.path.split(filename1)       
101        _, name2 = os.path.split(filename2)       
102        _, name3 = os.path.split(filename3)       
103
104        assert name0[:-4] in iterate
105        assert name1[:-4] in iterate
106        assert name2[:-4] in iterate
107        assert name3[:-4] in iterate
108       
109        assert len(iterate)==4           
110
111#-------------------------------------------------------------
112
113if __name__ == "__main__":
114    #suite = unittest.makeSuite(Test_Data_Manager, 'test_sww2domain2')
115    suite = unittest.makeSuite(Test_FileUtils, 'test_sww')
116    runner = unittest.TextTestRunner() #verbosity=2)
117    runner.run(suite)   
Note: See TracBrowser for help on using the repository browser.