mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-31 05:05:42 +00:00 
			
		
		
		
	Expand unit tests for settings
- Check that name and description are translated - Check for only allowed keys - Extend checks to include user settings - Check default value for boolean setting
This commit is contained in:
		| @@ -112,28 +112,61 @@ class SettingsTest(TestCase): | |||||||
|         self.assertIn('STOCK_OWNERSHIP_CONTROL', result) |         self.assertIn('STOCK_OWNERSHIP_CONTROL', result) | ||||||
|         self.assertIn('SIGNUP_GROUP', result) |         self.assertIn('SIGNUP_GROUP', result) | ||||||
|  |  | ||||||
|     def test_required_values(self): |     def run_settings_check(self, key, setting): | ||||||
|         """ |  | ||||||
|         - Ensure that every global setting has a name. |  | ||||||
|         - Ensure that every global setting has a description. |  | ||||||
|         """ |  | ||||||
|  |  | ||||||
|         for key in InvenTreeSetting.SETTINGS.keys(): |         self.assertTrue(type(setting) is dict) | ||||||
|  |  | ||||||
|             setting = InvenTreeSetting.SETTINGS[key] |  | ||||||
|  |  | ||||||
|         name = setting.get('name', None) |         name = setting.get('name', None) | ||||||
|  |  | ||||||
|             if name is None: |         self.assertIsNotNone(name) | ||||||
|                 raise ValueError(f'Missing GLOBAL_SETTING name for {key}')  # pragma: no cover |         self.assertIn('django.utils.functional.lazy', str(type(name))) | ||||||
|  |  | ||||||
|         description = setting.get('description', None) |         description = setting.get('description', None) | ||||||
|  |  | ||||||
|             if description is None: |         self.assertIsNotNone(description) | ||||||
|                 raise ValueError(f'Missing GLOBAL_SETTING description for {key}')  # pragma: no cover |         self.assertIn('django.utils.functional.lazy', str(type(description))) | ||||||
|  |  | ||||||
|         if key != key.upper(): |         if key != key.upper(): | ||||||
|                 raise ValueError(f"SETTINGS key '{key}' is not uppercase")  # pragma: no cover |             raise ValueError(f"Setting key '{key}' is not uppercase")  # pragma: no cover | ||||||
|  |  | ||||||
|  |         # Check that only allowed keys are provided | ||||||
|  |         allowed_keys = [ | ||||||
|  |             'name', | ||||||
|  |             'description', | ||||||
|  |             'default', | ||||||
|  |             'validator', | ||||||
|  |             'hidden', | ||||||
|  |             'choices', | ||||||
|  |             'units', | ||||||
|  |             'requires_restart', | ||||||
|  |         ] | ||||||
|  |  | ||||||
|  |         for k in setting.keys(): | ||||||
|  |             self.assertIn(k, allowed_keys) | ||||||
|  |  | ||||||
|  |         # Check default value for boolean settings | ||||||
|  |         validator = setting.get('validator', None) | ||||||
|  |  | ||||||
|  |         if validator is bool: | ||||||
|  |             default = setting.get('default', None) | ||||||
|  |  | ||||||
|  |             # Default value *must* be supplied for boolean setting! | ||||||
|  |             self.assertIsNotNone(default) | ||||||
|  |  | ||||||
|  |             # Default value for boolean must itself be a boolean | ||||||
|  |             self.assertIn(default, [True, False]) | ||||||
|  |  | ||||||
|  |     def test_setting_data(self): | ||||||
|  |         """ | ||||||
|  |         - Ensure that every setting has a name, which is translated | ||||||
|  |         - Ensure that every setting has a description, which is translated | ||||||
|  |         """ | ||||||
|  |  | ||||||
|  |         for key, setting in InvenTreeSetting.SETTINGS.items(): | ||||||
|  |             self.run_settings_check(key, setting) | ||||||
|  |  | ||||||
|  |         for key, setting in InvenTreeUserSetting.SETTINGS.items(): | ||||||
|  |             self.run_settings_check(key, setting) | ||||||
|  |  | ||||||
|     def test_defaults(self): |     def test_defaults(self): | ||||||
|         """ |         """ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user