~sambuddhabasu1/mailman/fix_mailman_run_error

Viewing all changes in revision 7125.

  • Committer: Barry Warsaw
  • Date: 2012-03-22 22:29:58 UTC
  • Revision ID: barry@list.org-20120322222958-k1ufc2xivw8cv2d5
Several fixes and cleanups, ostensibly to fix Python 2.6 support.

- email.iterators.body_line_iterator() cannot handle unicodes in Python 2.6,
  because it uses cStringIO.StringIO under the covers, and *that* can't handle
  unicode.  This works fine in Python 2.7, so I override this for the tests
  only under 2.6 (the code itself isn't affected).

- AddressError needs to str() its IAddress attribute explicitly in the
  __str__() method, otherwise under Python 2.6, you'll get unprintable reprs
  in the doctests.  Again, this works correctly in 2.7, but EIBTI, so it can't
  hurt either way.

- EmailError: a new exception, not related to AddressError.  The reason for
  this it to conform to current nomenclature: "address" means an IAddress
  while "email" means a text email address.  So InvalidEmailAddressError
  now derives from EmailError instead of AddressError because it gets passed a
  text email address, and because that is invalid, it never gets turned into
  an IAddress.  The __str__() of this new base exception class does some
  tricky encoding to keep it compatible between Python 2.6 and 2.7.

- UnverifiedAddressError derives from AddressError instead of the more generic
  MailmanError.

- A few random code cleanups are included.

expand all expand all

Show diffs side-by-side

added added

removed removed

Lines of Context: