datatracker/ietf/name/generate_fixtures.py
2012-01-24 17:17:24 +00:00

46 lines
1.1 KiB
Python
Executable file

#!/usr/bin/python
# boiler plate
import os, sys
ietf_path = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), '../../ietf'))
sys.path.insert(0, ietf_path)
from django.core.management import setup_environ
import settings
setup_environ(settings)
# script
from django.core.serializers import serialize
from django.db.models import Q
def output(name, qs):
try:
f = open(os.path.join(os.path.dirname(os.path.abspath(__file__)), "fixtures/%s.xml" % name), 'w')
f.write(serialize("xml", qs, indent=4))
f.close()
except:
from django.db import connection
from pprint import pprint
pprint(connection.queries)
raise
# pick all name models directly out of the module
objects = []
import ietf.name.models
for n in dir(ietf.name.models):
if n[:1].upper() == n[:1] and n.endswith("Name"):
model = getattr(ietf.name.models, n)
if not model._meta.abstract:
objects.extend(model.objects.all())
import ietf.doc.models # FIXME
objects += ietf.doc.models.StateType.objects.all()
objects += ietf.doc.models.State.objects.all()
output("names", objects)