mirror of
				https://github.com/ARM-software/workload-automation.git
				synced 2025-10-31 15:12:25 +00:00 
			
		
		
		
	utils/types: implement __ne__ for level
This should have been handled by the @total_ordering decorator, but
isn't due to
        https://bugs.python.org/issue25732
(briefly, total_ordering is back-ported from Python 3, where the base
object provides the default implementation of __ne__ based on __eq__, so
total_ordering did not override it; this, however does not happen in
Python 2).
Also update unit tests to catch this edge case.
			
			
This commit is contained in:
		
				
					committed by
					
						 setrofim
						setrofim
					
				
			
			
				
	
			
			
			
						parent
						
							64f9cf79e4
						
					
				
				
					commit
					6ee40c2170
				
			| @@ -114,6 +114,8 @@ class TestEnumLevel(TestCase): | |||||||
|         assert_in('names', e.levels) |         assert_in('names', e.levels) | ||||||
|         assert_list_equal(e.names, ['names', 'one', 'two']) |         assert_list_equal(e.names, ['names', 'one', 'two']) | ||||||
|         assert_equal(e.NAMES, 'names') |         assert_equal(e.NAMES, 'names') | ||||||
|  |         result = not (e.NAMES != 'names') | ||||||
|  |         assert_true(result) | ||||||
|  |  | ||||||
|     def test_enum_behavior(self): |     def test_enum_behavior(self): | ||||||
|         e = enum(['one', 'two', 'three']) |         e = enum(['one', 'two', 'three']) | ||||||
|   | |||||||
| @@ -569,6 +569,15 @@ class level(object): | |||||||
|         else: |         else: | ||||||
|             return self.value < other |             return self.value < other | ||||||
|  |  | ||||||
|  |     def __ne__(self, other): | ||||||
|  |         if isinstance(other, level): | ||||||
|  |             return self.value != other.value | ||||||
|  |         elif isinstance(other, basestring): | ||||||
|  |             return self.name != other | ||||||
|  |         else: | ||||||
|  |             return self.value != other | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class _EnumMeta(type): | class _EnumMeta(type): | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user