import os import getpass import time import glob from slic.utils.sendsms import sendsms, SMS_GATEWAY_ADDRESS def test_sendsms_local_delivery(): # Fake phone number phone_number = "+41000000000" text = "Hello from sendsms test" # Path to Maildir 'new' maildir_new = os.path.expanduser("~/Maildir/new") os.makedirs(maildir_new, exist_ok=True) # Clean up old mails for f in glob.glob(os.path.join(maildir_new, "*")): os.remove(f) # Send SMS (actually sends a local email) msg = sendsms(phone_number, text) # Wait for delivery files = [] for _ in range(50): # ~5 seconds time.sleep(0.1) files = sorted(glob.glob(os.path.join(maildir_new, "*"))) if files: break assert files, f"No message delivered to {maildir_new}" # Read content of the delivered message with open(files[-1], "r", encoding="utf-8", errors="replace") as f: content = f.read() # Check destination email format and body expected_addr = f"{phone_number}@{SMS_GATEWAY_ADDRESS}" assert f"To: {expected_addr}" in content assert text in content