Mercurial > p > roundup > code
view test/test_rfc2822.py @ 4781:6e9b9743de89
Implementation for:
http://issues.roundup-tracker.org/issue2550731
Add mechanism for the detectors to be able to tell the source of the
data changes.
Support for tx_Source property on database handle. Can be
used by detectors to find out the source of a change in an auditor to
block changes arriving by unauthenticated mechanisms (e.g. plain email
where headers can be faked). The property db.tx_Source has the
following values:
* None - Default value set to None. May be valid if it's a script
that is created by the user. Otherwise it's an error and indicates
that some code path is not properly setting the tx_Source property.
* "cli" - this string value is set when using roundup-admin and
supplied scripts.
* "web" - this string value is set when using any web based
technique: html interface, xmlrpc ....
* "email" - this string value is set when using an unauthenticated
email based technique.
* "email-sig-openpgp" - this string value is set when email with a
valid pgp signature is used. (*NOTE* the testing for this mode
is incomplete. If you have a pgp infrastructure you should test
and verify that this is properly set.)
This also includes some (possibly incomplete) tests cases for the
modes above and an example of using ts_Source in the customization.txt
document.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Tue, 23 Apr 2013 23:06:09 -0400 |
| parents | 97f9fc0bc0ea |
| children |
line wrap: on
line source
from roundup.rfc2822 import decode_header, encode_header import unittest, time class RFC2822TestCase(unittest.TestCase): def testDecode(self): src = 'Re: [it_issue3] '\ '=?ISO-8859-1?Q?Ren=E9s_[resp=3Dg=2Cstatus=3D?= '\ '=?ISO-8859-1?Q?feedback]?=' result = 'Re: [it_issue3] Ren\xc3\xa9s [resp=g,status=feedback]' self.assertEqual(decode_header(src), result) src = 'Re: [it_issue3]'\ ' =?ISO-8859-1?Q?Ren=E9s_[resp=3Dg=2Cstatus=3D?=' \ ' =?ISO-8859-1?Q?feedback]?=' result = 'Re: [it_issue3] Ren\xc3\xa9s [resp=g,status=feedback]' self.assertEqual(decode_header(src), result) def testEncode(self): src = 'Re: [it_issue3] Ren\xc3\xa9s [status=feedback]' result = '=?utf-8?q?Re:_[it=5Fissue3]_Ren=C3=A9s_[status=3Dfeedback]?=' self.assertEqual(encode_header(src), result) src = 'Was machen\xc3\xbc und Fragezeichen?' result = '=?utf-8?q?Was_machen=C3=BC_und_Fragezeichen=3F?=' self.assertEqual(encode_header(src), result) def test_suite(): suite = unittest.TestSuite() suite.addTest(unittest.makeSuite(RFC2822TestCase)) return suite
