mirror of
				https://github.com/nvbn/thefuck.git
				synced 2025-10-31 15:12:20 +00:00 
			
		
		
		
	Inherit RulesNamesList from list
				
					
				
			This commit is contained in:
		| @@ -3,11 +3,11 @@ from thefuck.main import Rule | |||||||
| from thefuck import conf | from thefuck import conf | ||||||
|  |  | ||||||
|  |  | ||||||
| def test_rules_list(): | def test_rules_names_list(): | ||||||
|     assert conf.RulesList(['bash', 'lisp']) == ['bash', 'lisp'] |     assert conf.RulesNamesList(['bash', 'lisp']) == ['bash', 'lisp'] | ||||||
|     assert conf.RulesList(['bash', 'lisp']) == conf.RulesList(['bash', 'lisp']) |     assert conf.RulesNamesList(['bash', 'lisp']) == conf.RulesNamesList(['bash', 'lisp']) | ||||||
|     assert Rule('lisp', None, None, False) in conf.RulesList(['lisp']) |     assert Rule('lisp', None, None, False) in conf.RulesNamesList(['lisp']) | ||||||
|     assert Rule('bash', None, None, False) not in conf.RulesList(['lisp']) |     assert Rule('bash', None, None, False) not in conf.RulesNamesList(['lisp']) | ||||||
|  |  | ||||||
|  |  | ||||||
| def test_default(): | def test_default(): | ||||||
|   | |||||||
| @@ -32,7 +32,7 @@ def test_get_rules(): | |||||||
|                    main.Rule('lisp', 'lisp', 'lisp', True)] |                    main.Rule('lisp', 'lisp', 'lisp', True)] | ||||||
|         assert list(main.get_rules( |         assert list(main.get_rules( | ||||||
|             Path('~'), |             Path('~'), | ||||||
|             Mock(rules=conf.RulesList(['bash'])))) \ |             Mock(rules=conf.RulesNamesList(['bash'])))) \ | ||||||
|                == [main.Rule('bash', 'bash', 'bash', True), |                == [main.Rule('bash', 'bash', 'bash', True), | ||||||
|                    main.Rule('bash', 'bash', 'bash', True)] |                    main.Rule('bash', 'bash', 'bash', True)] | ||||||
|  |  | ||||||
|   | |||||||
| @@ -6,38 +6,29 @@ from six import text_type | |||||||
| from . import logs | from . import logs | ||||||
|  |  | ||||||
|  |  | ||||||
| class RulesList(object): | class RulesNamesList(list): | ||||||
|     """Wrapper a top of list for string rules names.""" |     """Wrapper a top of list for string rules names.""" | ||||||
|  |  | ||||||
|     def __init__(self, rules): |  | ||||||
|         self.rules = rules |  | ||||||
|  |  | ||||||
|     def __contains__(self, item): |     def __contains__(self, item): | ||||||
|         return item.name in self.rules |         return super(RulesNamesList, self).__contains__(item.name) | ||||||
|  |  | ||||||
|     def __getattr__(self, item): |  | ||||||
|         return getattr(self.rules, item) |  | ||||||
|  |  | ||||||
|     def __eq__(self, other): |  | ||||||
|         return self.rules == other |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class _DefaultRules(RulesList): | class _DefaultRulesNames(RulesNamesList): | ||||||
|     def __add__(self, items): |     def __add__(self, items): | ||||||
|         return _DefaultRules(self.rules + items) |         return _DefaultRulesNames(list(self) + items) | ||||||
|  |  | ||||||
|     def __contains__(self, item): |     def __contains__(self, item): | ||||||
|         return item.enabled_by_default or \ |         return item.enabled_by_default or \ | ||||||
|                super(_DefaultRules, self).__contains__(item) |                super(_DefaultRulesNames, self).__contains__(item) | ||||||
|  |  | ||||||
|     def __eq__(self, other): |     def __eq__(self, other): | ||||||
|         if isinstance(other, _DefaultRules): |         if isinstance(other, _DefaultRulesNames): | ||||||
|             return self.rules == other.rules |             return super(_DefaultRulesNames, self).__eq__(other) | ||||||
|         else: |         else: | ||||||
|             return False |             return False | ||||||
|  |  | ||||||
|  |  | ||||||
| DEFAULT = _DefaultRules([]) | DEFAULT = _DefaultRulesNames([]) | ||||||
|  |  | ||||||
|  |  | ||||||
| class Settings(object): | class Settings(object): | ||||||
| @@ -118,7 +109,7 @@ def get_settings(user_dir): | |||||||
|                        sys.exc_info(), |                        sys.exc_info(), | ||||||
|                        Settings(conf)) |                        Settings(conf)) | ||||||
|  |  | ||||||
|     if not isinstance(conf['rules'], RulesList): |     if not isinstance(conf['rules'], RulesNamesList): | ||||||
|         conf['rules'] = RulesList(conf['rules']) |         conf['rules'] = RulesNamesList(conf['rules']) | ||||||
|  |  | ||||||
|     return Settings(conf) |     return Settings(conf) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user