Mercurial > p > roundup > code
view website/issues/detectors/patches.py @ 5200:16a8a3f0772c
Reset state of:
self.db.security.set_props_only_default(False)
at end of testGetPermission. I thought each test_X module had a fresh
environment an load of all modules. I guess that is not the case as
not resetting the props_only default to false seemed to bleed into the
testAuthFilter in text_xmlrpc.py.
However the funny part is it only caused problem in travis ci. Not in
my manual running of the full test suite on two platforms. However I
am pulling errors because the framework is not skipping the postgres
tests for text_xmlrpc. Maybe that failure is hiding something??
If I run just the test_xmlrpc module I would not expect an issue since
the security test suite won't be invoked. I am using different
versions of the test harness and python so maybe.....
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sat, 18 Mar 2017 15:12:39 -0400 |
| parents | c2d0d3e9099d |
| children | 0942fe89e82e |
line wrap: on
line source
# Auditor for patch files # Patches should be declared as text/plain (also .py files), # independent of what the browser says, and # the "patch" keyword should get set automatically. import posixpath patchtypes = ('.diff', '.patch') sourcetypes = ('.diff', '.patch', '.py') def ispatch(file, types): return posixpath.splitext(file)[1] in types def patches_text_plain(db, cl, nodeid, newvalues): if ispatch(newvalues['name'], sourcetypes): newvalues['type'] = 'text/plain' def patches_keyword(db, cl, nodeid, newvalues): # Check whether there are any new files newfiles = set(newvalues.get('files',())) if nodeid: newfiles -= set(db.issue.get(nodeid, 'files')) # Check whether any of these is a patch newpatch = False for fileid in newfiles: if ispatch(db.file.get(fileid, 'name'), patchtypes): newpatch = True break if newpatch: # Add the patch keyword if its not already there patchid = db.keyword.lookup("patch") oldkeywords = [] if nodeid: oldkeywords = db.issue.get(nodeid, 'keywords') if patchid in oldkeywords: # This is already marked as a patch return if not newvalues.has_key('keywords'): newvalues['keywords'] = oldkeywords newvalues['keywords'].append(patchid) def init(db): db.file.audit('create', patches_text_plain) db.issue.audit('create', patches_keyword) db.issue.audit('set', patches_keyword)
