mirror of
https://github.com/chatmail/relay.git
synced 2026-05-15 19:14:44 +00:00
* draft blocking of incoming non-encrypted mail * create a new enforceE2EE file in address dirs by default and only accept incoming cleartext file if the enforceE2EE file is missing * Update cmdeploy/src/cmdeploy/service/filtermail.service.f Co-authored-by: l <link2xt@testrun.org> * fix benchmark so they setup encryption * hack around limitations of aiosmtpd's handliung of RCPTO options * add tests, and split incoming/outgoing handlers for clarity * document mailbox directory structure, some streamlining of features/E2EE in intro * use SMTP response code "523 Encryption Needed" * filtermail: care for the case that the recipient does not exist Co-authored-by: missytake <missytake@systemli.org> * Update chatmaild/src/chatmaild/filtermail.py Co-authored-by: l <link2xt@testrun.org> * Update chatmaild/src/chatmaild/filtermail.py Co-authored-by: l <link2xt@testrun.org> * remove debug info print * ensure multipart/report type for mailer-daemon messages * Allow sending out Autocrypt Setup Messages --------- Co-authored-by: l <link2xt@testrun.org> Co-authored-by: missytake <missytake@systemli.org>
57 lines
1.8 KiB
Python
57 lines
1.8 KiB
Python
def test_login_timestamp(testaddr, example_config):
|
|
user = example_config.get_user(testaddr)
|
|
user.set_password("someeqkjwelkqwjleqwe")
|
|
user.set_last_login_timestamp(100000)
|
|
assert user.get_last_login_timestamp() == 86400
|
|
|
|
user.set_last_login_timestamp(200000)
|
|
assert user.get_last_login_timestamp() == 86400 * 2
|
|
|
|
|
|
def test_get_user_dict_not_set(testaddr, example_config, caplog):
|
|
user = example_config.get_user(testaddr)
|
|
assert not caplog.records
|
|
assert user.get_userdb_dict() == {}
|
|
assert len(caplog.records) == 0
|
|
|
|
user.set_password("")
|
|
assert user.get_userdb_dict() == {}
|
|
assert len(caplog.records) == 1
|
|
|
|
|
|
def test_get_user_dict(make_config, tmp_path):
|
|
config = make_config("something.testrun.org")
|
|
addr = "user1@something.org"
|
|
user = config.get_user(addr)
|
|
enc_password = "l1k2j31lk2j3l1k23j123"
|
|
user.set_password(enc_password)
|
|
data = user.get_userdb_dict()
|
|
assert addr in str(data["home"])
|
|
assert data["uid"] == "vmail"
|
|
assert data["gid"] == "vmail"
|
|
assert data["password"] == enc_password
|
|
|
|
|
|
def test_no_mailboxes_dir(testaddr, example_config, tmp_path):
|
|
p = tmp_path.joinpath("a", "mailboxes")
|
|
example_config.mailboxes_dir = p
|
|
|
|
user = example_config.get_user(testaddr)
|
|
user.set_password("someeqkjwelkqwjleqwe")
|
|
user.set_last_login_timestamp(100000)
|
|
assert user.get_last_login_timestamp() == 86400
|
|
|
|
|
|
def test_set_get_cleartext_flag(testaddr, example_config, tmp_path):
|
|
p = tmp_path.joinpath("a", "mailboxes")
|
|
example_config.mailboxes_dir = p
|
|
|
|
user = example_config.get_user(testaddr)
|
|
user.set_password("someeqkjwelkqwjleqwe")
|
|
user.set_last_login_timestamp(100000)
|
|
assert user.get_last_login_timestamp() == 86400
|
|
|
|
assert not user.is_incoming_cleartext_ok()
|
|
user.allow_incoming_cleartext()
|
|
assert user.is_incoming_cleartext_ok()
|