summaryrefslogtreecommitdiff
path: root/tests/mach2_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/mach2_test.py')
-rw-r--r--tests/mach2_test.py43
1 files changed, 40 insertions, 3 deletions
diff --git a/tests/mach2_test.py b/tests/mach2_test.py
index c33fd92..adee00d 100644
--- a/tests/mach2_test.py
+++ b/tests/mach2_test.py
@@ -1,4 +1,7 @@
+"""Tests for the mach2 app."""
import json
+import random
+import string
import unittest
import pytest
@@ -9,22 +12,33 @@ from mach2 import create_app
@pytest.mark.usefixtures("app")
class Mach2TestCase(unittest.TestCase):
+ """Provides tests for the mach2 app."""
def setUp(self):
+ """Set up the state before the tests run."""
app = create_app(database=self.db, library=self.library_db)
- app.config['TESTING'] = True
+ app.config["TESTING"] = True
self.app = app.test_client()
def login(self, username, password):
- return self.app.post('/login', data=dict(
+ """Log in to the app.
+
+ Args:
+ username (str): The username to log in with.
+ password (str): The password to log in with.
+
+ """
+ return self.app.post("/login", data=dict(
username=username,
password=password
), follow_redirects=True)
def logout(self):
- return self.app.get('/logout', follow_redirects=True)
+ """Log out of the app."""
+ return self.app.get("/logout", follow_redirects=True)
def test_login(self):
+ """Test logging in to the app."""
rv = self.login("admin", "testpass")
assert six.b("Log out") in rv.data
self.logout()
@@ -33,6 +47,7 @@ class Mach2TestCase(unittest.TestCase):
self.logout()
def test_album(self):
+ """Test retrieving albums."""
self.login("admin", "testpass")
rv = self.app.get("/albums/1")
@@ -41,6 +56,7 @@ class Mach2TestCase(unittest.TestCase):
self.logout()
def test_artists(self):
+ """Test retrieving artists."""
self.login("admin", "testpass")
rv = self.app.get("/artists")
@@ -51,3 +67,24 @@ class Mach2TestCase(unittest.TestCase):
assert artists
self.logout()
+
+ def test_encoding_options(self):
+ """Test setting encoding options."""
+ self.login("admin", "testpass")
+
+ transcode_string = "".join(
+ random.choice(
+ string.ascii_lowercase + string.digits) for _ in range(10))
+
+ transcode_command = dict(transcode_command=transcode_string)
+
+ put_response = self.app.put(
+ "/user", data=json.dumps(transcode_command),
+ content_type="application/json")
+
+ assert put_response.status_code == 200
+
+ get_response = self.app.get("/user")
+
+ user = json.loads(get_response.data.decode("utf-8"))
+ assert user["transcode_command"] == six.u(transcode_string)