mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
62 lines
1.5 KiB
Python
62 lines
1.5 KiB
Python
#
|
|
#
|
|
#
|
|
|
|
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.assertEqual(one, one)
|
|
self.assertEqual(one, same)
|
|
self.assertEqual(same, one)
|
|
# only a & c are considered
|
|
self.assertEqual(one, matches)
|
|
self.assertEqual(matches, one)
|
|
self.assertNotEqual(one, doesnt)
|
|
self.assertNotEqual(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()
|