import sys import os.path import re assert len(sys.argv) == 2 mochiPath = sys.argv[1] extDotPos = mochiPath.find('.html') assert extDotPos != -1, 'mochitest target must be an html doc.' testPath = mochiPath[:extDotPos] + '.solo.html' def ReadLocalFile(include): incPath = os.path.dirname(mochiPath) filePath = os.path.join(incPath, include) data = None try: f = open(filePath, 'r') data = f.read() except: pass try: f.close() except: pass return data kSimpleTestReplacement = '''
''' fin = open(mochiPath, 'rb') fout = open(testPath, 'wb') includePattern = re.compile('\\s*') cssPattern = re.compile(']*)[\'"]>') for line in fin: skipLine = False for css in cssPattern.findall(line): skipLine = True print('Ignoring stylesheet: ' + css) for inc in includePattern.findall(line): skipLine = True if inc == '/MochiKit/MochiKit': continue if inc == '/tests/SimpleTest/SimpleTest': print('Injecting SimpleTest replacement') fout.write(kSimpleTestReplacement); continue incData = ReadLocalFile(inc + '.js') if not incData: print('Warning: Unknown JS file ignored: ' + inc + '.js') continue print('Injecting include: ' + inc + '.js') fout.write('\n\n'); continue if skipLine: continue fout.write(line) continue fin.close() fout.close()