def setUp(self): self.socket_patch = patch('dsmcache.connection.socket') self.socket_mock = self.socket_patch.start() self.host = Host('127.0.0.1:11211') self.connection = Connection(self.host)
class ConnectionTestCase(TestCase): def setUp(self): self.socket_patch = patch('dsmcache.connection.socket') self.socket_mock = self.socket_patch.start() self.host = Host('127.0.0.1:11211') self.connection = Connection(self.host) def tearDown(self): self.socket_patch.stop() self.connection.close() def test_init(self): connection = Connection(self.host, socket_timeout=10, retry_timeout=5) self.assertEqual(connection._host, self.host) self.assertEqual(connection._socket_timeout, 10) self.assertEqual(connection._retry_timeout, 5) self.assertEqual(connection._socket, None) self.assertEqual(connection._dead_ts, 0) @patch('dsmcache.connection.Connection._check_dead') def test_connect_dead(self, check_dead_mock): check_dead_mock.return_value = True self.assertIsNone(self.connection.connect()) @patch('dsmcache.connection.Connection._check_dead') def test_connect_connected_before(self, check_dead_mock): self.connection._socket = Mock() check_dead_mock.return_value = False self.assertEqual(self.connection.connect(), self.connection._socket) @patch('dsmcache.connection.Connection._check_dead') def test_connect_socket_timeout(self, check_dead_mock): self.socket_mock.socket.return_value.connect.side_effect = \ socket.timeout() check_dead_mock.return_value = False self.assertEqual(self.connection._socket, None) with self.assertRaises(socket.timeout): self.connection.connect() self.socket_mock.socket.assert_called_once_with( self.socket_mock.AF_INET, self.socket_mock.SOCK_STREAM) self.socket_mock.socket.return_value.connect.assert_called_once_with( self.connection._host.address) @patch('dsmcache.connection.Connection._check_dead') def test_connect_socket_error(self, check_dead_mock): self.socket_mock.socket.return_value.connect.side_effect = \ socket.error() check_dead_mock.return_value = False with self.assertRaises(socket.error): self.connection.connect() self.socket_mock.socket.assert_called_once_with( self.socket_mock.AF_INET, self.socket_mock.SOCK_STREAM) self.socket_mock.socket.return_value.connect.assert_called_once_with( self.connection._host.address) @patch('dsmcache.connection.Connection._check_dead') def test_connect_ok(self, check_dead_mock): check_dead_mock.return_value = False self.assertEqual(self.connection.connect(), self.socket_mock.socket.return_value) def test_send(self): pass def test_is_alive(self): pass def test_check_dead_not_dead(self): pass def test_check_dead_is_dead(self): pass def test_mark_socket_dead(self): pass def test_close_no_socket(self): pass def test_close(self): pass