1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
"""
:Copyright: 2014-2025 Jochen Kupperschmidt
:License: Revised BSD (see `LICENSE` file for details)
"""

from secret_type import secret

from byceps.services.authn.password import authn_password_domain_service


def test_update_password_hash(admin_user, user):
    (
        credential,
        event,
        log_entry,
    ) = authn_password_domain_service.update_password_hash(
        user, secret('ReplacementPassw0rd'), admin_user
    )

    assert credential.user_id == user.id
    assert credential.password_hash is not None

    assert event.initiator is not None
    assert event.initiator.id == admin_user.id
    assert event.initiator.screen_name == admin_user.screen_name
    assert event.user.id == user.id
    assert event.user.screen_name == user.screen_name

    assert log_entry.event_type == 'password-updated'
    assert log_entry.data == {}