summaryrefslogtreecommitdiff
path: root/test/test.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test.py')
-rw-r--r--test/test.py65
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)