forked from LBRYCommunity/lbry-sdk
49 lines
2.2 KiB
Python
49 lines
2.2 KiB
Python
import unittest
|
|
|
|
from lbrynet.dht import contact
|
|
|
|
|
|
class ContactOperatorsTest(unittest.TestCase):
|
|
""" Basic tests case for boolean operators on the Contact class """
|
|
def setUp(self):
|
|
self.firstContact = contact.Contact('firstContactID', '127.0.0.1', 1000, None, 1)
|
|
self.secondContact = contact.Contact('2ndContactID', '192.168.0.1', 1000, None, 32)
|
|
self.secondContactCopy = contact.Contact('2ndContactID', '192.168.0.1', 1000, None, 32)
|
|
self.firstContactDifferentValues = contact.Contact(
|
|
'firstContactID', '192.168.1.20', 1000, None, 50)
|
|
|
|
def testBoolean(self):
|
|
""" Test "equals" and "not equals" comparisons """
|
|
self.failIfEqual(
|
|
self.firstContact, self.secondContact,
|
|
'Contacts with different IDs should not be equal.')
|
|
self.failUnlessEqual(
|
|
self.firstContact, self.firstContactDifferentValues,
|
|
'Contacts with same IDs should be equal, even if their other values differ.')
|
|
self.failUnlessEqual(
|
|
self.secondContact, self.secondContactCopy,
|
|
'Different copies of the same Contact instance should be equal')
|
|
|
|
def testStringComparisons(self):
|
|
""" Test comparisons of Contact objects with str types """
|
|
self.failUnlessEqual(
|
|
'firstContactID', self.firstContact,
|
|
'The node ID string must be equal to the contact object')
|
|
self.failIfEqual(
|
|
'some random string', self.firstContact,
|
|
"The tested string should not be equal to the contact object (not equal to it's ID)")
|
|
|
|
def testIllogicalComparisons(self):
|
|
""" Test comparisons with non-Contact and non-str types """
|
|
msg = '"{}" operator: Contact object should not be equal to {} type'
|
|
for item in (123, [1,2,3], {'key': 'value'}):
|
|
self.failIfEqual(
|
|
self.firstContact, item,
|
|
msg.format('eq', type(item).__name__))
|
|
self.failUnless(
|
|
self.firstContact != item,
|
|
msg.format('ne', type(item).__name__))
|
|
|
|
def testCompactIP(self):
|
|
self.assertEqual(self.firstContact.compact_ip(), '\x7f\x00\x00\x01')
|
|
self.assertEqual(self.secondContact.compact_ip(), '\xc0\xa8\x00\x01')
|