-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsettings_controller.py
More file actions
103 lines (81 loc) · 2.99 KB
/
settings_controller.py
File metadata and controls
103 lines (81 loc) · 2.99 KB
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
import unittest
from typing import List
import file_manager
import settings_manager
def add_default(guild_id: str) -> None:
settings_manager.set_default(guild_id)
def remove_settings(guild_id: str) -> bool:
if not settings_manager.in_settings(guild_id):
return True
settings_manager.remove_settings(guild_id)
return False
def in_settings(guild_id: str) -> bool:
return settings_manager.in_settings(guild_id)
def change_setting_controller(guild_id: str, setting: str, new_setting: str) \
-> bool:
if new_setting == settings_manager.fetch_setting(guild_id, setting):
return False
settings_manager.change_setting(guild_id, setting, new_setting)
return True
def fetch_setting(guild_id: str, setting: str) -> str:
return settings_manager.fetch_setting(guild_id, setting)
def get_all_setting_options(setting: str) -> List[str]:
all_settings = file_manager.load('json/allSettings.json')
return all_settings[setting]
def get_all_settings() -> List[str]:
all_settings = file_manager.load('json/allSettings.json')
return list(all_settings.keys())
# UNITTESTS
class TestSettingsManager(unittest.TestCase):
def test_set_default(self):
# resetting the file
file_manager.save('json/settings.json', {})
self.assertEqual(
file_manager.load('json/settings.json'),
{}
)
settings_manager.set_default('1007966523')
test_dict = file_manager.load('json/settings.json')
self.assertEqual(
test_dict,
{
'1007966523': {
'Adapt profile picture': 'Yes'
}
}
)
self.assertFalse(change_setting_controller('1007966523',
'Adapt profile picture',
'Yes'))
self.assertTrue(change_setting_controller('1007966523',
'Adapt profile picture',
'No'))
test_dict_2 = file_manager.load('json/settings.json')
self.assertEqual(
test_dict_2,
{
'1007966523': {
'Adapt profile picture': 'No'
}
}
)
def test_get_all_settings(self):
file_manager.save('json/allSettings.json', {})
self.assertEqual(
file_manager.load('json/allSettings.json'),
{}
)
file_manager.save(
'json/allSettings.json',
{
"Adapt profile picture": ["Yes", "No"]
}
)
all_settings = get_all_settings()
self.assertEqual(all_settings, ["Adapt profile picture"])
def test_get_all_setting_options(self):
self.test_get_all_settings()
self.assertEqual(get_all_setting_options('Adapt profile picture'),
["Yes", "No"])
if __name__ == '__main__':
unittest.main()