summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2018-02-21 09:13:05 -0800
committerDylan Baker <dylan@pnwbakers.com>2018-03-01 10:34:56 -0800
commitd61975d90f6cb5372c9973fa6cec340aed0b1502 (patch)
treed7005abca4632a6be31d08340ce6182fe2f468ed
parent6f504afe0bfd3111e0893d7ce6786316b6ebac04 (diff)
fix account.py
-rw-r--r--alot/account.py52
-rw-r--r--tests/account_test.py118
2 files changed, 85 insertions, 85 deletions
diff --git a/alot/account.py b/alot/account.py
index c672686d..03f65561 100644
--- a/alot/account.py
+++ b/alot/account.py
@@ -65,16 +65,16 @@ class Address(object):
usage treat user names as case-insensitve. Therefore we also, by default,
treat the user name as case insenstive.
- :param unicode user: The "user name" portion of the address.
- :param unicode domain: The domain name portion of the address.
+ :param str user: The "user name" portion of the address.
+ :param str domain: The domain name portion of the address.
:param bool case_sensitive: If False (the default) the user name portion of
the address will be compared to the other user name portion without
regard to case. If True then it will.
"""
def __init__(self, user, domain, case_sensitive=False):
- assert isinstance(user, unicode), 'Username must be unicode'
- assert isinstance(domain, unicode), 'Domain name must be unicode'
+ assert isinstance(user, str), 'Username must be str'
+ assert isinstance(domain, str), 'Domain name must be str'
self.username = user
self.domainname = domain
self.case_sensitive = case_sensitive
@@ -83,27 +83,27 @@ class Address(object):
def from_string(cls, address, case_sensitive=False):
"""Alternate constructor for building from a string.
- :param unicode address: An email address in <user>@<domain> form
+ :param str address: An email address in <user>@<domain> form
:param bool case_sensitive: passed directly to the constructor argument
of the same name.
:returns: An account from the given arguments
:rtype: :class:`Account`
"""
- assert isinstance(address, unicode), 'address must be unicode'
- username, domainname = address.split(u'@')
+ assert isinstance(address, str), 'address must be str'
+ username, domainname = address.split('@')
return cls(username, domainname, case_sensitive=case_sensitive)
def __repr__(self):
- return u'Address({!r}, {!r}, case_sensitive={})'.format(
+ return 'Address({!r}, {!r}, case_sensitive={})'.format(
self.username,
self.domainname,
- unicode(self.case_sensitive))
-
- def __unicode__(self):
- return u'{}@{}'.format(self.username, self.domainname)
+ str(self.case_sensitive))
def __str__(self):
- return u'{}@{}'.format(self.username, self.domainname).encode('utf-8')
+ return '{}@{}'.format(self.username, self.domainname)
+
+ def __bytes__(self):
+ return '{}@{}'.format(self.username, self.domainname).encode('utf-8')
def __cmp(self, other, comparitor):
"""Shared helper for rich comparison operators.
@@ -113,24 +113,24 @@ class Address(object):
If the username is not considered case sensitive then lower the
username of both self and the other, and handle that the other can be
- either another :class:`~alot.account.Address`, or a `unicode` instance.
+ either another :class:`~alot.account.Address`, or a `str` instance.
:param other: The other address to compare against
- :type other: unicode or ~alot.account.Address
+ :type other: str or ~alot.account.Address
:param callable comparitor: A function with the a signature
- (unicode, unicode) -> bool that will compare the two instance.
+ (str, str) -> bool that will compare the two instance.
The intention is to use functions from the operator module.
"""
- if isinstance(other, unicode):
+ if isinstance(other, str):
try:
- ouser, odomain = other.split(u'@')
+ ouser, odomain = other.split('@')
except ValueError:
- ouser, odomain = u'', u''
- elif isinstance(other, str):
+ ouser, odomain = '', ''
+ elif isinstance(other, bytes):
try:
- ouser, odomain = other.decode('utf-8').split(u'@')
+ ouser, odomain = other.decode('utf-8').split('@')
except ValueError:
- ouser, odomain = '', ''
+ ouser, odomain = b'', b''
else:
ouser = other.username
odomain = other.domainname
@@ -145,13 +145,13 @@ class Address(object):
comparitor(self.domainname.lower(), odomain.lower()))
def __eq__(self, other):
- if not isinstance(other, (Address, basestring)):
- raise TypeError('Address must be compared to Address or basestring')
+ if not isinstance(other, (Address, (str, bytes))):
+ raise TypeError('Address must be compared to Address, str, or bytes')
return self.__cmp(other, operator.eq)
def __ne__(self, other):
- if not isinstance(other, (Address, basestring)):
- raise TypeError('Address must be compared to Address or basestring')
+ if not isinstance(other, (Address, (str, bytes))):
+ raise TypeError('Address must be compared to Address,str, or bytes')
# != is the only rich comparitor that cannot be implemented using 'and'
# in self.__cmp, so it's implemented as not ==.
return not self.__cmp(other, operator.eq)
diff --git a/tests/account_test.py b/tests/account_test.py
index cfc51bf8..959d4c7c 100644
--- a/tests/account_test.py
+++ b/tests/account_test.py
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-from __future__ import absolute_import
+
import unittest
from alot import account
@@ -32,26 +32,26 @@ class TestAccount(unittest.TestCase):
def test_get_address(self):
"""Tests address without aliases."""
- acct = _AccountTestClass(address=u"foo@example.com")
- self.assertListEqual(acct.get_addresses(), [u'foo@example.com'])
+ acct = _AccountTestClass(address="foo@example.com")
+ self.assertListEqual(acct.get_addresses(), ['foo@example.com'])
def test_get_address_with_aliases(self):
"""Tests address with aliases."""
- acct = _AccountTestClass(address=u"foo@example.com",
- aliases=[u'bar@example.com'])
+ acct = _AccountTestClass(address="foo@example.com",
+ aliases=['bar@example.com'])
self.assertListEqual(acct.get_addresses(),
- [u'foo@example.com', u'bar@example.com'])
+ ['foo@example.com', 'bar@example.com'])
def test_deprecated_encrypt_by_default(self):
"""Tests that depreacted values are still accepted."""
- for each in [u'true', u'yes', u'1']:
- acct = _AccountTestClass(address=u'foo@example.com',
+ for each in ['true', 'yes', '1']:
+ acct = _AccountTestClass(address='foo@example.com',
encrypt_by_default=each)
- self.assertEqual(acct.encrypt_by_default, u'all')
- for each in [u'false', u'no', u'0']:
- acct = _AccountTestClass(address=u'foo@example.com',
+ self.assertEqual(acct.encrypt_by_default, 'all')
+ for each in ['false', 'no', '0']:
+ acct = _AccountTestClass(address='foo@example.com',
encrypt_by_default=each)
- self.assertEqual(acct.encrypt_by_default, u'none')
+ self.assertEqual(acct.encrypt_by_default, 'none')
class TestAddress(unittest.TestCase):
@@ -67,103 +67,103 @@ class TestAddress(unittest.TestCase):
account.Address.from_string(b'user@example.com')
def test_from_string(self):
- addr = account.Address.from_string(u'user@example.com')
- self.assertEqual(addr.username, u'user')
- self.assertEqual(addr.domainname, u'example.com')
-
- def test_unicode(self):
- addr = account.Address(u'ušer', u'example.com')
- self.assertEqual(unicode(addr), u'ušer@example.com')
+ addr = account.Address.from_string('user@example.com')
+ self.assertEqual(addr.username, 'user')
+ self.assertEqual(addr.domainname, 'example.com')
def test_str(self):
- addr = account.Address(u'ušer', u'example.com')
- self.assertEqual(str(addr), u'ušer@example.com'.encode('utf-8'))
+ addr = account.Address('ušer', 'example.com')
+ self.assertEqual(str(addr), 'ušer@example.com')
+
+ def test_bytes(self):
+ addr = account.Address('ušer', 'example.com')
+ self.assertEqual(bytes(addr), 'ušer@example.com'.encode('utf-8'))
def test_eq_unicode(self):
- addr = account.Address(u'ušer', u'example.com')
- self.assertEqual(addr, u'ušer@example.com')
+ addr = account.Address('ušer', 'example.com')
+ self.assertEqual(addr, 'ušer@example.com')
def test_eq_address(self):
- addr = account.Address(u'ušer', u'example.com')
- addr2 = account.Address(u'ušer', u'example.com')
+ addr = account.Address('ušer', 'example.com')
+ addr2 = account.Address('ušer', 'example.com')
self.assertEqual(addr, addr2)
def test_ne_unicode(self):
- addr = account.Address(u'ušer', u'example.com')
- self.assertNotEqual(addr, u'user@example.com')
+ addr = account.Address('ušer', 'example.com')
+ self.assertNotEqual(addr, 'user@example.com')
def test_ne_address(self):
- addr = account.Address(u'ušer', u'example.com')
- addr2 = account.Address(u'user', u'example.com')
+ addr = account.Address('ušer', 'example.com')
+ addr2 = account.Address('user', 'example.com')
self.assertNotEqual(addr, addr2)
def test_eq_unicode_case(self):
- addr = account.Address(u'UŠer', u'example.com')
- self.assertEqual(addr, u'ušer@example.com')
+ addr = account.Address('UŠer', 'example.com')
+ self.assertEqual(addr, 'ušer@example.com')
def test_ne_unicode_case(self):
- addr = account.Address(u'ušer', u'example.com')
- self.assertEqual(addr, u'uŠer@example.com')
+ addr = account.Address('ušer', 'example.com')
+ self.assertEqual(addr, 'uŠer@example.com')
def test_ne_address_case(self):
- addr = account.Address(u'ušer', u'example.com')
- addr2 = account.Address(u'uŠer', u'example.com')
+ addr = account.Address('ušer', 'example.com')
+ addr2 = account.Address('uŠer', 'example.com')
self.assertEqual(addr, addr2)
def test_eq_address_case(self):
- addr = account.Address(u'UŠer', u'example.com')
- addr2 = account.Address(u'ušer', u'example.com')
+ addr = account.Address('UŠer', 'example.com')
+ addr2 = account.Address('ušer', 'example.com')
self.assertEqual(addr, addr2)
def test_eq_unicode_case_sensitive(self):
- addr = account.Address(u'UŠer', u'example.com', case_sensitive=True)
- self.assertNotEqual(addr, u'ušer@example.com')
+ addr = account.Address('UŠer', 'example.com', case_sensitive=True)
+ self.assertNotEqual(addr, 'ušer@example.com')
def test_eq_address_case_sensitive(self):
- addr = account.Address(u'UŠer', u'example.com', case_sensitive=True)
- addr2 = account.Address(u'ušer', u'example.com')
+ addr = account.Address('UŠer', 'example.com', case_sensitive=True)
+ addr2 = account.Address('ušer', 'example.com')
self.assertNotEqual(addr, addr2)
def test_eq_str(self):
- addr = account.Address(u'user', u'example.com', case_sensitive=True)
+ addr = account.Address('user', 'example.com', case_sensitive=True)
with self.assertRaises(TypeError):
addr == 1 # pylint: disable=pointless-statement
def test_ne_str(self):
- addr = account.Address(u'user', u'example.com', case_sensitive=True)
+ addr = account.Address('user', 'example.com', case_sensitive=True)
with self.assertRaises(TypeError):
addr != 1 # pylint: disable=pointless-statement
def test_repr(self):
- addr = account.Address(u'user', u'example.com', case_sensitive=True)
+ addr = account.Address('user', 'example.com', case_sensitive=True)
self.assertEqual(
repr(addr),
- "Address(u'user', u'example.com', case_sensitive=True)")
+ "Address('user', 'example.com', case_sensitive=True)")
def test_domain_name_ne(self):
- addr = account.Address(u'user', u'example.com')
- self.assertNotEqual(addr, u'user@example.org')
+ addr = account.Address('user', 'example.com')
+ self.assertNotEqual(addr, 'user@example.org')
def test_domain_name_eq_case(self):
- addr = account.Address(u'user', u'example.com')
- self.assertEqual(addr, u'user@Example.com')
+ addr = account.Address('user', 'example.com')
+ self.assertEqual(addr, 'user@Example.com')
def test_domain_name_ne_unicode(self):
- addr = account.Address(u'user', u'éxample.com')
- self.assertNotEqual(addr, u'user@example.com')
+ addr = account.Address('user', 'éxample.com')
+ self.assertNotEqual(addr, 'user@example.com')
def test_domain_name_eq_unicode(self):
- addr = account.Address(u'user', u'éxample.com')
- self.assertEqual(addr, u'user@Éxample.com')
+ addr = account.Address('user', 'éxample.com')
+ self.assertEqual(addr, 'user@Éxample.com')
def test_domain_name_eq_case_sensitive(self):
- addr = account.Address(u'user', u'example.com', case_sensitive=True)
- self.assertEqual(addr, u'user@Example.com')
+ addr = account.Address('user', 'example.com', case_sensitive=True)
+ self.assertEqual(addr, 'user@Example.com')
def test_domain_name_eq_unicode_sensitive(self):
- addr = account.Address(u'user', u'éxample.com', case_sensitive=True)
- self.assertEqual(addr, u'user@Éxample.com')
+ addr = account.Address('user', 'éxample.com', case_sensitive=True)
+ self.assertEqual(addr, 'user@Éxample.com')
def test_cmp_empty(self):
- addr = account.Address(u'user', u'éxample.com')
- self.assertNotEqual(addr, u'')
+ addr = account.Address('user', 'éxample.com')
+ self.assertNotEqual(addr, '')