From 98a9d890db81acae339739c9813398e0bded5416 Mon Sep 17 00:00:00 2001 From: Oleg Silkin Date: Tue, 30 Jul 2019 00:15:35 -0400 Subject: [PATCH] Moves concurrency tests back to scripts since they require prod setup --- scripts/concurrency_test.py | 34 ++++++++++++++++++++++++++++++++++ tests/server_test.py | 29 ----------------------------- 2 files changed, 34 insertions(+), 29 deletions(-) create mode 100644 scripts/concurrency_test.py diff --git a/scripts/concurrency_test.py b/scripts/concurrency_test.py new file mode 100644 index 0000000..b7bf927 --- /dev/null +++ b/scripts/concurrency_test.py @@ -0,0 +1,34 @@ +import unittest +from multiprocessing.pool import Pool + +import requests + + +class ConcurrentWriteTest(unittest.TestCase): + + @staticmethod + def make_comment(num): + return { + 'jsonrpc': '2.0', + 'id': num, + 'method': 'create_comment', + 'params': { + 'comment': f'Comment #{num}', + 'claim_id': '6d266af6c25c80fa2ac6cc7662921ad2e90a07e7', + } + } + + @staticmethod + def send_comment_to_server(params): + with requests.post(params[0], json=params[1]) as req: + return req.json() + + def test01Concurrency(self): + urls = [f'http://localhost:{port}/api' for port in range(5921, 5925)] + comments = [self.make_comment(i) for i in range(1, 5)] + inputs = list(zip(urls, comments)) + with Pool(4) as pool: + results = pool.map(self.send_comment_to_server, inputs) + results = list(filter(lambda x: 'comment_id' in x['result'], results)) + self.assertIsNotNone(results) + self.assertEqual(len(results), len(inputs)) diff --git a/tests/server_test.py b/tests/server_test.py index 1a5ab0e..0438582 100644 --- a/tests/server_test.py +++ b/tests/server_test.py @@ -232,32 +232,3 @@ class ListCommentsTest(unittest.TestCase): self.assertIs(type(response['items']), list) self.assertEqual(response['total_items'], response_one['total_items']) self.assertEqual(response['total_pages'], response_one['total_pages']) - - -class ConcurrentWriteTest(unittest.TestCase): - @staticmethod - def make_comment(num): - return { - 'jsonrpc': '2.0', - 'id': num, - 'method': 'create_comment', - 'params': { - 'comment': f'Comment #{num}', - 'claim_id': '6d266af6c25c80fa2ac6cc7662921ad2e90a07e7', - } - } - - @staticmethod - def send_comment_to_server(params): - with requests.post(params[0], json=params[1]) as req: - return req.json() - - def test01Concurrency(self): - urls = [f'http://localhost:{port}/api' for port in range(5921, 5925)] - comments = [self.make_comment(i) for i in range(1, 5)] - inputs = list(zip(urls, comments)) - with Pool(4) as pool: - results = pool.map(self.send_comment_to_server, inputs) - results = list(filter(lambda x: 'comment_id' in x['result'], results)) - self.assertIsNotNone(results) - self.assertEqual(len(results), len(inputs))