From a035a0dbde6239bf3455d84458e302d3a6c6afac Mon Sep 17 00:00:00 2001 From: emkael Date: Fri, 18 Jan 2019 02:17:01 +0100 Subject: More comprehensive API tests --- test/test.py | 67 +++++++----------------------------------------------------- 1 file changed, 7 insertions(+), 60 deletions(-) (limited to 'test/test.py') diff --git a/test/test.py b/test/test.py index bc4ef14..d11e1cb 100644 --- a/test/test.py +++ b/test/test.py @@ -1,65 +1,12 @@ -import csv -import requests -import random -import os +import sys import unittest -from apitest.pzbs import PzbsCalculator -from apitest.api import ApiCalculator - -def runTest(tester, params): - return tester.get_response( - requests.post( - tester.get_url(), - data=tester.get_request(*params) - ).text) - -class ApiTestCase(unittest.TestCase): - def __setupParams(self): - csv_files = [] - for root, dirs, files in os.walk('./csv'): - csv_files += [os.path.join(root, f) for f in files] - self.params = [] - for csv_file in csv_files: - csv_content = csv.reader(open(csv_file), delimiter=";") - param_contents = [ - row for idx, row in enumerate(csv_content) if idx == 2][0] - self.params.append(( - param_contents[0][0].lower(), - None, 0, - int(param_contents[1]), float(param_contents[4]))) - - def setUp(self): - self.pzbs = PzbsCalculator() - self.api = ApiCalculator() - self.__setupParams() - self.longMessage=True - self.maxDiff = None - - @unittest.skip('') - def test_csvCases(self): - for params in self.params: - for rank in ApiCalculator.ranks.keys(): - for boards in [0, 1]: - p = (params[0], rank, boards, params[3], params[4]) - self.assertEqual( - runTest(self.pzbs, p), - runTest(self.api, p), - msg=str(p)) - - def test_randomCases(self): - for i in range(0, 20): - for type in ['t', 'p', 'i']: - for rank in ApiCalculator.ranks.keys(): - for boards in [0, 1]: - p = (type, rank, boards, - random.randint(6, 350), - random.randint(0, 4000) / 2.0) - self.assertEqual( - runTest(self.pzbs, p), - runTest(self.api, p), - msg=str(p)) +import tests.ApiTest if __name__ == '__main__': - suite = unittest.TestLoader().loadTestsFromTestCase(ApiTestCase) + suite = unittest.TestLoader().loadTestsFromModule(tests.ApiTest) \ + if len(sys.argv) < 2 \ + else unittest.TestLoader().loadTestsFromNames( + ['tests.ApiTest.ApiTestCase.test_%sCases' % (s) + for s in sys.argv[1:]]) unittest.TextTestRunner(verbosity=2).run(suite) -- cgit v1.2.3