Support running tests via setup.py; install PyCrypto for testing.

This commit is contained in:
Andrei Fokau 2017-10-25 18:56:17 +02:00
parent ef794bf75d
commit 23989a1c92
No known key found for this signature in database
GPG Key ID: F2BC8AF1CE23A98E
2 changed files with 22 additions and 4 deletions

View File

@ -1,14 +1,22 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import argparse
import logging
import unittest import unittest
if __name__ == '__main__': logging.basicConfig(level=logging.DEBUG)
__log__ = logging.getLogger(__name__)
def test_suite(skip_network=False):
from telethon_tests import \ from telethon_tests import \
CryptoTests, ParserTests, TLTests, UtilsTests, NetworkTests CryptoTests, ParserTests, TLTests, UtilsTests, NetworkTests
test_classes = [CryptoTests, ParserTests, TLTests, UtilsTests] test_classes = [CryptoTests, ParserTests, TLTests, UtilsTests]
network = input('Run network tests (y/n)?: ').lower() == 'y' if skip_network:
if network: __log__.warning("Skipping network tests")
else:
__log__.info("Running with network tests")
test_classes.append(NetworkTests) test_classes.append(NetworkTests)
loader = unittest.TestLoader() loader = unittest.TestLoader()
@ -18,7 +26,15 @@ if __name__ == '__main__':
suite = loader.loadTestsFromTestCase(test_class) suite = loader.loadTestsFromTestCase(test_class)
suites_list.append(suite) suites_list.append(suite)
big_suite = unittest.TestSuite(suites_list) return unittest.TestSuite(suites_list)
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('-n,--skip-network', dest='skip_network',
action='store_true')
args = parser.parse_args()
big_suite = test_suite(skip_network=args.skip_network)
runner = unittest.TextTestRunner() runner = unittest.TextTestRunner()
results = runner.run(big_suite) results = runner.run(big_suite)

View File

@ -133,6 +133,8 @@ def main():
'telethon_generator', 'telethon_tests', 'run_tests.py', 'telethon_generator', 'telethon_tests', 'run_tests.py',
'try_telethon.py' 'try_telethon.py'
]), ]),
test_suite='run_tests.test_suite',
tests_require=['PyCrypto'],
install_requires=['pyaes', 'rsa'] install_requires=['pyaes', 'rsa']
) )