mirror of
				https://github.com/github/octodns.git
				synced 2024-05-11 05:55:00 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			69 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #
 | |
| #
 | |
| #
 | |
| 
 | |
| from __future__ import absolute_import, division, print_function, \
 | |
|     unicode_literals
 | |
| 
 | |
| from unittest import TestCase
 | |
| 
 | |
| from octodns.equality import EqualityTupleMixin
 | |
| 
 | |
| 
 | |
| class TestEqualityTupleMixin(TestCase):
 | |
| 
 | |
|     def test_basics(self):
 | |
| 
 | |
|         class Simple(EqualityTupleMixin):
 | |
| 
 | |
|             def __init__(self, a, b, c):
 | |
|                 self.a = a
 | |
|                 self.b = b
 | |
|                 self.c = c
 | |
| 
 | |
|             def _equality_tuple(self):
 | |
|                 return (self.a, self.b)
 | |
| 
 | |
|         one = Simple(1, 2, 3)
 | |
|         same = Simple(1, 2, 3)
 | |
|         matches = Simple(1, 2, 'ignored')
 | |
|         doesnt = Simple(2, 3, 4)
 | |
| 
 | |
|         # equality
 | |
|         self.assertEquals(one, one)
 | |
|         self.assertEquals(one, same)
 | |
|         self.assertEquals(same, one)
 | |
|         # only a & c are considered
 | |
|         self.assertEquals(one, matches)
 | |
|         self.assertEquals(matches, one)
 | |
|         self.assertNotEquals(one, doesnt)
 | |
|         self.assertNotEquals(doesnt, one)
 | |
| 
 | |
|         # lt
 | |
|         self.assertTrue(one < doesnt)
 | |
|         self.assertFalse(doesnt < one)
 | |
|         self.assertFalse(one < same)
 | |
| 
 | |
|         # le
 | |
|         self.assertTrue(one <= doesnt)
 | |
|         self.assertFalse(doesnt <= one)
 | |
|         self.assertTrue(one <= same)
 | |
| 
 | |
|         # gt
 | |
|         self.assertFalse(one > doesnt)
 | |
|         self.assertTrue(doesnt > one)
 | |
|         self.assertFalse(one > same)
 | |
| 
 | |
|         # ge
 | |
|         self.assertFalse(one >= doesnt)
 | |
|         self.assertTrue(doesnt >= one)
 | |
|         self.assertTrue(one >= same)
 | |
| 
 | |
|     def test_not_implemented(self):
 | |
| 
 | |
|         class MissingMethod(EqualityTupleMixin):
 | |
|             pass
 | |
| 
 | |
|         with self.assertRaises(NotImplementedError):
 | |
|             MissingMethod() == MissingMethod()
 |