diff options
| author | Barry Warsaw | 2007-11-06 18:16:22 -0500 |
|---|---|---|
| committer | Barry Warsaw | 2007-11-06 18:16:22 -0500 |
| commit | d6377c92857c513faf484ef9a91a6b00da789d4b (patch) | |
| tree | c00600e52ec7ad327c947bc9a756e2694478a4d6 /Mailman/database/usermanager.py | |
| parent | 46f480dfaa6286ff8950af817de1c35910b37e16 (diff) | |
| download | mailman-d6377c92857c513faf484ef9a91a6b00da789d4b.tar.gz mailman-d6377c92857c513faf484ef9a91a6b00da789d4b.tar.zst mailman-d6377c92857c513faf484ef9a91a6b00da789d4b.zip | |
Fix two doctests: ack-headers and acknowledgment.
This hacks around an apparent bug in the email package where if you parse a
unicode message string, you still end up getting 8-bit strings out of the
headers, and probably payloads.
The hack is to override Mailman.Message.Message.__getitem__() to force the
header value returned to a Unicode. It must be ASCII but this is required
anyway by RFC 2822. It's not perfect, but it lets us get farther without
forcing a detour into fixing the email package.
Other changes:
- Fix the Address table's references, and also update the subscribe() query.
- Fix the Member table's references and add a __init__().
- Fix Roster's get_member() query.
- Fix the Enum class's variable_class attribute.
- UserManager.create_user() has to use Unicodes for real_name.
Diffstat (limited to 'Mailman/database/usermanager.py')
| -rw-r--r-- | Mailman/database/usermanager.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Mailman/database/usermanager.py b/Mailman/database/usermanager.py index 794b1cda1..6fecfcc8b 100644 --- a/Mailman/database/usermanager.py +++ b/Mailman/database/usermanager.py @@ -33,13 +33,16 @@ class UserManager(object): implements(IUserManager) def create_user(self, address=None, real_name=None): + # Avoid circular imports. + from Mailman.database.model import Address, Preferences, User user = User() - user.real_name = ('' if real_name is None else real_name) + user.real_name = (u'' if real_name is None else real_name) if address: addrobj = Address(address, user.real_name) addrobj.preferences = Preferences() user.link(addrobj) user.preferences = Preferences() + config.db.store.add(user) return user def delete_user(self, user): |
