diff options
author | Dong-hee Na <donghee.na92@gmail.com> | 2020-04-27 14:52:55 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-27 14:52:55 (GMT) |
commit | c5c42815ecb560bbf34db99b0e15fe9b604be889 (patch) | |
tree | 819b18345d9d082af9ed6db4e51e9ab566a31538 /Lib/test/test_imaplib.py | |
parent | 91a5ae18351027867e99c96db5ea235d9c42e47a (diff) | |
download | cpython-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.py | 25 |
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 |