mirror of
https://github.com/django-helpdesk/django-helpdesk.git
synced 2025-08-14 10:08:28 +02:00
Django1.7 tests: load initial_data w/ migration
This commit is contained in:
44
helpdesk/migrations/0004_initial_data_import.py
Normal file
44
helpdesk/migrations/0004_initial_data_import.py
Normal file
@ -0,0 +1,44 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import os
|
||||
from sys import path
|
||||
|
||||
from django.db import models, migrations
|
||||
from django.core import serializers
|
||||
|
||||
fixture_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '../fixtures'))
|
||||
fixture_filename = 'initial_data.json'
|
||||
|
||||
def deserialize_fixture():
|
||||
fixture_file = os.path.join(fixture_dir, fixture_filename)
|
||||
|
||||
with open(fixture_file, 'rb') as fixture:
|
||||
return list(serializers.deserialize('json', fixture, ignorenonexistent=True))
|
||||
|
||||
|
||||
def load_fixture(apps, schema_editor):
|
||||
objects = deserialize_fixture()
|
||||
|
||||
for obj in objects:
|
||||
obj.save()
|
||||
|
||||
|
||||
def unload_fixture(apps, schema_editor):
|
||||
"Delete all EmailTemplate objects"
|
||||
|
||||
objects = deserialize_fixture()
|
||||
|
||||
EmailTemplate = apps.get_model("helpdesk", "emailtemplate")
|
||||
EmailTemplate.objects.filter(pk__in=[ obj.object.pk for obj in objects ]).delete()
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('helpdesk', '0003_populate_usersettings'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(load_fixture, reverse_code=unload_fixture),
|
||||
]
|
Reference in New Issue
Block a user