Completed
Push — main ( c8aa67...81e04d )
by Jochen
03:35
created

tests.integration.services.global_setting.test_service   A

Complexity

Total Complexity 14

Size/Duplication

Total Lines 120
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 78
dl 0
loc 120
rs 10
c 0
b 0
f 0
wmc 14

7 Functions

Rating   Name   Duplication   Size   Complexity  
A test_remove() 0 10 1
A test_find_value() 0 11 1
A test_create_or_update() 0 22 1
A test_create() 0 11 1
B teardown_function() 0 12 7
A test_get_settings() 0 16 2
A test_find() 0 13 1
1
"""
2
:Copyright: 2006-2020 Jochen Kupperschmidt
3
:License: Modified BSD, see LICENSE for details.
4
"""
5
6
import pytest
7
8
from byceps.services.global_setting import service as settings_service
9
from byceps.services.global_setting.transfer.models import GlobalSetting
10
11
12
def test_create(admin_app):
13
    name = 'name1'
14
    value = 'value1'
15
16
    assert settings_service.find_setting(name) is None
17
18
    setting = settings_service.create_setting(name, value)
19
20
    assert setting is not None
21
    assert setting.name == name
22
    assert setting.value == value
23
24
25
def test_create_or_update(admin_app):
26
    name = 'name2'
27
    value1 = 'value2a'
28
    value2 = 'value2b'
29
30
    assert settings_service.find_setting(name) is None
31
32
    created_setting = settings_service.create_or_update_setting(
33
        name, value1
34
    )
35
36
    assert created_setting is not None
37
    assert created_setting.name == name
38
    assert created_setting.value == value1
39
40
    updated_setting = settings_service.create_or_update_setting(
41
        name, value2
42
    )
43
44
    assert updated_setting is not None
45
    assert updated_setting.name == name
46
    assert updated_setting.value == value2
47
48
49
def test_remove(admin_app):
50
    name = 'name3'
51
    value = 'value3'
52
53
    setting = settings_service.create_setting(name, value)
54
    assert settings_service.find_setting(name) is not None
55
56
    settings_service.remove_setting(name)
57
58
    assert settings_service.find_setting(name) is None
59
60
61
def test_find(admin_app):
62
    name = 'name4'
63
    value = 'value4'
64
65
    setting_before_create = settings_service.find_setting(name)
66
    assert setting_before_create is None
67
68
    settings_service.create_setting(name, value)
69
70
    setting_after_create = settings_service.find_setting(name)
71
    assert setting_after_create is not None
72
    assert setting_after_create.name == name
73
    assert setting_after_create.value == value
74
75
76
def test_find_value(admin_app):
77
    name = 'name5'
78
    value = 'value5'
79
80
    value_before_create = settings_service.find_setting_value(name)
81
    assert value_before_create is None
82
83
    settings_service.create_setting(name, value)
84
85
    value_after_create = settings_service.find_setting_value(name)
86
    assert value_after_create == value
87
88
89
def test_get_settings(admin_app):
90
    all_settings_before_create = settings_service.get_settings()
91
    assert all_settings_before_create == set()
92
93
    for name, value in {
94
        ('name6a', 'value6a'),
95
        ('name6b', 'value6b'),
96
        ('name6c', 'value6c'),
97
    }:
98
        settings_service.create_setting(name, value)
99
100
    all_settings_after_create = settings_service.get_settings()
101
    assert all_settings_after_create == {
102
        GlobalSetting('name6a', 'value6a'),
103
        GlobalSetting('name6b', 'value6b'),
104
        GlobalSetting('name6c', 'value6c'),
105
    }
106
107
108
def teardown_function(func):
109
    if func is test_create:
110
        settings_service.remove_setting('name1')
111
    elif func is test_create_or_update:
112
        settings_service.remove_setting('name2')
113
    elif func is test_find:
114
        settings_service.remove_setting('name4')
115
    elif func is test_find_value:
116
        settings_service.remove_setting('name5')
117
    elif func is test_get_settings:
118
        for name in 'name6a', 'name6b', 'name6c':
119
            settings_service.remove_setting(name)
120