1 | import unittest |
---|
2 | import tempfile |
---|
3 | import os |
---|
4 | import shutil |
---|
5 | |
---|
6 | from anuga.utilities.file_utils import copy_code_files |
---|
7 | |
---|
8 | |
---|
9 | class Test_FileUtils(unittest.TestCase): |
---|
10 | |
---|
11 | def test_copy_code_files(self): |
---|
12 | '''test that the copy_code_files() function is sane.''' |
---|
13 | |
---|
14 | def create_file(f): |
---|
15 | fd = open(f, 'w') |
---|
16 | fd.write('%s\n' % f) |
---|
17 | fd.close() |
---|
18 | |
---|
19 | # create working directories and test files |
---|
20 | work_dir = tempfile.mkdtemp() |
---|
21 | dst_dir = tempfile.mkdtemp(dir=work_dir) |
---|
22 | src_dir = tempfile.mkdtemp(dir=work_dir) |
---|
23 | |
---|
24 | f1 = 'file1' |
---|
25 | filename1 = os.path.join(src_dir, f1) |
---|
26 | create_file(filename1) |
---|
27 | f2 = 'file2' |
---|
28 | filename2 = os.path.join(src_dir, f2) |
---|
29 | create_file(filename2) |
---|
30 | f3 = 'file3' |
---|
31 | filename3 = os.path.join(src_dir, f3) |
---|
32 | create_file(filename3) |
---|
33 | f4 = 'file4' |
---|
34 | filename4 = os.path.join(src_dir, f4) |
---|
35 | create_file(filename4) |
---|
36 | f5 = 'file5' |
---|
37 | filename5 = os.path.join(src_dir, f5) |
---|
38 | create_file(filename5) |
---|
39 | |
---|
40 | # exercise the copy function |
---|
41 | copy_code_files(dst_dir, filename1) |
---|
42 | copy_code_files(dst_dir, filename1, filename2) |
---|
43 | copy_code_files(dst_dir, (filename4, filename5, filename3)) |
---|
44 | |
---|
45 | # test that files were actually copied |
---|
46 | self.failUnless(os.access(os.path.join(dst_dir, f1), os.F_OK)) |
---|
47 | self.failUnless(os.access(os.path.join(dst_dir, f2), os.F_OK)) |
---|
48 | self.failUnless(os.access(os.path.join(dst_dir, f3), os.F_OK)) |
---|
49 | self.failUnless(os.access(os.path.join(dst_dir, f4), os.F_OK)) |
---|
50 | self.failUnless(os.access(os.path.join(dst_dir, f5), os.F_OK)) |
---|
51 | |
---|
52 | # clean up |
---|
53 | shutil.rmtree(work_dir) |
---|
54 | |
---|
55 | |
---|
56 | #------------------------------------------------------------- |
---|
57 | |
---|
58 | if __name__ == "__main__": |
---|
59 | #suite = unittest.makeSuite(Test_Data_Manager, 'test_sww2domain2') |
---|
60 | suite = unittest.makeSuite(Test_FileUtils, 'test_sww') |
---|
61 | runner = unittest.TextTestRunner() #verbosity=2) |
---|
62 | runner.run(suite) |
---|