Merge pull request #197 from lbryio/add-dht-tests
Rename DHT tests such that trial automatically runs them
This commit is contained in:
commit
27a8114b6f
8 changed files with 49 additions and 80 deletions
|
@ -1,33 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
#
|
|
||||||
# This library is free software, distributed under the terms of
|
|
||||||
# the GNU Lesser General Public License Version 3, or any later version.
|
|
||||||
# See the COPYING file included in this archive
|
|
||||||
|
|
||||||
""" Wrapper script to run all included test scripts """
|
|
||||||
|
|
||||||
import os, sys
|
|
||||||
import unittest
|
|
||||||
|
|
||||||
def runTests():
|
|
||||||
testRunner = unittest.TextTestRunner()
|
|
||||||
testRunner.run(additional_tests())
|
|
||||||
|
|
||||||
def additional_tests():
|
|
||||||
""" Used directly by setuptools to run unittests """
|
|
||||||
sys.path.insert(0, os.path.dirname(__file__))
|
|
||||||
suite = unittest.TestSuite()
|
|
||||||
tests = os.listdir(os.path.dirname(__file__))
|
|
||||||
tests = [n[:-3] for n in tests if n.startswith('test') and n.endswith('.py')]
|
|
||||||
for test in tests:
|
|
||||||
m = __import__(test)
|
|
||||||
if hasattr(m, 'suite'):
|
|
||||||
suite.addTest(m.suite())
|
|
||||||
sys.path.pop(0)
|
|
||||||
return suite
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
# Add parent folder to sys path so it's easier to use
|
|
||||||
sys.path.insert(0,os.path.abspath('..'))
|
|
||||||
runTests()
|
|
|
@ -1,47 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
#
|
|
||||||
# This library is free software, distributed under the terms of
|
|
||||||
# the GNU Lesser General Public License Version 3, or any later version.
|
|
||||||
# See the COPYING file included in this archive
|
|
||||||
|
|
||||||
import unittest
|
|
||||||
|
|
||||||
import lbrynet.dht.contact
|
|
||||||
|
|
||||||
class ContactOperatorsTest(unittest.TestCase):
|
|
||||||
""" Basic tests case for boolean operators on the Contact class """
|
|
||||||
def setUp(self):
|
|
||||||
self.firstContact = lbrynet.dht.contact.Contact('firstContactID', '127.0.0.1', 1000, None, 1)
|
|
||||||
self.secondContact = lbrynet.dht.contact.Contact('2ndContactID', '192.168.0.1', 1000, None, 32)
|
|
||||||
self.secondContactCopy = lbrynet.dht.contact.Contact('2ndContactID', '192.168.0.1', 1000, None, 32)
|
|
||||||
self.firstContactDifferentValues = lbrynet.dht.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 """
|
|
||||||
for item in (123, [1,2,3], {'key': 'value'}):
|
|
||||||
self.failIfEqual(self.firstContact, item, '"eq" operator: Contact object should not be equal to %s type' % type(item).__name__)
|
|
||||||
self.failUnless(self.firstContact != item, '"ne" operator: Contact object should not be equal to %s type' % 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')
|
|
||||||
|
|
||||||
def suite():
|
|
||||||
suite = unittest.TestSuite()
|
|
||||||
suite.addTest(unittest.makeSuite(ContactOperatorsTest))
|
|
||||||
return suite
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
# If this module is executed from the commandline, run all its tests
|
|
||||||
unittest.TextTestRunner().run(suite())
|
|
0
tests/unit/dht/__init__.py
Normal file
0
tests/unit/dht/__init__.py
Normal file
49
tests/unit/dht/test_contact.py
Normal file
49
tests/unit/dht/test_contact.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
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')
|
Loading…
Reference in a new issue