38086-vm/test_render.py
2026-02-13 03:03:06 +00:00

58 lines
1.6 KiB
Python

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()