From d8c764f5b32bb104dc9b0a517a81e4845dc07bed Mon Sep 17 00:00:00 2001 From: Lucas Hoffmann Date: Fri, 9 Jun 2017 11:11:48 +0200 Subject: Add test for db.utils.encode_header --- tests/db/utils_test.py | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'tests') diff --git a/tests/db/utils_test.py b/tests/db/utils_test.py index 2bbfaffd..83c001aa 100644 --- a/tests/db/utils_test.py +++ b/tests/db/utils_test.py @@ -5,6 +5,7 @@ from __future__ import absolute_import import email +import email.header import os import os.path import unittest @@ -148,3 +149,43 @@ class TestExtractHeader(unittest.TestCase): actual = utils.extract_headers(self.mail, ['x-quoted']) expected = u"x-quoted: param=utf-8''%C3%9Cmlaut; second=plain%C3%9C\n", self.assertEqual(actual, expected) + + +class TestEncodeHeader(unittest.TestCase): + + def test_only_value_is_used_in_output(self): + actual = utils.encode_header('x-key', 'value') + expected = email.header.Header('value') + self.assertEqual(actual, expected) + + def test_unicode_chars_are_encoded(self): + actual = utils.encode_header('x-key', u'välüe') + expected = email.header.Header('=?utf-8?b?dsOkbMO8ZQ==?=') + self.assertEqual(actual, expected) + + def test_space_around_email_address_is_striped(self): + address = ' someone ' + actual = utils.encode_header('from', address) + expected = email.header.Header(address.strip()) + self.assertEqual(actual, expected) + + def test_spaces_in_user_names_are_accepted(self): + address = 'some one ' + actual = utils.encode_header('from', address) + expected = email.header.Header(address) + self.assertEqual(actual, expected) + + def test_multible_addresses_can_be_given(self): + addresses = 'one , other , ' \ + 'last ' + actual = utils.encode_header('from', addresses) + expected = email.header.Header(addresses) + self.assertEqual(actual, expected) + + @unittest.expectedFailure + def test_comma_in_names_are_allowed(self): + addresses = '"last, first" , ' \ + '"name, other" ' + actual = utils.encode_header('from', addresses) + expected = email.header.Header(addresses) + self.assertEqual(str(actual), str(expected)) -- cgit v1.2.3