Show More
@@ -22,6 +22,53 b'' | |||
|
22 | 22 | import pytest |
|
23 | 23 | |
|
24 | 24 | |
|
25 | class EnabledAuthPlugin(): | |
|
26 | """ | |
|
27 | Context manager that updates the 'auth_plugins' setting in DB to enable | |
|
28 | a plugin. Previous setting is restored on exit. The rhodecode auth plugin | |
|
29 | is also enabled because it is needed to login the test users. | |
|
30 | """ | |
|
31 | ||
|
32 | def __init__(self, plugin): | |
|
33 | self.new_value = set([ | |
|
34 | 'egg:rhodecode-enterprise-ce#rhodecode', | |
|
35 | plugin.get_id() | |
|
36 | ]) | |
|
37 | ||
|
38 | def __enter__(self): | |
|
39 | from rhodecode.model.settings import SettingsModel | |
|
40 | self._old_value = SettingsModel().get_auth_plugins() | |
|
41 | SettingsModel().create_or_update_setting( | |
|
42 | 'auth_plugins', ','.join(self.new_value)) | |
|
43 | ||
|
44 | def __exit__(self, type, value, traceback): | |
|
45 | from rhodecode.model.settings import SettingsModel | |
|
46 | SettingsModel().create_or_update_setting( | |
|
47 | 'auth_plugins', ','.join(self._old_value)) | |
|
48 | ||
|
49 | ||
|
50 | class DisabledAuthPlugin(): | |
|
51 | """ | |
|
52 | Context manager that updates the 'auth_plugins' setting in DB to disable | |
|
53 | a plugin. Previous setting is restored on exit. | |
|
54 | """ | |
|
55 | ||
|
56 | def __init__(self, plugin): | |
|
57 | self.plugin_id = plugin.get_id() | |
|
58 | ||
|
59 | def __enter__(self): | |
|
60 | from rhodecode.model.settings import SettingsModel | |
|
61 | self._old_value = SettingsModel().get_auth_plugins() | |
|
62 | new_value = [id_ for id_ in self._old_value if id_ != self.plugin_id] | |
|
63 | SettingsModel().create_or_update_setting( | |
|
64 | 'auth_plugins', ','.join(new_value)) | |
|
65 | ||
|
66 | def __exit__(self, type, value, traceback): | |
|
67 | from rhodecode.model.settings import SettingsModel | |
|
68 | SettingsModel().create_or_update_setting( | |
|
69 | 'auth_plugins', ','.join(self._old_value)) | |
|
70 | ||
|
71 | ||
|
25 | 72 | @pytest.fixture(params=[ |
|
26 | 73 | ('rhodecode.authentication.plugins.auth_crowd', 'egg:rhodecode-enterprise-ce#crowd'), |
|
27 | 74 | ('rhodecode.authentication.plugins.auth_headers', 'egg:rhodecode-enterprise-ce#headers'), |
General Comments 0
You need to be logged in to leave comments.
Login now