diff options
Diffstat (limited to 'tests/mach2_test.py')
-rw-r--r-- | tests/mach2_test.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/mach2_test.py b/tests/mach2_test.py new file mode 100644 index 0000000..c45ff2a --- /dev/null +++ b/tests/mach2_test.py @@ -0,0 +1,52 @@ +import json +import unittest + +import pytest + +from mach2 import create_app + + +@pytest.mark.usefixtures("app") +class Mach2TestCase(unittest.TestCase): + + def setUp(self): + app = create_app(database=self.db, library=self.library_db) + app.config['TESTING'] = True + self.app = app.test_client() + + def login(self, username, password): + 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) + + def test_login(self): + rv = self.login("admin", "testpass") + assert bytes("Log out", "utf-8") in rv.data + self.logout() + rv = self.login("wrong", "definitelywrong") + assert bytes("Log out", "utf-8") not in rv.data + self.logout() + + def test_album(self): + self.login("admin", "testpass") + + rv = self.app.get("/albums/1") + assert bytes("Album 1", "utf-8") in rv.data + + self.logout() + + def test_artists(self): + self.login("admin", "testpass") + rv = self.app.get("/artists") + + assert bytes("Artist 1", "utf-8") in rv.data + assert bytes("Artist 2", "utf-8") in rv.data + + artists = json.loads(rv.data.decode("utf-8")) + assert artists + + self.logout() |