------------------------------------------------------------
revno: 35
committer: Florian Fuchs <[email protected]>
branch nick: mailman.client
timestamp: Tue 2012-09-25 16:26:58 +0200
message:
- addresses can now be accessed as objects (client.get_address(...))
- addresses can be (un)verified with object.verify()/unverify()
modified:
mailman/client/_client.py
mailman/client/docs/using.txt
--
lp:mailman.client
https://code.launchpad.net/~mailman-coders/mailman.client/trunk
Your team Mailman Coders is subscribed to branch lp:mailman.client.
To unsubscribe from this branch go to
https://code.launchpad.net/~mailman-coders/mailman.client/trunk/+edit-subscription
=== modified file 'mailman/client/_client.py'
--- mailman/client/_client.py 2012-09-23 20:52:30 +0000
+++ mailman/client/_client.py 2012-09-25 14:26:58 +0000
@@ -203,7 +203,9 @@
return _Domain(self._connection, response['location'])
def delete_domain(self, mail_host):
- response, content = self._connection.call('domains/{0}'.format(mail_host), None, 'DELETE')
+ response, content = self._connection.call('domains/{0}'
+ .format(mail_host),
+ None, 'DELETE')
def get_domain(self, mail_host=None, web_host=None):
"""Get domain by its mail_host or its web_host."""
@@ -232,6 +234,11 @@
'users/{0}'.format(address))
return _User(self._connection, content['self_link'])
+ def get_address(self, address):
+ response, content = self._connection.call(
+ 'addresses/{0}'.format(address))
+ return _Address(self._connection, content)
+
def get_list(self, fqdn_listname):
response, content = self._connection.call(
'lists/{0}'.format(fqdn_listname))
@@ -633,7 +640,8 @@
def _get_addresses(self):
if self._addresses is None:
- response, content = self._connection.call('users/{0}/addresses'.format(self._user_id))
+ response, content = self._connection.call('users/{0}/addresses'
+ .format(self._user_id))
if 'entries' not in content:
self._addresses = []
self._addresses = content['entries']
@@ -664,24 +672,49 @@
def __init__(self, connection, address):
self._connection = connection
self._address = address
+ self._url = address['self_link']
+ self._info = None
def __repr__(self):
return self._address['email']
+ def _get_info(self):
+ if self._info is None:
+ response, content = self._connection.call(self._url)
+ self._info = content
+
@property
def display_name(self):
- return self._address.get('display_name')
+ self._get_info()
+ return self._info.get('display_name')
@property
def registered_on(self):
- return self._address['registered_on']
+ self._get_info()
+ return self._info.get('registered_on')
+
+ @property
+ def verified_on(self):
+ self._get_info()
+ return self._info.get('verified_on')
+
+ def verify(self):
+ self._connection.call('addresses/{0}/verify'
+ .format(self._address['email']), method='POST')
+ self._info = None
+
+ def unverify(self):
+ self._connection.call('addresses/{0}/unverify'
+ .format(self._address['email']), method='POST')
+ self._info = None
LIST_READ_ONLY_ATTRS = ('bounces_address', 'created_at', 'digest_last_sent_at',
- 'fqdn_listname', 'http_etag', 'mail_host', 'join_address',
- 'last_post_at', 'leave_address', 'list_id', 'list_name',
- 'next_digest_number', 'no_reply_address', 'owner_address',
- 'post_id', 'posting_address', 'request_address', 'scheme',
+ 'fqdn_listname', 'http_etag', 'mail_host',
+ 'join_address', 'last_post_at', 'leave_address',
+ 'list_id', 'list_name', 'next_digest_number',
+ 'no_reply_address', 'owner_address', 'post_id',
+ 'posting_address', 'request_address', 'scheme',
'volume', 'web_host',)
=== modified file 'mailman/client/docs/using.txt'
--- mailman/client/docs/using.txt 2012-09-23 20:52:30 +0000
+++ mailman/client/docs/using.txt 2012-09-25 14:26:58 +0000
@@ -282,6 +282,32 @@
Cris
...
+Addresses can be accessed directly:
+
+ >>> address = client.get_address('[email protected]')
+ >>> print address
+ [email protected]
+ >>> print address.display_name
+ Cris
+
+The address has not been verified:
+
+ >>> print address.verified_on is None
+ True
+
+But that can be done via the address object:
+
+ >>> address.verify()
+ >>> address.verified_on is None
+ False
+
+It can also be unverified:
+
+ >>> address.unverify()
+ >>> address.verified_on is None
+ True
+
+
Users can be added using ``create_user``. The display_name is optional:
>>> client.create_user(email='[email protected]',
... password='somepass',
_______________________________________________
Mailman-coders mailing list
[email protected]
http://mail.python.org/mailman/listinfo/mailman-coders