PCQRSCANER/venv/Lib/site-packages/imapclient/test/test_util_functions.py

160 lines
4.1 KiB
Python
Raw Permalink Normal View History

2019-12-22 21:51:47 +01:00
# Copyright (c) 2014, Menno Smits
# Released subject to the New BSD License
# Please see http://en.wikipedia.org/wiki/BSD_licenses
from __future__ import unicode_literals
from imapclient.imapclient import (
join_message_ids,
_normalise_search_criteria,
normalise_text_list,
seq_to_parenstr,
seq_to_parenstr_upper,
)
from imapclient.test.util import unittest
class Test_normalise_text_list(unittest.TestCase):
def check(self, items, expected):
self.assertEqual(normalise_text_list(items), expected)
def test_unicode(self):
self.check('Foo', ['Foo'])
def test_binary(self):
self.check(b'FOO', ['FOO'])
def test_tuple(self):
self.check(('FOO', 'BAR'), ['FOO', 'BAR'])
def test_list(self):
self.check(['FOO', 'BAR'], ['FOO', 'BAR'])
def test_iter(self):
self.check(iter(['FOO', 'BAR']), ['FOO', 'BAR'])
def test_mixed_list(self):
self.check(['FOO', b'Bar'], ['FOO', 'Bar'])
class Test_seq_to_parenstr(unittest.TestCase):
def check(self, items, expected):
self.assertEqual(seq_to_parenstr(items), expected)
def test_unicode(self):
self.check('foO', '(foO)')
def test_binary(self):
self.check(b'Foo', '(Foo)')
def test_tuple(self):
self.check(('FOO', 'BAR'), '(FOO BAR)')
def test_list(self):
self.check(['FOO', 'BAR'], '(FOO BAR)')
def test_iter(self):
self.check(iter(['FOO', 'BAR']), '(FOO BAR)')
def test_mixed_list(self):
self.check(['foo', b'BAR'], '(foo BAR)')
class Test_seq_to_parenstr_upper(unittest.TestCase):
def check(self, items, expected):
self.assertEqual(seq_to_parenstr_upper(items), expected)
def test_unicode(self):
self.check('foO', '(FOO)')
def test_binary(self):
self.check(b'Foo', '(FOO)')
def test_tuple(self):
self.check(('foo', 'BAR'), '(FOO BAR)')
def test_list(self):
self.check(['FOO', 'bar'], '(FOO BAR)')
def test_iter(self):
self.check(iter(['FOO', 'BaR']), '(FOO BAR)')
def test_mixed_list(self):
self.check(['foo', b'BAR'], '(FOO BAR)')
class Test_join_message_ids(unittest.TestCase):
def check(self, items, expected):
self.assertEqual(join_message_ids(items), expected)
def test_int(self):
self.check(123, b'123')
def test_unicode(self):
self.check('123', b'123')
def test_unicode_non_numeric(self):
self.check('2:*', b'2:*')
def test_binary(self):
self.check(b'123', b'123')
def test_binary_non_numeric(self):
self.check(b'2:*', b'2:*')
def test_tuple(self):
self.check((123, 99), b'123,99')
def test_mixed_list(self):
self.check(['2:3', 123, b'44'], b'2:3,123,44')
def test_iter(self):
self.check(iter([123, 99]), b'123,99')
class Test_normalise_search_criteria(unittest.TestCase):
def check(self, criteria, charset, expected):
self.assertEqual(_normalise_search_criteria(criteria, charset), expected)
def test_list(self):
self.check(['FOO', '\u263a'], 'utf-8', [b'FOO', b'\xe2\x98\xba'])
def test_tuple(self):
self.check(('FOO', 'BAR'), None, [b'FOO', b'BAR'])
def test_mixed_list(self):
self.check(['FOO', b'BAR'], None, [b'FOO', b'BAR'])
def test_quoting(self):
self.check(['foo bar'], None, [b'"foo bar"'])
def test_ints(self):
self.check(['modseq', 500], None, [b'modseq', b'500'])
def test_unicode(self):
self.check('Foo', None, [b'Foo'])
def test_binary(self):
self.check(b'FOO', None, [b'FOO'])
def test_unicode_with_charset(self):
self.check('\u263a', 'UTF-8', [b'\xe2\x98\xba'])
def test_binary_with_charset(self):
# charset is unused when criteria is binary.
self.check(b'FOO', 'UTF-9', [b'FOO'])
def test_no_quoting_when_criteria_given_as_string(self):
self.check('foo bar', None, [b'foo bar'])
def test_None(self):
self.assertRaises(ValueError, _normalise_search_criteria, None, None)
def test_empty(self):
self.assertRaises(ValueError, _normalise_search_criteria, '', None)