/[escript]/branches/RW_WIN32/scons_ext.py
ViewVC logotype

Annotation of /branches/RW_WIN32/scons_ext.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 230 - (hide annotations)
Fri Nov 25 06:51:36 2005 UTC (17 years, 4 months ago) by robwdcock
File MIME type: text/x-python
File size: 2528 byte(s)
+ Added ability to RunPyUnitTests when anything they depend on changes (assuming all dependencies are set up that is). Only implemented for bruce/test/python at this stage
1 robwdcock 229 # Extensions to Scons
2     def build_py(target, source, env):
3     # Code to build .pyc from .py
4     import py_compile, sys;
5     py_compile.compile(str(source[0]), str(target[0]))
6     return None
7    
8     def runUnitTest(target, source, env):
9     import os
10     app = str(source[0].abspath)
11     if not os.system(app):
12     open(str(target[0]),'w').write("PASSED\n")
13     return None
14    
15 robwdcock 230 def runPyUnitTest(target, source, env):
16     import os
17     app = 'python '+str(source[0].abspath)
18     if not os.system(app):
19     open(str(target[0]),'w').write("PASSED\n")
20     return None
21    
22    
23 robwdcock 229 #import fnmatch
24     #import os
25    
26     #def Glob( includes = Split( '*' ), excludes = None, dir = '.'):
27     # """Similar to glob.glob, except globs SCons nodes, and thus sees
28     # generated files and files from build directories. Basically, it sees
29     # anything SCons knows about. A key subtlety is that since this function
30     # operates on generated nodes as well as source nodes on the filesystem,
31     # it needs to be called after builders that generate files you want to
32     # include.
33     #
34     # It will return both Dir entries and File entries
35     # """
36     # def fn_filter(node):
37     # fn = os.path.basename(str(node))
38     # match = 0
39     # for include in includes:
40     # if fnmatch.fnmatchcase( fn, include ):
41     # match = 1
42     # break
43     #
44     # if match == 1 and not excludes is None:
45     # for exclude in excludes:
46     # if fnmatch.fnmatchcase( fn, exclude ):
47     # match = 0
48     # break
49     #
50     # return match
51     #
52     # def filter_nodes(where):
53     # children = filter(fn_filter, where.all_children())
54     # nodes = []
55     # for f in children:
56     # nodes.append(gen_node(f))
57     # return nodes
58     #
59     # def gen_node(n):
60     # """Checks first to see if the node is a file or a dir, then
61     # creates the appropriate node. [code seems redundant, if the node
62     # is a node, then shouldn't it just be left as is?
63     # """
64     # if type(n) in (type(''), type(u'')):
65     # path = n
66     # else:
67     # path = n.abspath
68     # if os.path.isdir(path):
69     # return Dir(n)
70     # else:
71     # return File(n)
72     #
73     # here = Dir(dir)
74     # nodes = filter_nodes(here)
75     #
76     # node_srcs = [n.srcnode() for n in nodes]
77     #
78     # src = here.srcnode()
79     # if src is not here:
80     # for s in filter_nodes(src):
81     # if s not in node_srcs:
82     # # Probably need to check if this node is a directory
83     # nodes.append(gen_node(os.path.join(dir,os.path.basename(str(s)))))
84     #
85     # return nodes

  ViewVC Help
Powered by ViewVC 1.1.26