Introduction
Introduction Statistics Contact Development Disclaimer Help
test_config.py - toot - Unnamed repository; edit this file 'description' to nam…
Log
Files
Refs
LICENSE
---
test_config.py (4879B)
---
1 import os
2 import pytest
3
4 from toot import User, App, config
5
6
7 @pytest.fixture
8 def sample_config():
9 return {
10 'apps': {
11 'foo.social': {
12 'base_url': 'https://foo.social',
13 'client_id': 'abc',
14 'client_secret': 'def',
15 'instance': 'foo.social'
16 },
17 'bar.social': {
18 'base_url': 'https://bar.social',
19 'client_id': 'ghi',
20 'client_secret': 'jkl',
21 'instance': 'bar.social'
22 },
23 },
24 'users': {
25 '[email protected]': {
26 'access_token': 'mno',
27 'instance': 'bar.social',
28 'username': 'ihabunek'
29 }
30 },
31 'active_user': '[email protected]',
32 }
33
34
35 def test_extract_active_user_app(sample_config):
36 user, app = config.extract_user_app(sample_config, sample_config['ac…
37
38 assert isinstance(user, User)
39 assert user.instance == 'bar.social'
40 assert user.username == 'ihabunek'
41 assert user.access_token == 'mno'
42
43 assert isinstance(app, App)
44 assert app.instance == 'bar.social'
45 assert app.base_url == 'https://bar.social'
46 assert app.client_id == 'ghi'
47 assert app.client_secret == 'jkl'
48
49
50 def test_extract_active_when_no_active_user(sample_config):
51 # When there is no active user
52 assert config.extract_user_app(sample_config, None) == (None, None)
53
54 # When active user does not exist for whatever reason
55 assert config.extract_user_app(sample_config, 'does-not-exist') == (…
56
57 # When active app does not exist for whatever reason
58 sample_config['users']['[email protected]']['instance'] = 'does-not-exi…
59 assert config.extract_user_app(sample_config, '[email protected]') == (…
60
61
62 def test_save_app(sample_config):
63 app = App('xxx.yyy', 2, 3, 4)
64 app2 = App('moo.foo', 5, 6, 7)
65
66 app_count = len(sample_config['apps'])
67 assert 'xxx.yyy' not in sample_config['apps']
68 assert 'moo.foo' not in sample_config['apps']
69
70 # Sets
71 config.save_app.__wrapped__(sample_config, app)
72 assert len(sample_config['apps']) == app_count + 1
73 assert 'xxx.yyy' in sample_config['apps']
74 assert sample_config['apps']['xxx.yyy']['instance'] == 'xxx.yyy'
75 assert sample_config['apps']['xxx.yyy']['base_url'] == 2
76 assert sample_config['apps']['xxx.yyy']['client_id'] == 3
77 assert sample_config['apps']['xxx.yyy']['client_secret'] == 4
78
79 # Overwrites
80 config.save_app.__wrapped__(sample_config, app2)
81 assert len(sample_config['apps']) == app_count + 2
82 assert 'xxx.yyy' in sample_config['apps']
83 assert 'moo.foo' in sample_config['apps']
84 assert sample_config['apps']['xxx.yyy']['instance'] == 'xxx.yyy'
85 assert sample_config['apps']['xxx.yyy']['base_url'] == 2
86 assert sample_config['apps']['xxx.yyy']['client_id'] == 3
87 assert sample_config['apps']['xxx.yyy']['client_secret'] == 4
88 assert sample_config['apps']['moo.foo']['instance'] == 'moo.foo'
89 assert sample_config['apps']['moo.foo']['base_url'] == 5
90 assert sample_config['apps']['moo.foo']['client_id'] == 6
91 assert sample_config['apps']['moo.foo']['client_secret'] == 7
92
93 # Idempotent
94 config.save_app.__wrapped__(sample_config, app2)
95 assert len(sample_config['apps']) == app_count + 2
96 assert 'xxx.yyy' in sample_config['apps']
97 assert 'moo.foo' in sample_config['apps']
98 assert sample_config['apps']['xxx.yyy']['instance'] == 'xxx.yyy'
99 assert sample_config['apps']['xxx.yyy']['base_url'] == 2
100 assert sample_config['apps']['xxx.yyy']['client_id'] == 3
101 assert sample_config['apps']['xxx.yyy']['client_secret'] == 4
102 assert sample_config['apps']['moo.foo']['instance'] == 'moo.foo'
103 assert sample_config['apps']['moo.foo']['base_url'] == 5
104 assert sample_config['apps']['moo.foo']['client_id'] == 6
105 assert sample_config['apps']['moo.foo']['client_secret'] == 7
106
107
108 def test_delete_app(sample_config):
109 app = App('foo.social', 2, 3, 4)
110
111 app_count = len(sample_config['apps'])
112
113 assert 'foo.social' in sample_config['apps']
114
115 config.delete_app.__wrapped__(sample_config, app)
116 assert 'foo.social' not in sample_config['apps']
117 assert len(sample_config['apps']) == app_count - 1
118
119 # Idempotent
120 config.delete_app.__wrapped__(sample_config, app)
121 assert 'foo.social' not in sample_config['apps']
122 assert len(sample_config['apps']) == app_count - 1
123
124
125 def test_get_config_file_path():
126 fn = config.get_config_file_path
127
128 os.unsetenv('XDG_CONFIG_HOME')
129
130 assert fn() == os.path.expanduser('~/.config/toot/config.json')
131
132 os.environ['XDG_CONFIG_HOME'] = '/foo/bar/config'
133
134 assert fn() == '/foo/bar/config/toot/config.json'
135
136 os.environ['XDG_CONFIG_HOME'] = '~/foo/config'
137
138 assert fn() == os.path.expanduser('~/foo/config/toot/config.json')
You are viewing proxied material from vernunftzentrum.de. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.