From af36a6755fb8627e9a4aed514212f4df98b45a7e Mon Sep 17 00:00:00 2001 From: Stephen Diehl Date: Thu, 2 Feb 2012 08:23:48 -0500 Subject: [PATCH] Renamed unit test per nose convention. --- test/test_messaging.py | 66 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 test/test_messaging.py diff --git a/test/test_messaging.py b/test/test_messaging.py new file mode 100644 index 00000000..a50c5ecf --- /dev/null +++ b/test/test_messaging.py @@ -0,0 +1,66 @@ +import unittest2 as unittest +import zmq +import logging +import tornado +from data.sources.equity import * +from data.feed import * +from data.transforms import MergedTransformsFeed, MovingAverage + +from qbt_client import TestClient + + +class MessagingTestCase(unittest.TestCase): + + def setUp(self): + tornado.options.parse_command_line() + self.total_data_count = 800 + self.feed_config = {'emt1':{'sid':133, 'class':'RandomEquityTrades', 'count':400}, + 'emt2':{'sid':134, 'class':'RandomEquityTrades', 'count':400}} + self.feed = DataFeed(self.feed_config) + self.feed_proc = multiprocessing.Process(target=self.feed.run) + + self.config = {} + self.config['name'] = '**merged feed**' + self.config['transforms'] = [{'name':'mavg1', 'class':'MovingAverage', 'hours':1},{'name':'mavg2', 'class':'MovingAverage', 'hours':2}] + + def dtest_client(self): + #subscribe a client to the transformed feed + client = TestClient(self.feed, self.feed.feed_address) + + feed_proc = multiprocessing.Process(target=self.feed.run) + feed_proc.start() + + + client.run() + self.assertEqual(self.feed.data_buffer.pending_messages(), 0, "The feed should be drained of all messages, found {n} remaining.".format(n=self.feed.data_buffer.pending_messages())) + self.assertEqual(self.total_data_count, client.received_count, "The client should have received ({n}) the same number of messages as the feed sent ({m}).".format(n=client.received_count, m=self.total_data_count)) + + + def dtest_moving_average_to_client(self): + mavg = MovingAverage(self.feed, self.config['transforms'][0]) + mavg_proc = multiprocessing.Process(target=mavg.run) + mavg_proc.start() + + client = TestClient(self.feed, mavg.result_address, bind=True) + + feed_proc = multiprocessing.Process(target=self.feed.run) + feed_proc.start() + + client.run() + self.assertEqual(self.feed.data_buffer.pending_messages(), 0, "The feed should be drained of all messages.") + self.assertEqual(self.total_data_count, client.received_count, "The client should have received the same number of messages as the feed sent.") + + def test_merged_to_client(self): + merger = MergedTransformsFeed(self.feed, self.config) + merger_proc = multiprocessing.Process(target=merger.run) + merger_proc.start() + + client = TestClient(self.feed, merger.result_address) + + feed_proc = multiprocessing.Process(target=self.feed.run) + feed_proc.start() + + client.run() + self.assertEqual(self.feed.data_buffer.pending_messages(), 0, "The feed should be drained of all messages.") + self.assertEqual(self.total_data_count, client.received_count, "The client should have received the same number of messages as the feed sent.") +