HCE Project Python language Distributed Tasks Manager Application, Distributed Crawler Application and client API bindings.  2.0.0-chaika
Hierarchical Cluster Engine Python language binding
test_app_PollerManager.py
Go to the documentation of this file.
1 '''
2 Created on Feb 26, 2014
3 
4 @author: igor
5 '''
6 import unittest
7 import zmq
8 from mock import MagicMock
9 from transport.Connection import Connection, ConnectionTimeout
10 from app.PollerManager import PollerManager
11 
12 
13 
14 class TestPollerManager(unittest.TestCase):
15 
16 
17  def setUp(self):
18  self.sock_mock = MagicMock(spec = zmq.Socket)
19  self.poller_mock = MagicMock(spec = zmq.Poller)
21 
22 
24  connection = Connection(self.sock_mock, self.poller_mock)
25  self.poller_manager.add(connection, "sname")
26 
27  self.assertEqual(self.poller_manager.connections[self.sock_mock], "sname", "add is failed")
28 
29 
31  connection = Connection(self.sock_mock, self.poller_mock)
32 
33  self.poller_manager.add(connection, "sname")
34  self.poller_manager.remove(connection)
35 
36  with self.assertRaises(KeyError):
37  list(self.poller_manager.connections[self.sock_mock])
38 
39 
40  def test_timeout(self):
41  poller_mock_cfg = {"poll.return_value": list()}
42  self.poller_mock.configure_mock(**poller_mock_cfg)
43 
44  with self.assertRaises(ConnectionTimeout):
45  list(self.poller_manager.poll(100))
46 
47 
48  def test_return_names(self):
49  poller_mock_cfg = {"poll.return_value": [(self.sock_mock, zmq.POLLIN)]}
50  self.poller_mock.configure_mock(**poller_mock_cfg)
51 
52  connection = Connection(self.sock_mock, self.poller_mock)
53  self.poller_manager.add(connection, "sname")
54 
55  expect_list = ["sname"]
56 
57  res = self.poller_manager.poll(100)
58 
59  self.assertEqual(expect_list, res, "poll is failed")
60 
61