#!/bin/sh

set -eu

write_to_file() {
    cat >> "$1"
    echo "[---- $1 ----]"
    cat -n "$1"
    echo "[------------]"
}

cd ${AUTOPKGTEST_TMP:-/tmp}
rm -rf myproject

set -x

django-admin startproject myproject
cd myproject

./manage.py startapp myapp

write_to_file myapp/models.py <<MODELS
class Thing(models.Model):
    name = models.CharField(max_length=60)
MODELS

write_to_file myapp/admin.py <<ADMIN
from myapp import models
from import_export.admin import ImportExportModelAdmin

@admin.register(models.Thing)
class ThingAdmin(ImportExportModelAdmin):
    pass
ADMIN

write_to_file myapp/tests.py <<TESTS
from django.contrib.auth.models import User

class TestAdmin(TestCase):
    def test_admin_with_import_export(self):
        admin = User.objects.create(username="admin", is_superuser=True, is_staff=True)
        self.client.force_login(admin)
        self.client.get("/admin/myapp/thing/")
TESTS

echo 'INSTALLED_APPS += ["import_export", "myapp",]' | tee --append myproject/settings.py

./manage.py makemigrations
./manage.py test -v2
