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_transport_ConnectionBuilder.py
Go to the documentation of this file.
1 '''
2 Created on Feb 4, 2014
3 
4 @author: igor
5 '''
6 
7 import unittest
8 import zmq
9 
10 from mock import Mock
11 from mock import MagicMock, ANY
12 from mock import call
13 
14 from transport.ConnectionBuilder import ConnectionBuilder
15 from transport.IDGenerator import IDGenerator
16 from transport.Connection import ConnectionParams
17 from transport.Consts import ADMIN_CONNECT_TYPE
18 
19 
20 class TestConnectionBuilder(unittest.TestCase):
21 
22 
23  def setUp(self):
24  self.connect_params = ConnectionParams("10.0.0.1", 1024)
26 
27 
29  ctx_mock = Mock(spec=zmq.Context)
30  socket_mock = MagicMock(spec=zmq.Socket)
31 
32  ctx_mock_cfg = {"socket.return_value":socket_mock}
33  ctx_mock.configure_mock(**ctx_mock_cfg)
34 
35  socket_expect_calls = [call.setsockopt(zmq.IDENTITY, ANY),
36  call.connect("tcp://10.0.0.1:1024")]
37 
38  connection_factory = ConnectionBuilder(self.id_generator)
39  connection_factory.zmq_context = ctx_mock
40 
41  admin_connection = connection_factory.build(ADMIN_CONNECT_TYPE, self.connect_params)
42 
43  self.assertIn(socket_expect_calls, socket_mock.mock_calls,
44  "admin connect is wrong initialized")
The builder is used to encapsulation routine of creation various type of connections.
IDGenerator is used to generate unique id for connections.
Definition: IDGenerator.py:15