112
This commit is contained in:
129
backend/verify_taxonomy.py
Normal file
129
backend/verify_taxonomy.py
Normal file
@@ -0,0 +1,129 @@
|
||||
#!/usr/bin/env python
|
||||
"""
|
||||
Verify Tags and Categories Implementation
|
||||
Tests that ContentTaxonomy integration is working correctly
|
||||
"""
|
||||
import os
|
||||
import sys
|
||||
import django
|
||||
|
||||
# Add the backend directory to the path
|
||||
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
# Setup Django
|
||||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'igny8_core.settings')
|
||||
django.setup()
|
||||
|
||||
from igny8_core.business.content.models import Content, ContentTaxonomy
|
||||
from igny8_core.modules.writer.serializers import ContentSerializer
|
||||
|
||||
print("=" * 80)
|
||||
print("VERIFYING TAGS AND CATEGORIES IMPLEMENTATION")
|
||||
print("=" * 80)
|
||||
|
||||
# Check if ContentTaxonomy model is accessible
|
||||
print("\n1. ContentTaxonomy Model Check:")
|
||||
try:
|
||||
taxonomy_count = ContentTaxonomy.objects.count()
|
||||
print(f" ✓ ContentTaxonomy model accessible")
|
||||
print(f" ✓ Total taxonomy terms in database: {taxonomy_count}")
|
||||
|
||||
# Show breakdown by type
|
||||
tag_count = ContentTaxonomy.objects.filter(taxonomy_type='tag').count()
|
||||
category_count = ContentTaxonomy.objects.filter(taxonomy_type='category').count()
|
||||
print(f" - Tags: {tag_count}")
|
||||
print(f" - Categories: {category_count}")
|
||||
except Exception as e:
|
||||
print(f" ✗ Error accessing ContentTaxonomy: {e}")
|
||||
sys.exit(1)
|
||||
|
||||
# Check Content model has taxonomy_terms field
|
||||
print("\n2. Content Model Taxonomy Field Check:")
|
||||
try:
|
||||
content = Content.objects.first()
|
||||
if content:
|
||||
taxonomy_terms = content.taxonomy_terms.all()
|
||||
print(f" ✓ Content.taxonomy_terms field accessible")
|
||||
print(f" ✓ Sample content (ID: {content.id}) has {taxonomy_terms.count()} taxonomy terms")
|
||||
for term in taxonomy_terms:
|
||||
print(f" - {term.name} ({term.taxonomy_type})")
|
||||
else:
|
||||
print(" ⚠ No content found in database")
|
||||
except Exception as e:
|
||||
print(f" ✗ Error accessing Content.taxonomy_terms: {e}")
|
||||
sys.exit(1)
|
||||
|
||||
# Check serializer includes tags and categories
|
||||
print("\n3. ContentSerializer Tags/Categories Check:")
|
||||
try:
|
||||
if content:
|
||||
serializer = ContentSerializer(content)
|
||||
data = serializer.data
|
||||
|
||||
# Check if fields exist
|
||||
has_tags_field = 'tags' in data
|
||||
has_categories_field = 'categories' in data
|
||||
has_taxonomy_data = 'taxonomy_terms_data' in data
|
||||
|
||||
print(f" ✓ Serializer includes 'tags' field: {has_tags_field}")
|
||||
print(f" ✓ Serializer includes 'categories' field: {has_categories_field}")
|
||||
print(f" ✓ Serializer includes 'taxonomy_terms_data' field: {has_taxonomy_data}")
|
||||
|
||||
if has_tags_field:
|
||||
print(f" - Tags: {data.get('tags', [])}")
|
||||
if has_categories_field:
|
||||
print(f" - Categories: {data.get('categories', [])}")
|
||||
|
||||
else:
|
||||
print(" ⚠ No content to serialize")
|
||||
except Exception as e:
|
||||
print(f" ✗ Error serializing content: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
sys.exit(1)
|
||||
|
||||
# Check if we can create taxonomy terms
|
||||
print("\n4. Creating Test Taxonomy Terms:")
|
||||
try:
|
||||
from django.utils.text import slugify
|
||||
|
||||
# Try to create a test tag
|
||||
test_tag, created = ContentTaxonomy.objects.get_or_create(
|
||||
name="Test Tag",
|
||||
taxonomy_type='tag',
|
||||
defaults={
|
||||
'slug': slugify("Test Tag"),
|
||||
}
|
||||
)
|
||||
if created:
|
||||
print(f" ✓ Created new test tag: {test_tag.name}")
|
||||
else:
|
||||
print(f" ✓ Test tag already exists: {test_tag.name}")
|
||||
|
||||
# Try to create a test category
|
||||
test_category, created = ContentTaxonomy.objects.get_or_create(
|
||||
name="Test Category",
|
||||
taxonomy_type='category',
|
||||
defaults={
|
||||
'slug': slugify("Test Category"),
|
||||
}
|
||||
)
|
||||
if created:
|
||||
print(f" ✓ Created new test category: {test_category.name}")
|
||||
else:
|
||||
print(f" ✓ Test category already exists: {test_category.name}")
|
||||
|
||||
except Exception as e:
|
||||
print(f" ✗ Error creating taxonomy terms: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
sys.exit(1)
|
||||
|
||||
print("\n" + "=" * 80)
|
||||
print("VERIFICATION COMPLETE")
|
||||
print("=" * 80)
|
||||
print("\nNext steps:")
|
||||
print("1. Access Django admin at /admin/writer/contenttaxonomy/")
|
||||
print("2. Generate content via AI and check if tags/categories are saved")
|
||||
print("3. Check API response includes 'tags' and 'categories' fields")
|
||||
print("=" * 80)
|
||||
Reference in New Issue
Block a user