diff options
Diffstat (limited to 'test/test.py')
-rw-r--r-- | test/test.py | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/test/test.py b/test/test.py new file mode 100644 index 0000000..bc4ef14 --- /dev/null +++ b/test/test.py @@ -0,0 +1,65 @@ +import csv +import requests +import random +import os +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)) + +if __name__ == '__main__': + suite = unittest.TestLoader().loadTestsFromTestCase(ApiTestCase) + unittest.TextTestRunner(verbosity=2).run(suite) |