feat: implementacion de dashboards por rol, soporte de clases virtuales concurrentes en importador de sheets y cartelera del dia

This commit is contained in:
2026-09-18 23:04:48 -03:00
parent 47b50ede7e
commit 1080acd43a
240 changed files with 8354 additions and 8886 deletions
+45
View File
@@ -0,0 +1,45 @@
import unittest
from app import create_app, db
from app.models.user import User
class TestViewSwitcher(unittest.TestCase):
def setUp(self):
self.app = create_app()
self.app.config['TESTING'] = True
self.app.config['WTF_CSRF_ENABLED'] = False
self.client = self.app.test_client()
self.app_context = self.app.app_context()
self.app_context.push()
# Login con usuario admin para acceder a las vistas protegidas
self.user = User.query.filter_by(is_active=True).first()
if self.user:
with self.client.session_transaction() as sess:
sess['_user_id'] = str(self.user.id)
sess['_fresh'] = True
def tearDown(self):
self.app_context.pop()
def test_classrooms_view_switcher_rendered(self):
res = self.client.get('/classrooms/?view_mode=physical')
self.assertEqual(res.status_code, 200)
html = res.get_data(as_text=True)
# Verificar que el selector de vista está presente
self.assertIn('view-switcher-group', html)
self.assertIn('data-context="classrooms"', html)
self.assertIn('data-view-container="cards"', html)
self.assertIn('data-view-container="table"', html)
def test_reservations_view_switcher_rendered(self):
res = self.client.get('/schedule/list')
self.assertEqual(res.status_code, 200)
html = res.get_data(as_text=True)
# Verificar que el selector de vista está presente
self.assertIn('view-switcher-group', html)
self.assertIn('data-context="reservations"', html)
self.assertIn('data-view-container="table"', html)
self.assertIn('data-view-container="cards"', html)
if __name__ == '__main__':
unittest.main()