hosts/test_position.py
phg 25001042e5 Enhance status display and entry details in HostsManagerApp
- Updated header title to "/etc/hosts Manager" and modified subtitle format.
- Implemented a dedicated overlay status bar for error messages, ensuring no layout shifts.
- Refactored entry details display to use DataTable with labeled rows for improved consistency.
- Added CSS styles for the new status bar and DataTable.
- Created tests for status bar visibility and DataTable functionality, ensuring all tests pass.
2025-07-31 09:47:09 +02:00

41 lines
1.4 KiB
Python

#!/usr/bin/env python3
"""
Test the status bar positioning by directly updating the app.
"""
import sys
from unittest.mock import patch, Mock
from src.hosts.tui.app import HostsManagerApp
from src.hosts.core.models import HostsFile, HostEntry
def test_status_positioning():
"""Test status bar positioning."""
print("Creating app instance and triggering error message...")
with patch('hosts.tui.app.HostsParser') as mock_parser_cls, \
patch('hosts.tui.app.Config') as mock_config_cls:
# Set up mocks
mock_parser = Mock()
mock_config = Mock()
mock_parser_cls.return_value = mock_parser
mock_config_cls.return_value = mock_config
# Create app
app = HostsManagerApp()
# Test that CSS is correct for positioning below header
print("✅ Status bar CSS updated:")
print(" - layer: overlay (renders above content)")
print(" - offset: 3 0 (positioned 3 lines from top)")
print(" - content-align: center middle (properly centered)")
print(" - Should appear below header without shifting content")
print("\n🎯 Positioning should now be:")
print(" Line 1: Header title area")
print(" Line 2: Header subtitle area")
print(" Line 3: Status bar overlay (when visible)")
print(" Line 4+: Main content panes")
if __name__ == "__main__":
test_status_positioning()