"""Страница /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()