+ def test_sockettimeout(self):
+ with mock.patch('musicpd.socket') as socket_mock:
+ sock = mock.MagicMock(name='socket')
+ socket_mock.socket.return_value = sock
+ cli = musicpd.MPDClient()
+ # Default is no socket timeout
+ cli.connect()
+ sock.settimeout.assert_called_with(None)
+ cli.disconnect()
+ # set a socket timeout before connection
+ cli.socket_timeout = 10
+ cli.connect()
+ sock.settimeout.assert_called_with(10)
+ # Set socket timeout while already connected
+ cli.socket_timeout = 42
+ sock.settimeout.assert_called_with(42)
+ # set a socket timeout using str
+ cli.socket_timeout = '10'
+ sock.settimeout.assert_called_with(10)
+ # Set socket timeout to None
+ cli.socket_timeout = None
+ sock.settimeout.assert_called_with(None)
+ # Set socket timeout Raises Exception
+ with self.assertRaises(ValueError):
+ cli.socket_timeout = 'foo'
+ with self.assertRaises(ValueError, msg='socket_timeout expects a non zero positive integer'):
+ cli.socket_timeout = '0'
+ with self.assertRaises(ValueError, msg='socket_timeout expects a non zero positive integer'):
+ cli.socket_timeout = '-1'