update pre-commit config
This commit is contained in:
parent
cb78206c2d
commit
0f9e295ba3
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
||||
spotiplayer_pi/__pycache__
|
||||
tests/__pycache__
|
||||
|
@ -6,3 +6,12 @@ repos:
|
||||
args: ["--ignore=E711,E721"]
|
||||
# args: ["--fix"] # Automatically apply fixes where possible
|
||||
- id: ruff-format
|
||||
|
||||
repos:
|
||||
- repo: local
|
||||
hooks:
|
||||
- id: run-unittest
|
||||
name: Run Unit Tests
|
||||
entry: bash -c "python -m unittest discover -s tests -p '*_test.py'"
|
||||
language: system
|
||||
always_run: true
|
||||
|
54
tests/test_app.py
Normal file
54
tests/test_app.py
Normal file
@ -0,0 +1,54 @@
|
||||
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_outline", "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()
|
Loading…
x
Reference in New Issue
Block a user