summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_imaplib.py
diff options
context:
space:
mode:
authorDong-hee Na <donghee.na92@gmail.com>2020-04-27 14:52:55 (GMT)
committerGitHub <noreply@github.com>2020-04-27 14:52:55 (GMT)
commitc5c42815ecb560bbf34db99b0e15fe9b604be889 (patch)
tree819b18345d9d082af9ed6db4e51e9ab566a31538 /Lib/test/test_imaplib.py
parent91a5ae18351027867e99c96db5ea235d9c42e47a (diff)
downloadcpython-c5c42815ecb560bbf34db99b0e15fe9b604be889.zip
cpython-c5c42815ecb560bbf34db99b0e15fe9b604be889.tar.gz
cpython-c5c42815ecb560bbf34db99b0e15fe9b604be889.tar.bz2
bpo-40375: Implement imaplib.IMAP4.unselect (GH-19712)
Diffstat (limited to 'Lib/test/test_imaplib.py')
-rw-r--r--Lib/test/test_imaplib.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/Lib/test/test_imaplib.py b/Lib/test/test_imaplib.py
index 7645666..69ee63b 100644
--- a/Lib/test/test_imaplib.py
+++ b/Lib/test/test_imaplib.py
@@ -116,6 +116,7 @@ class SimpleIMAPHandler(socketserver.StreamRequestHandler):
def setup(self):
super().setup()
+ self.server.is_selected = False
self.server.logged = None
def _send(self, message):
@@ -190,6 +191,18 @@ class SimpleIMAPHandler(socketserver.StreamRequestHandler):
self.server.logged = args[0]
self._send_tagged(tag, 'OK', 'LOGIN completed')
+ def cmd_SELECT(self, tag, args):
+ self.server.is_selected = True
+ self._send_line(b'* 2 EXISTS')
+ self._send_tagged(tag, 'OK', '[READ-WRITE] SELECT completed.')
+
+ def cmd_UNSELECT(self, tag, args):
+ if self.server.is_selected:
+ self.server.is_selected = False
+ self._send_tagged(tag, 'OK', 'Returned to authenticated state. (Success)')
+ else:
+ self._send_tagged(tag, 'BAD', 'No mailbox selected')
+
class NewIMAPTestsMixin():
client = None
@@ -511,6 +524,18 @@ class NewIMAPTestsMixin():
self.assertEqual(typ, 'OK')
self.assertEqual(data[0], b'() "." directoryA')
+ def test_unselect(self):
+ client, _ = self._setup(SimpleIMAPHandler)
+ client.login('user', 'pass')
+ typ, data = client.select()
+ self.assertEqual(typ, 'OK')
+ self.assertEqual(data[0], b'2')
+
+ typ, data = client.unselect()
+ self.assertEqual(typ, 'OK')
+ self.assertEqual(data[0], b'Returned to authenticated state. (Success)')
+ self.assertEqual(client.state, 'AUTH')
+
class NewIMAPTests(NewIMAPTestsMixin, unittest.TestCase):
imap_class = imaplib.IMAP4