Passed
Push — master ( a23055...584f3d )
by Jochen
02:14
created

test_initialize_account()   A

Complexity

Conditions 1

Size

Total Lines 26
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 16
nop 1
dl 0
loc 26
rs 9.6
c 0
b 0
f 0
1
"""
2
:Copyright: 2006-2019 Jochen Kupperschmidt
3
:License: Modified BSD, see LICENSE for details.
4
"""
5
6
import pytest
7
from pytest import raises
8
9
from byceps.services.user import command_service as user_command_service
10
from byceps.services.user import event_service
11
12
from tests.helpers import create_user
13
14
from ...conftest import database_recreated
15
16
17
@pytest.fixture(scope='module')
1 ignored issue
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
18
def app(admin_app, db):
19
    with admin_app.app_context():
20
        with database_recreated(db):
21
            _app = admin_app
22
23
            admin = create_user('Administrator')
24
            _app.admin_id = admin.id
25
26
            yield _app
27
28
29
def test_initialize_account(app):
1 ignored issue
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
30
    admin_id = app.admin_id
31
    user_id = create_user('CreatedAtPartyCheckIn', initialized=False).id
32
33
    user_before = user_command_service._get_user(user_id)
34
    assert not user_before.initialized
35
36
    events_before = event_service.get_events_for_user(user_before.id)
37
    assert len(events_before) == 0
38
39
    # -------------------------------- #
40
41
    user_command_service.initialize_account(user_id, admin_id)
42
43
    # -------------------------------- #
44
45
    user_after = user_command_service._get_user(user_id)
46
    assert user_after.initialized
47
48
    events_after = event_service.get_events_for_user(user_after.id)
49
    assert len(events_after) == 1
50
51
    user_enabled_event = events_after[0]
52
    assert user_enabled_event.event_type == 'user-initialized'
53
    assert user_enabled_event.data == {
54
        'initiator_id': str(admin_id),
55
    }
56
57
58
def test_initialize_already_initialized_account(app):
59
    admin_id = app.admin_id
60
    user_id = create_user('AlreadyInitialized').id
61
62
    user_before = user_command_service._get_user(user_id)
63
    assert user_before.initialized
64
65
    events_before = event_service.get_events_for_user(user_before.id)
66
    assert len(events_before) == 0
67
68
    # -------------------------------- #
69
70
    with raises(ValueError):
71
        user_command_service.initialize_account(user_id, admin_id)
72
73
    # -------------------------------- #
74
75
    user_after = user_command_service._get_user(user_id)
76
    assert user_after.initialized  # still initialized
77
78
    events_after = event_service.get_events_for_user(user_after.id)
79
    assert len(events_after) == 0  # no additional user events
80