44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
"""Страница /components — auth и HTML."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import unittest
|
|
|
|
from app import create_app, db
|
|
from app.services.setup_state import mark_setup_complete
|
|
from tests.helpers.zootech_test_helpers import ZootechTestConfig, drain_response
|
|
|
|
|
|
class ComponentsPageServedTests(unittest.TestCase):
|
|
def setUp(self) -> None:
|
|
self.app = create_app(ZootechTestConfig)
|
|
self.client = self.app.test_client()
|
|
self.ctx = self.app.app_context()
|
|
self.ctx.push()
|
|
db.create_all()
|
|
mark_setup_complete(self.app)
|
|
|
|
def tearDown(self) -> None:
|
|
db.session.remove()
|
|
db.drop_all()
|
|
self.ctx.pop()
|
|
|
|
def test_components_redirects_without_session(self) -> None:
|
|
resp = self.client.get("/components", follow_redirects=False)
|
|
self.assertEqual(resp.status_code, 302)
|
|
drain_response(resp)
|
|
|
|
def test_components_ok_after_login(self) -> None:
|
|
self.client.post(
|
|
"/api/auth/login",
|
|
json={"login": "zootech-test-admin", "password": "zootech-test-secret"},
|
|
)
|
|
resp = self.client.get("/components")
|
|
self.assertEqual(resp.status_code, 200)
|
|
self.assertIn(b"html", resp.data.lower())
|
|
drain_response(resp)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|