(self)
| 984 | @threading_helper.reap_threads |
| 985 | @hashlib_helper.requires_hashdigest('md5', openssl=True) |
| 986 | def test_login_cram_md5(self): |
| 987 | |
| 988 | class AuthHandler(SimpleIMAPHandler): |
| 989 | |
| 990 | capabilities = 'LOGINDISABLED AUTH=CRAM-MD5' |
| 991 | |
| 992 | def cmd_AUTHENTICATE(self, tag, args): |
| 993 | self._send_textline('+ PDE4OTYuNjk3MTcwOTUyQHBvc3RvZmZpY2Uucm' |
| 994 | 'VzdG9uLm1jaS5uZXQ=') |
| 995 | r = yield |
| 996 | if (r == b'dGltIGYxY2E2YmU0NjRiOWVmYT' |
| 997 | b'FjY2E2ZmZkNmNmMmQ5ZjMy\r\n'): |
| 998 | self._send_tagged(tag, 'OK', 'CRAM-MD5 successful') |
| 999 | else: |
| 1000 | self._send_tagged(tag, 'NO', 'No access') |
| 1001 | |
| 1002 | with self.reaped_pair(AuthHandler) as (server, client): |
| 1003 | self.assertTrue('AUTH=CRAM-MD5' in client.capabilities) |
| 1004 | ret, data = client.login_cram_md5("tim", "tanstaaftanstaaf") |
| 1005 | self.assertEqual(ret, "OK") |
| 1006 | |
| 1007 | with self.reaped_pair(AuthHandler) as (server, client): |
| 1008 | self.assertTrue('AUTH=CRAM-MD5' in client.capabilities) |
| 1009 | ret, data = client.login_cram_md5("tim", b"tanstaaftanstaaf") |
| 1010 | self.assertEqual(ret, "OK") |
| 1011 | |
| 1012 | |
| 1013 | @threading_helper.reap_threads |
nothing calls this directly
no test coverage detected