spotiplayer-pi/tests/test_app.py

55 lines
1.9 KiB
Python

import unittest
from spotiplayer_pi.main import parse_config
from spotiplayer_pi.api import Api
class TestApp(unittest.TestCase):
def test_config(self):
self.cfg = parse_config()
# Assertions for config structure and values
self.assertIsNotNone(self.cfg["refresh_token"])
self.assertIsNotNone(self.cfg["base_64"])
self.assertIsInstance(self.cfg["api_interval"], (int, float))
self.assertGreater(self.cfg["api_interval"], 0)
self.assertIsInstance(self.cfg["refresh_interval"], (int, float))
self.assertGreater(self.cfg["refresh_interval"], 0)
self.assertIn("color_theme", self.cfg)
# Check color_theme structure
color_theme = self.cfg["color_theme"]
self.assertIsInstance(color_theme, dict)
for key in ["text", "bar_inside", "background"]:
self.assertIn(key, color_theme)
self.assertIsInstance(color_theme[key], tuple)
self.assertEqual(len(color_theme[key]), 3)
self.assertTrue(
all(isinstance(c, int) and 0 <= c <= 255 for c in color_theme[key])
)
def test_refreshAuth(self):
self.cfg = parse_config()
self.api = Api(self.cfg["refresh_token"], self.cfg["base_64"])
expires_in = self.api.refreshAuth()
self.assertIsNotNone(self.api.access_token)
self.assertIsNotNone(expires_in)
self.assertGreater(expires_in, 0)
self.assertIn("Authorization", self.api.header)
def test_getPlaying(self):
self.cfg = parse_config()
self.api = Api(self.cfg["refresh_token"], self.cfg["base_64"])
self.api.refreshAuth()
result = self.api.getPlaying()
if result != "not-playing":
self.assertIsNotNone(result)
self.assertIn("track", result)
self.assertIn("album", result)
self.assertIn("artists", result)
if __name__ == "__main__":
unittest.main()