import os import django from django.conf import settings from django.template.loader import render_to_string from django.test import RequestFactory os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings') django.setup() from core.models import SystemSetting, Product, Customer, Sale, Category, PaymentMethod from django.utils import timezone import datetime def test_render(): factory = RequestFactory() request = factory.get('/') # Simulate a user from django.contrib.auth.models import User user = User.objects.first() request.user = user settings_obj = SystemSetting.objects.first() context = { 'site_settings': settings_obj, 'settings': settings_obj, 'total_sales_amount': 0, 'total_receivables': 0, 'total_payables': 0, 'total_sales_count': 0, 'total_products': 0, 'total_customers': 0, 'monthly_labels': [], 'monthly_data': [], 'chart_labels': [], 'chart_data': [], 'category_labels': [], 'category_data': [], 'payment_labels': [], 'payment_data': [], 'top_products': [], 'low_stock_count': 0, 'low_stock_products': [], 'expired_count': 0, 'recent_sales': [], } try: html = render_to_string('core/index.html', context, request=request) print(f"Render successful, length: {len(html)}") if len(html) < 100: print("HTML is too short!") print(html) except Exception as e: print(f"Render failed: {e}") if __name__ == "__main__": test_render()