58 lines
1.6 KiB
Python
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()
|