~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/bugs/tests/bugs-emailinterface.txt

  • Committer: Curtis Hovey
  • Date: 2011-06-08 13:53:29 UTC
  • mfrom: (13176 devel)
  • mto: This revision was merged to the branch mainline in revision 13177.
  • Revision ID: curtis.hovey@canonical.com-20110608135329-5bd42r7afgzcl3lt
Merged devel.

Show diffs side-by-side

added added

removed removed

Lines of Context:
340
340
    ... Date: Fri Jun 17 10:10:23 BST 2005
341
341
    ... Subject: Not important
342
342
    ...
343
 
    ...     summary "Even nicer summary" 
 
343
    ...     summary "Even nicer summary"
344
344
    ... """
345
345
 
346
346
    >>> process_email(edit_mail)
397
397
will provide IWeaklyAuthenticatedPrincipal. Let's mark the current
398
398
principal with that.
399
399
 
400
 
    >>> from canonical.launchpad.interfaces.mail import IWeaklyAuthenticatedPrincipal
 
400
    >>> from canonical.launchpad.interfaces.mail import (
 
401
    ...     IWeaklyAuthenticatedPrincipal,
 
402
    ...     )
401
403
    >>> from zope.interface import directlyProvides, directlyProvidedBy
402
404
    >>> from zope.security.management import queryInteraction
403
405
 
1710
1712
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1711
1713
 
1712
1714
    >>> from lp.registry.interfaces.distribution import IDistributionSet
1713
 
    >>> from lp.registry.interfaces.sourcepackagename import ISourcePackageNameSet
 
1715
    >>> from lp.registry.interfaces.sourcepackagename import (
 
1716
    ...     ISourcePackageNameSet,
 
1717
    ...     )
1714
1718
 
1715
1719
    >>> with lp_dbuser():
1716
1720
    ...     ubuntu = getUtility(IDistributionSet).getByName('ubuntu')
1717
 
    ...     mozilla_name = getUtility(ISourcePackageNameSet)['mozilla-firefox']
 
1721
    ...     moz_name = getUtility(ISourcePackageNameSet)['mozilla-firefox']
1718
1722
    ...     helge = getUtility(IPersonSet).getByName('kreutzm')
1719
 
    ...     mozilla_package = ubuntu.getSourcePackage(mozilla_name)
 
1723
    ...     mozilla_package = ubuntu.getSourcePackage(moz_name)
1720
1724
    ...     ignore = mozilla_package.addBugSubscription(helge, helge)
1721
1725
 
1722
1726
    >>> login('kreutzm@itp.uni-hannover.de')
2026
2030
used to send the error messages. It needs the message that caused the
2027
2031
error, so let's create one.
2028
2032
 
2029
 
    >>> msg = email.message_from_string("""From: foo.bar@canonical.com
 
2033
    >>> test_msg = email.message_from_string("""From: foo.bar@canonical.com
2030
2034
    ... To: bugs@launchpad.net
2031
2035
    ... Message-Id: <original@msg>
2032
2036
    ... Subject: Original Message Subject
2043
2047
    ...     send_process_error_notification)
2044
2048
    >>> send_process_error_notification(
2045
2049
    ...     sampledata.USER_EMAIL, 'Some subject', 'Some error message.',
2046
 
    ...     msg, failing_command=['foo bar'])
 
2050
    ...     test_msg, failing_command=['foo bar'])
2047
2051
 
2048
2052
The To and Subject headers got set to the values we provided:
2049
2053
 
2095
2099
    >>> print msg.get_payload(decode=True)
2096
2100
    Original message body.
2097
2101
 
 
2102
Sometimes the original error was caused by the original message being
 
2103
too large.  In that case we cannot really return the entire original
 
2104
message as our outgoing message will be too big.  So, we can truncate
 
2105
the original message.
 
2106
 
 
2107
    >>> max_return_size = len(str(test_msg)) / 2
 
2108
    >>> send_process_error_notification(
 
2109
    ...     sampledata.USER_EMAIL, 'Some subject', 'Some error message.',
 
2110
    ...     test_msg, failing_command=['foo bar'],
 
2111
    ...     max_return_size=max_return_size)
 
2112
    >>> commit()
 
2113
    >>> from_addr, to_addrs, raw_message = stub.test_emails[-1]
 
2114
    >>> sent_msg = email.message_from_string(raw_message)
 
2115
    >>> failure_msg, original_msg = sent_msg.get_payload()
 
2116
    >>> msg = original_msg.get_payload()[0]
 
2117
    >>> # Fudge due to new line added to the payload.
 
2118
    >>> len(str(msg)) <= (max_return_size + 1)
 
2119
    True
2098
2120
 
2099
2121
Error handling
2100
2122
--------------