update imap fixture, now using Imbox
This commit is contained in:
parent
b7a8ed1f86
commit
e4846fc6bb
1 changed files with 34 additions and 9 deletions
|
|
@ -3,11 +3,12 @@
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
from imaplib import IMAP4_SSL
|
from datetime import datetime, timedelta
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from dotenv import dotenv_values
|
from dotenv import dotenv_values
|
||||||
|
from imbox import Imbox
|
||||||
from playwright.sync_api import BrowserContext, expect
|
from playwright.sync_api import BrowserContext, expect
|
||||||
from pytest import Parser
|
from pytest import Parser
|
||||||
|
|
||||||
|
|
@ -94,15 +95,39 @@ def URL(env_config: dict[str, str]) -> BaseUrl:
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope="session")
|
@pytest.fixture(scope="session")
|
||||||
def imap_ssl_email_client() -> None:
|
def imap_client() -> None:
|
||||||
|
"""imap email client using credentials from environment variables"""
|
||||||
|
|
||||||
assert os.environ["IMAP_HOST"]
|
assert os.environ["IMAP_HOST"]
|
||||||
assert os.environ["IMAP_PORT"]
|
assert os.environ["IMAP_PORT"]
|
||||||
assert os.environ["IMAP_USER"]
|
assert os.environ["IMAP_USER"]
|
||||||
assert os.environ["IMAP_PASS"]
|
assert os.environ["IMAP_PASS"]
|
||||||
port = int(os.environ["IMAP_PORT"])
|
|
||||||
imap_client = IMAP4_SSL(host=os.environ["IMAP_HOST"], port=port)
|
imbox = Imbox(
|
||||||
imap_client.login(os.environ["IMAP_USER"], os.environ["IMAP_PASS"])
|
hostname=os.environ["IMAP_HOST"],
|
||||||
imap_client.select("INBOX")
|
port=os.environ["IMAP_PORT"],
|
||||||
yield imap_client
|
username=os.environ["IMAP_USER"],
|
||||||
imap_client.close()
|
password=os.environ["IMAP_PASS"],
|
||||||
imap_client.logout()
|
ssl=True,
|
||||||
|
ssl_context=None,
|
||||||
|
starttls=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
yield imbox
|
||||||
|
|
||||||
|
imbox.logout()
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def imap_recent_messages(imap_client: Imbox, n_minutes: int):
|
||||||
|
"""Get all messages from [n_minutes] ago till now.
|
||||||
|
|
||||||
|
# iterate with
|
||||||
|
for uid, message in messages:
|
||||||
|
print(uid, message.subject, message.date)"""
|
||||||
|
|
||||||
|
n_minutes_ago = datetime.now() - timedelta(minutes=n_minutes)
|
||||||
|
uids_and_messages = imap_client.messages(date__gt=n_minutes_ago)
|
||||||
|
uids, messages = zip(*uids_and_messages)
|
||||||
|
print(type(messages))
|
||||||
|
return messages
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue