refactor dovecot tests, move online tests one level up

This commit is contained in:
holger krekel
2023-10-14 11:34:09 +02:00
parent 290933e8b2
commit c7dfd7ca41
6 changed files with 65 additions and 34 deletions

33
online-tests/conftest.py Normal file
View File

@@ -0,0 +1,33 @@
import imaplib
import itertools
import pytest
@pytest.fixture
def imap():
return ImapConn("c1.testrun.org")
class ImapConn:
def __init__(self, host):
self.host = host
def connect(self):
print(f"imap-connect {self.host}")
self.conn = imaplib.IMAP4_SSL(self.host)
def login(self, user, password):
print(f"imap-login {user!r} {password!r}")
self.conn.login(user, password)
@pytest.fixture
def gencreds():
count = itertools.count()
def gen():
while 1:
num = next(count)
yield f"user{num}", f"password{num}"
return lambda: next(gen())

View File

@@ -0,0 +1,18 @@
import pytest
import imaplib
class TestDovecot:
def test_login_ok(self, imap, gencreds):
user, password = gencreds()
imap.connect()
imap.login(user, password)
def test_login_fail(self, imap, gencreds):
user, password = gencreds()
imap.connect()
imap.login(user, password)
imap.connect()
with pytest.raises(imaplib.IMAP4.error) as excinfo:
imap.login(user, password + "wrong")
assert "AUTHENTICATIONFAILED" in str(excinfo)