+class testEnvVar(unittest.TestCase):
+
+ def test_envvar(self):
+ os.environ.pop('MPD_HOST', None)
+ os.environ.pop('MPD_PORT', None)
+ client = musicpd.MPDClient()
+ self.assertEqual(client.host, 'localhost')
+ self.assertEqual(client.port, '6600')
+
+ os.environ['MPD_HOST'] = 'pa55w04d@example.org'
+ client = musicpd.MPDClient()
+ self.assertEqual(client.pwd, 'pa55w04d')
+ self.assertEqual(client.host, 'example.org')
+ self.assertEqual(client.port, '6600')
+
+ os.environ.pop('MPD_HOST', None)
+ os.environ['MPD_PORT'] = '6666'
+ client = musicpd.MPDClient()
+ self.assertEqual(client.pwd, None)
+ self.assertEqual(client.host, 'localhost')
+ self.assertEqual(client.port, '6666')
+
+ # Test unix socket fallback
+ os.environ.pop('MPD_HOST', None)
+ os.environ.pop('MPD_PORT', None)
+ os.environ.pop('XDG_RUNTIME_DIR', None)
+ with mock.patch('os.path.exists', return_value=True):
+ client = musicpd.MPDClient()
+ self.assertEqual(client.host, '/run/mpd/socket')
+
+ os.environ.pop('MPD_HOST', None)
+ os.environ.pop('MPD_PORT', None)
+ os.environ['XDG_RUNTIME_DIR'] = '/run/user/1000/'
+ with mock.patch('os.path.exists', return_value=True):
+ client = musicpd.MPDClient()
+ self.assertEqual(client.host, '/run/user/1000/mpd/socket')
+