]> kaliko git repositories - python-musicpd.git/blobdiff - test.py
Add missing test for plain MPD_HOST="example.org"
[python-musicpd.git] / test.py
diff --git a/test.py b/test.py
index ad3d4713f885610e24ebb10de8a452b07d9f6b41..14e4667d07c3c916f25f52231240da7ac329f64e 100755 (executable)
--- a/test.py
+++ b/test.py
@@ -61,11 +61,42 @@ class testEnvVar(unittest.TestCase):
         self.assertEqual(client.pwd, 'pa55w04d')
         self.assertEqual(client.host, 'example.org')
 
+        # Test host alone
+        os.environ['MPD_HOST'] = 'example.org'
+        client = musicpd.MPDClient()
+        self.assertFalse(client.pwd)
+        self.assertEqual(client.host, 'example.org')
+
+        # Test password extraction (no host)
+        os.environ['MPD_HOST'] = 'pa55w04d@'
+        with mock.patch('os.path.exists', return_value=False):
+            client = musicpd.MPDClient()
+        self.assertEqual(client.pwd, 'pa55w04d')
+        self.assertEqual(client.host, 'localhost')
+
+        # Test badly formatted MPD_HOST
+        os.environ['MPD_HOST'] = '@'
+        with mock.patch('os.path.exists', return_value=False):
+            client = musicpd.MPDClient()
+        self.assertEqual(client.pwd, None)
+        self.assertEqual(client.host, 'localhost')
+
         # Test unix socket extraction
         os.environ['MPD_HOST'] = 'pa55w04d@/unix/sock'
         client = musicpd.MPDClient()
         self.assertEqual(client.host, '/unix/sock')
 
+        # Test plain abstract socket extraction
+        os.environ['MPD_HOST'] = '@abstract'
+        client = musicpd.MPDClient()
+        self.assertEqual(client.host, '@abstract')
+
+        # Test password and abstract socket extraction
+        os.environ['MPD_HOST'] = 'pass@@abstract'
+        client = musicpd.MPDClient()
+        self.assertEqual(client.pwd, 'pass')
+        self.assertEqual(client.host, '@abstract')
+
         # Test unix socket fallback
         os.environ.pop('MPD_HOST', None)
         os.environ.pop('MPD_PORT', None)
@@ -478,6 +509,21 @@ class TestMPDClient(unittest.TestCase):
         res = self.client.albumart('muse/Raised Fist/2002-Dedication/', 0)
         self.assertEqual(res.get('data'), data)
 
+    def test_command_list(self):
+        self.MPDWillReturn('updating_db: 42\n',
+                           f'{musicpd.NEXT}\n',
+                           'repeat: 0\n',
+                           'random: 0\n',
+                           f'{musicpd.NEXT}\n',
+                           f'{musicpd.NEXT}\n',
+                           'OK\n')
+        self.client.command_list_ok_begin()
+        self.client.update()
+        self.client.status()
+        self.client.repeat(1)
+        self.client.command_list_end()
+        self.assertMPDReceived('command_list_end\n')
+
 
 if __name__ == '__main__':
     unittest.main()