Mercurial > p > roundup > code
annotate test/tx_Source_detector.py @ 5728:bfd28644fe43
In suggestion from Joseph Myers, put test code in a try: finally: block
to make sure that patching of date.Date is undone if there is an
exception.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Fri, 24 May 2019 17:23:08 -0400 |
| parents | 64b05e24dbd8 |
| children | 9938c40e03bc |
| rev | line source |
|---|---|
| 4781 | 1 # |
| 2 # Example output when the web interface changes item 3 and the email | |
| 3 # (non pgp) interface changes item 4: | |
| 4 # | |
| 5 # tx_SourceCheckAudit(3) pre db.tx_Source: cgi | |
| 6 # tx_SourceCheckAudit(4) pre db.tx_Source: email | |
| 7 # tx_SourceCheckAudit(3) post db.tx_Source: cgi | |
| 8 # tx_SourceCheckAudit(4) post db.tx_Source: email | |
| 9 # tx_SourceCheckReact(4) pre db.tx_Source: email | |
| 10 # tx_SourceCheckReact(4) post db.tx_Source: email | |
| 11 # tx_SourceCheckReact(3) pre db.tx_Source: cgi | |
| 12 # tx_SourceCheckReact(3) post db.tx_Source: cgi | |
| 13 # | |
| 14 # Note that the calls are interleaved, but the proper | |
| 15 # tx_Source is associated with the same ticket. | |
| 16 | |
|
5376
64b05e24dbd8
Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents:
4781
diff
changeset
|
17 from __future__ import print_function |
| 4781 | 18 import time as time |
| 19 | |
| 20 def tx_SourceCheckAudit(db, cl, nodeid, newvalues): | |
| 21 ''' An auditor to print the value of the source of the | |
| 22 transaction that trigger this change. The sleep call | |
| 23 is used to delay the transaction so that multiple changes will | |
| 24 overlap. The expected output from this detector are 2 lines | |
| 25 with the same value for tx_Source. Tx source is: | |
| 26 None - Reported when using a script or it is an error if | |
| 27 the change arrives by another method. | |
| 28 "cli" - reported when using roundup-admin | |
| 29 "web" - reported when using any web based technique | |
| 30 "email" - reported when using an unautheticated email based technique | |
| 31 "email-sig-openpgp" - reported when email with a valid pgp | |
| 32 signature is used | |
| 33 ''' | |
| 34 if __debug__ and False: | |
|
5376
64b05e24dbd8
Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents:
4781
diff
changeset
|
35 print("\n tx_SourceCheckAudit(%s) db.tx_Source: %s"%(nodeid, db.tx_Source)) |
| 4781 | 36 |
| 37 newvalues['tx_Source'] = db.tx_Source | |
| 38 | |
| 39 # example use for real to prevent a change from happening if it's | |
| 40 # submited via email | |
| 41 # | |
| 42 # if db.tx_Source == "email": | |
| 43 # raise Reject, 'Change not allowed via email' | |
| 44 | |
| 45 def tx_SourceCheckReact(db, cl, nodeid, oldvalues): | |
| 46 ''' An reactor to print the value of the source of the | |
| 47 transaction that trigger this change. The sleep call | |
| 48 is used to delay the transaction so that multiple changes will | |
| 49 overlap. The expected output from this detector are 2 lines | |
| 50 with the same value for tx_Source. Tx source is: | |
| 51 None - Reported when using a script or it is an error if | |
| 52 the change arrives by another method. | |
| 53 "cli" - reported when using roundup-admin | |
| 54 "web" - reported when using any web based technique | |
| 55 "email" - reported when using an unautheticated email based technique | |
| 56 "email-sig-openpgp" - reported when email with a valid pgp | |
| 57 signature is used | |
| 58 ''' | |
| 59 | |
| 60 if __debug__ and False: | |
|
5376
64b05e24dbd8
Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents:
4781
diff
changeset
|
61 print(" tx_SourceCheckReact(%s) db.tx_Source: %s"%(nodeid, db.tx_Source)) |
| 4781 | 62 |
| 63 | |
| 64 | |
| 65 def init(db): | |
| 66 db.issue.audit('create', tx_SourceCheckAudit) | |
| 67 db.issue.audit('set', tx_SourceCheckAudit) | |
| 68 | |
| 69 db.issue.react('set', tx_SourceCheckReact) | |
| 70 db.issue.react('create', tx_SourceCheckReact) | |
| 71 | |
| 72 db.msg.audit('create', tx_SourceCheckAudit) |
