Fichiers
mail2sms/tests/test_main.py
T
jimmyGALLAND 9b4759b4d1
Build and Push Docker Image / test-and-build (push) Successful in 46s
Initial commit
2026-02-25 23:50:50 +01:00

56 lignes
1.9 KiB
Python

import json
import pytest
import os
from mail2sms.main import extract_parameters, send_sms, TEST_MODE
# ------------------------------
# TEST: Params extract
# ------------------------------
def test_extract_full_parameters():
subject = "Login=myuser;Password=mypass;To=+33612345678;deviceId=ABC123;simNumber=2"
to, device, sim, login, passwd = extract_parameters(subject)
assert to == "+33612345678"
assert device == "ABC123"
assert sim == "2"
assert login == "myuser"
assert passwd == "mypass"
def test_extract_partial_parameters():
subject = "to=+33612345678;Login=apiuser;Password=apipass"
to, device, sim, login, passwd = extract_parameters(subject)
assert to == "+33612345678"
assert device is None
assert sim is None
assert login == "apiuser"
assert passwd == "apipass"
def test_extract_case_insensitive():
subject = "login=USER;password=PASS;to=+33600000000;deviceId=Dev1;simNumber=1"
to, device, sim, login, passwd = extract_parameters(subject)
assert to == "+33600000000"
assert device == "Dev1"
assert sim == "1"
assert login == "USER"
assert passwd == "PASS"
def test_extract_invalid_subject():
subject = "hello world"
to, device, sim, login, passwd = extract_parameters(subject)
assert to is None
assert device is None
assert sim is None
assert login is None
assert passwd is None
# ------------------------------
# TEST: fake SMS send
# ------------------------------
def test_fake_sms_send(monkeypatch):
monkeypatch.setenv("TEST_MODE", "true")
payload = {"textMessage": {"text": "Hello world"}, "phoneNumbers": ["+33612345678"]}
response = send_sms(payload, username="fakeuser", password="fakepass")
assert response.status_code == 202
resp_json = json.loads(response.text)
assert resp_json["state"] == "Sent"