Show More
@@ -22,6 +22,53 b'' | |||||
22 | import pytest |
|
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 | @pytest.fixture(params=[ |
|
72 | @pytest.fixture(params=[ | |
26 | ('rhodecode.authentication.plugins.auth_crowd', 'egg:rhodecode-enterprise-ce#crowd'), |
|
73 | ('rhodecode.authentication.plugins.auth_crowd', 'egg:rhodecode-enterprise-ce#crowd'), | |
27 | ('rhodecode.authentication.plugins.auth_headers', 'egg:rhodecode-enterprise-ce#headers'), |
|
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