mirror of
https://github.com/jazzband/django-eav2.git
synced 2026-03-16 22:40:26 +00:00
tests: refactor tests to use pytest
This commit is contained in:
parent
597a5374dc
commit
3ebbf8d8e7
12 changed files with 105 additions and 227 deletions
|
|
@ -1,18 +0,0 @@
|
|||
from django.db import models
|
||||
from eav.models import EAVModelMeta
|
||||
|
||||
|
||||
class ExampleMetaclassModel(models.Model):
|
||||
__metaclass__ = EAVModelMeta
|
||||
name = models.CharField(max_length=12)
|
||||
|
||||
def __unicode__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
class RegisterTestModel(models.Model):
|
||||
__metaclass__ = EAVModelMeta
|
||||
name = models.CharField(max_length=12)
|
||||
|
||||
def __unicode__(self):
|
||||
return self.name
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
from django.db import models
|
||||
from eav.models import EAVModelMeta
|
||||
|
||||
|
||||
class ExampleMetaclassModel(models.Model, metaclass=EAVModelMeta):
|
||||
name = models.CharField(max_length=12)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
class RegisterTestModel(models.Model, metaclass=EAVModelMeta):
|
||||
name = models.CharField(max_length=12)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
from django.db import models
|
||||
from eav.decorators import register_eav
|
||||
|
||||
|
||||
class Patient(models.Model):
|
||||
name = models.CharField(max_length=12)
|
||||
example = models.ForeignKey(
|
||||
'ExampleModel', null=True, blank=True, on_delete=models.PROTECT)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
def __repr__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
class Encounter(models.Model):
|
||||
num = models.PositiveSmallIntegerField()
|
||||
patient = models.ForeignKey(Patient, on_delete=models.PROTECT)
|
||||
|
||||
def __str__(self):
|
||||
return '%s: encounter num %d' % (self.patient, self.num)
|
||||
|
||||
def __repr__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
@register_eav()
|
||||
class ExampleModel(models.Model):
|
||||
name = models.CharField(max_length=12)
|
||||
|
||||
def __unicode__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
@register_eav()
|
||||
class M2MModel(models.Model):
|
||||
name = models.CharField(max_length=12)
|
||||
models = models.ManyToManyField(ExampleModel)
|
||||
|
||||
def __unicode__(self):
|
||||
return self.name
|
||||
|
|
@ -1,18 +1,11 @@
|
|||
from django.core.exceptions import ValidationError
|
||||
from django.test import TestCase
|
||||
|
||||
import sys
|
||||
import eav
|
||||
from eav.exceptions import IllegalAssignmentException
|
||||
from eav.models import Attribute, Value
|
||||
from eav.registry import EavConfig
|
||||
|
||||
from .models import Encounter, Patient
|
||||
|
||||
if sys.version_info[0] > 2:
|
||||
from .metaclass_models3 import RegisterTestModel
|
||||
else:
|
||||
from .metaclass_models2 import RegisterTestModel
|
||||
from main_app.models import Encounter, Patient, RegisterTestModel
|
||||
|
||||
|
||||
class Attributes(TestCase):
|
||||
|
|
@ -1,17 +1,14 @@
|
|||
from django.contrib.auth.models import User
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.test import TestCase
|
||||
from django.utils import timezone
|
||||
|
||||
from django.test import TestCase
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
import eav
|
||||
from eav.models import Attribute, Value, EnumValue, EnumGroup
|
||||
|
||||
from .models import Patient
|
||||
from eav.models import Attribute, EnumGroup, EnumValue, Value
|
||||
from main_app.models import Patient
|
||||
|
||||
|
||||
class DataValidation(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
eav.register(Patient)
|
||||
|
||||
|
|
@ -32,7 +29,9 @@ class DataValidation(TestCase):
|
|||
p.eav.age = 5
|
||||
p.save()
|
||||
|
||||
Attribute.objects.create(name='Weight', datatype=Attribute.TYPE_INT, required=True)
|
||||
Attribute.objects.create(
|
||||
name='Weight', datatype=Attribute.TYPE_INT, required=True
|
||||
)
|
||||
p.eav.age = 6
|
||||
self.assertRaises(ValidationError, p.save)
|
||||
p = Patient.objects.get(name='Bob')
|
||||
|
|
@ -43,10 +42,12 @@ class DataValidation(TestCase):
|
|||
self.assertEqual(p.eav.weight, 23)
|
||||
|
||||
def test_create_required_field(self):
|
||||
Attribute.objects.create(name='Weight', datatype=Attribute.TYPE_INT, required=True)
|
||||
self.assertRaises(ValidationError,
|
||||
Patient.objects.create,
|
||||
name='Joe', eav__age=5)
|
||||
Attribute.objects.create(
|
||||
name='Weight', datatype=Attribute.TYPE_INT, required=True
|
||||
)
|
||||
self.assertRaises(
|
||||
ValidationError, Patient.objects.create, name='Joe', eav__age=5
|
||||
)
|
||||
self.assertEqual(Patient.objects.count(), 0)
|
||||
self.assertEqual(Value.objects.count(), 0)
|
||||
|
||||
|
|
@ -55,9 +56,9 @@ class DataValidation(TestCase):
|
|||
self.assertEqual(Value.objects.count(), 2)
|
||||
|
||||
def test_validation_error_create(self):
|
||||
self.assertRaises(ValidationError,
|
||||
Patient.objects.create,
|
||||
name='Joe', eav__age='df')
|
||||
self.assertRaises(
|
||||
ValidationError, Patient.objects.create, name='Joe', eav__age='df'
|
||||
)
|
||||
self.assertEqual(Patient.objects.count(), 0)
|
||||
self.assertEqual(Value.objects.count(), 0)
|
||||
|
||||
|
|
@ -108,7 +109,7 @@ class DataValidation(TestCase):
|
|||
p.eav.height = 15
|
||||
p.save()
|
||||
self.assertEqual(Patient.objects.get(pk=p.pk).eav.height, 15)
|
||||
p.eav.height='2.3'
|
||||
p.eav.height = '2.3'
|
||||
p.save()
|
||||
self.assertEqual(Patient.objects.get(pk=p.pk).eav.height, 2.3)
|
||||
|
||||
|
|
@ -150,7 +151,9 @@ class DataValidation(TestCase):
|
|||
ynu.values.add(yes)
|
||||
ynu.values.add(no)
|
||||
ynu.values.add(unkown)
|
||||
Attribute.objects.create(name='Fever?', datatype=Attribute.TYPE_ENUM, enum_group=ynu)
|
||||
Attribute.objects.create(
|
||||
name='Fever?', datatype=Attribute.TYPE_ENUM, enum_group=ynu
|
||||
)
|
||||
|
||||
p = Patient.objects.create(name='Joe')
|
||||
p.eav.fever = 5
|
||||
|
|
@ -204,4 +207,6 @@ class DataValidation(TestCase):
|
|||
self.assertRaises(ValidationError, p.save)
|
||||
p.eav.multi = "one;two;three"
|
||||
p.save()
|
||||
self.assertEqual(Patient.objects.get(pk=p.pk).eav.multi, ["one","two","three"])
|
||||
self.assertEqual(
|
||||
Patient.objects.get(pk=p.pk).eav.multi, ["one", "two", "three"]
|
||||
)
|
||||
|
|
@ -1,16 +1,16 @@
|
|||
from django.test import TestCase
|
||||
import sys
|
||||
|
||||
from django.contrib.admin.sites import AdminSite
|
||||
from django.core.handlers.base import BaseHandler
|
||||
from django.forms import ModelForm
|
||||
from django.test import TestCase
|
||||
from django.test.client import RequestFactory
|
||||
|
||||
import eav
|
||||
import sys
|
||||
from eav.admin import *
|
||||
from .models import Patient, M2MModel, ExampleModel
|
||||
from eav.models import Attribute
|
||||
from eav.forms import BaseDynamicEntityForm
|
||||
from django.contrib import admin
|
||||
from django.core.handlers.base import BaseHandler
|
||||
from django.test.client import RequestFactory
|
||||
from django.forms import ModelForm
|
||||
from eav.models import Attribute
|
||||
from main_app.models import ExampleModel, M2MModel, Patient
|
||||
|
||||
|
||||
class MockRequest(RequestFactory):
|
||||
|
|
@ -24,8 +24,10 @@ class MockRequest(RequestFactory):
|
|||
if sys.version_info[0] < 2:
|
||||
for middleware_method in handler._request_middleware:
|
||||
if middleware_method(request):
|
||||
raise Exception("Couldn't create request mock object - "
|
||||
"request middleware returned a response")
|
||||
raise Exception(
|
||||
"Couldn't create request mock object - "
|
||||
"request middleware returned a response"
|
||||
)
|
||||
return request
|
||||
|
||||
|
||||
|
|
@ -66,9 +68,7 @@ class Forms(TestCase):
|
|||
gender_group.values.add(self.female, self.male)
|
||||
|
||||
Attribute.objects.create(
|
||||
name='gender',
|
||||
datatype=Attribute.TYPE_ENUM,
|
||||
enum_group=gender_group
|
||||
name='gender', datatype=Attribute.TYPE_ENUM, enum_group=gender_group
|
||||
)
|
||||
|
||||
self.instance = Patient.objects.create(name='Jim Morrison')
|
||||
|
|
@ -1,9 +1,8 @@
|
|||
from django.test import TestCase
|
||||
|
||||
from eav.models import EnumGroup, Attribute, Value, EnumValue
|
||||
|
||||
import eav
|
||||
from .models import Patient
|
||||
from eav.models import Attribute, EnumGroup, EnumValue, Value
|
||||
from main_app.models import Patient
|
||||
|
||||
|
||||
class MiscModels(TestCase):
|
||||
|
|
@ -14,7 +13,9 @@ class MiscModels(TestCase):
|
|||
|
||||
def test_attribute_help_text(self):
|
||||
desc = 'Patient Age'
|
||||
a = Attribute.objects.create(name='age', description=desc, datatype=Attribute.TYPE_INT)
|
||||
a = Attribute.objects.create(
|
||||
name='age', description=desc, datatype=Attribute.TYPE_INT
|
||||
)
|
||||
self.assertEqual(a.help_text, desc)
|
||||
|
||||
def test_setting_to_none_deletes_value(self):
|
||||
|
|
@ -32,7 +33,9 @@ class MiscModels(TestCase):
|
|||
ynu = EnumGroup.objects.create(name='Yes / No / Unknown')
|
||||
ynu.values.add(yes)
|
||||
ynu.values.add(no)
|
||||
Attribute.objects.create(name='is_patient', datatype=Attribute.TYPE_ENUM, enum_group=ynu)
|
||||
Attribute.objects.create(
|
||||
name='is_patient', datatype=Attribute.TYPE_ENUM, enum_group=ynu
|
||||
)
|
||||
eav.register(Patient)
|
||||
p = Patient.objects.create(name='Joe')
|
||||
p.eav.is_patient = 'yes'
|
||||
|
|
@ -6,8 +6,7 @@ from django.test import TestCase
|
|||
import eav
|
||||
from eav.models import Attribute, EnumGroup, EnumValue, Value
|
||||
from eav.registry import EavConfig
|
||||
|
||||
from .models import Encounter, Patient
|
||||
from main_app.models import Encounter, Patient
|
||||
|
||||
|
||||
class Queries(TestCase):
|
||||
|
|
@ -32,7 +31,9 @@ class Queries(TestCase):
|
|||
ynu.values.add(self.no)
|
||||
ynu.values.add(self.unknown)
|
||||
|
||||
Attribute.objects.create(name='fever', datatype=Attribute.TYPE_ENUM, enum_group=ynu)
|
||||
Attribute.objects.create(
|
||||
name='fever', datatype=Attribute.TYPE_ENUM, enum_group=ynu
|
||||
)
|
||||
|
||||
def tearDown(self):
|
||||
eav.unregister(Encounter)
|
||||
|
|
@ -46,26 +47,27 @@ class Queries(TestCase):
|
|||
# Name, age, fever,
|
||||
# city, country, extras
|
||||
# possible illness
|
||||
['Anne', 3, no,
|
||||
'New York', 'USA', {"chills": "yes"},
|
||||
"cold"
|
||||
],
|
||||
['Bob', 15, no,
|
||||
'Bamako', 'Mali', {},
|
||||
""
|
||||
],
|
||||
['Cyrill', 15, yes,
|
||||
'Kisumu', 'Kenya', {"chills": "yes", "headache": "no"},
|
||||
"flu"
|
||||
],
|
||||
['Daniel', 3, no,
|
||||
'Nice', 'France', {"headache": "yes"},
|
||||
"cold"
|
||||
],
|
||||
['Eugene', 2, yes,
|
||||
'France', 'Nice', {"chills": "no", "headache": "yes"},
|
||||
"flu;cold"
|
||||
]
|
||||
['Anne', 3, no, 'New York', 'USA', {"chills": "yes"}, "cold"],
|
||||
['Bob', 15, no, 'Bamako', 'Mali', {}, ""],
|
||||
[
|
||||
'Cyrill',
|
||||
15,
|
||||
yes,
|
||||
'Kisumu',
|
||||
'Kenya',
|
||||
{"chills": "yes", "headache": "no"},
|
||||
"flu",
|
||||
],
|
||||
['Daniel', 3, no, 'Nice', 'France', {"headache": "yes"}, "cold"],
|
||||
[
|
||||
'Eugene',
|
||||
2,
|
||||
yes,
|
||||
'France',
|
||||
'Nice',
|
||||
{"chills": "no", "headache": "yes"},
|
||||
"flu;cold",
|
||||
],
|
||||
]
|
||||
|
||||
for row in data:
|
||||
|
|
@ -76,7 +78,7 @@ class Queries(TestCase):
|
|||
eav__city=row[3],
|
||||
eav__country=row[4],
|
||||
eav__extras=row[5],
|
||||
eav__illness=row[6]
|
||||
eav__illness=row[6],
|
||||
)
|
||||
|
||||
def test_get_or_create_with_eav(self):
|
||||
|
|
@ -95,7 +97,9 @@ class Queries(TestCase):
|
|||
self.assertEqual(Patient.objects.get(eav__age=6), p1)
|
||||
|
||||
Patient.objects.create(name='Fred', eav__age=6)
|
||||
self.assertRaises(MultipleObjectsReturned, lambda: Patient.objects.get(eav__age=6))
|
||||
self.assertRaises(
|
||||
MultipleObjectsReturned, lambda: Patient.objects.get(eav__age=6)
|
||||
)
|
||||
|
||||
def test_filtering_on_normal_and_eav_fields(self):
|
||||
self.init_data()
|
||||
|
|
@ -110,8 +114,8 @@ class Queries(TestCase):
|
|||
self.assertEqual(p.count(), 0)
|
||||
|
||||
# Anne, Daniel
|
||||
q1 = Q(eav__age__gte=3) # Everyone except Eugene
|
||||
q2 = Q(eav__age__lt=15) # Anne, Daniel, Eugene
|
||||
q1 = Q(eav__age__gte=3) # Everyone except Eugene
|
||||
q2 = Q(eav__age__lt=15) # Anne, Daniel, Eugene
|
||||
p = Patient.objects.filter(q2 & q1)
|
||||
self.assertEqual(p.count(), 2)
|
||||
|
||||
|
|
@ -140,11 +144,11 @@ class Queries(TestCase):
|
|||
self.assertEqual(p.count(), 5)
|
||||
|
||||
# Anne, Bob, Daniel
|
||||
q1 = Q(eav__fever=self.no) # Anne, Bob, Daniel
|
||||
q2 = Q(eav__fever=self.yes) # Cyrill, Eugene
|
||||
q3 = Q(eav__country__contains='e') # Cyrill, Daniel, Eugene
|
||||
q4 = q2 & q3 # Cyrill, Daniel, Eugene
|
||||
q5 = (q1 | q4) & q1 # Anne, Bob, Daniel
|
||||
q1 = Q(eav__fever=self.no) # Anne, Bob, Daniel
|
||||
q2 = Q(eav__fever=self.yes) # Cyrill, Eugene
|
||||
q3 = Q(eav__country__contains='e') # Cyrill, Daniel, Eugene
|
||||
q4 = q2 & q3 # Cyrill, Daniel, Eugene
|
||||
q5 = (q1 | q4) & q1 # Anne, Bob, Daniel
|
||||
p = Patient.objects.filter(q5)
|
||||
self.assertEqual(p.count(), 3)
|
||||
|
||||
|
|
@ -218,7 +222,6 @@ class Queries(TestCase):
|
|||
p = Patient.objects.filter(~q1)
|
||||
self.assertEqual(p.count(), 1)
|
||||
|
||||
|
||||
def _order(self, ordering):
|
||||
query = Patient.objects.all().order_by(*ordering)
|
||||
return list(query.values_list('name', flat=True))
|
||||
|
|
@ -226,32 +229,32 @@ class Queries(TestCase):
|
|||
def assert_order_by_results(self, eav_attr='eav'):
|
||||
self.assertEqual(
|
||||
['Bob', 'Eugene', 'Cyrill', 'Anne', 'Daniel'],
|
||||
self._order(['%s__city' % eav_attr])
|
||||
self._order(['%s__city' % eav_attr]),
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
['Eugene', 'Anne', 'Daniel', 'Bob', 'Cyrill'],
|
||||
self._order(['%s__age' % eav_attr, '%s__city' % eav_attr])
|
||||
self._order(['%s__age' % eav_attr, '%s__city' % eav_attr]),
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
['Eugene', 'Cyrill', 'Anne', 'Daniel', 'Bob'],
|
||||
self._order(['%s__fever' % eav_attr, '%s__age' % eav_attr])
|
||||
self._order(['%s__fever' % eav_attr, '%s__age' % eav_attr]),
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
['Eugene', 'Cyrill', 'Daniel', 'Bob', 'Anne'],
|
||||
self._order(['%s__fever' % eav_attr, '-name'])
|
||||
self._order(['%s__fever' % eav_attr, '-name']),
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
['Eugene', 'Daniel', 'Cyrill', 'Bob', 'Anne'],
|
||||
self._order(['-name', '%s__age' % eav_attr])
|
||||
self._order(['-name', '%s__age' % eav_attr]),
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
['Anne', 'Bob', 'Cyrill', 'Daniel', 'Eugene'],
|
||||
self._order(['example__name'])
|
||||
self._order(['example__name']),
|
||||
)
|
||||
|
||||
with self.assertRaises(NotSupportedError):
|
||||
|
|
@ -265,7 +268,6 @@ class Queries(TestCase):
|
|||
self.assert_order_by_results()
|
||||
|
||||
def test_order_by_with_custom_config(self):
|
||||
|
||||
class CustomConfig(EavConfig):
|
||||
eav_attr = "data"
|
||||
generic_relation_attr = "data_values"
|
||||
|
|
@ -1,15 +1,13 @@
|
|||
from django.test import TestCase
|
||||
|
||||
import sys
|
||||
import eav
|
||||
from eav.registry import EavConfig
|
||||
|
||||
from .models import Encounter, ExampleModel, Patient
|
||||
|
||||
if sys.version_info[0] > 2:
|
||||
from .metaclass_models3 import ExampleMetaclassModel
|
||||
else:
|
||||
from .metaclass_models2 import ExampleMetaclassModel
|
||||
from main_app.models import (
|
||||
Encounter,
|
||||
ExampleMetaclassModel,
|
||||
ExampleModel,
|
||||
Patient,
|
||||
)
|
||||
|
||||
|
||||
class RegistryTests(TestCase):
|
||||
|
|
@ -81,9 +79,13 @@ class RegistryTests(TestCase):
|
|||
self.assertFalse(ExampleModel.objects.__class__.__name__ == 'EntityManager')
|
||||
|
||||
def test_unregistering_via_metaclass(self):
|
||||
self.assertTrue(ExampleMetaclassModel.objects.__class__.__name__ == 'EntityManager')
|
||||
self.assertTrue(
|
||||
ExampleMetaclassModel.objects.__class__.__name__ == 'EntityManager'
|
||||
)
|
||||
eav.unregister(ExampleMetaclassModel)
|
||||
self.assertFalse(ExampleMetaclassModel.objects.__class__.__name__ == 'EntityManager')
|
||||
self.assertFalse(
|
||||
ExampleMetaclassModel.objects.__class__.__name__ == 'EntityManager'
|
||||
)
|
||||
|
||||
def test_unregistering_unregistered_model_proceeds_silently(self):
|
||||
eav.unregister(Patient)
|
||||
|
|
@ -94,6 +96,7 @@ class RegistryTests(TestCase):
|
|||
|
||||
def test_doesnt_register_nonmodel(self):
|
||||
with self.assertRaises(ValueError):
|
||||
|
||||
@eav.decorators.register_eav()
|
||||
class Foo(object):
|
||||
pass
|
||||
|
|
@ -2,8 +2,7 @@ from django.test import TestCase
|
|||
|
||||
import eav
|
||||
from eav.registry import EavConfig
|
||||
|
||||
from .models import Patient, Encounter
|
||||
from main_app.models import Encounter, Patient
|
||||
|
||||
|
||||
class RegistryTests(TestCase):
|
||||
|
|
@ -19,8 +18,8 @@ class RegistryTests(TestCase):
|
|||
eav_attr = 'eav_field'
|
||||
generic_relation_attr = 'encounter_eav_values'
|
||||
generic_relation_related_name = 'encounters'
|
||||
eav.register(Encounter, EncounterEav)
|
||||
|
||||
eav.register(Encounter, EncounterEav)
|
||||
|
||||
def test_registering_with_defaults(self):
|
||||
eav.register(Patient)
|
||||
|
|
@ -28,10 +27,8 @@ class RegistryTests(TestCase):
|
|||
self.assertEqual(Patient._eav_config_cls.manager_attr, 'objects')
|
||||
self.assertFalse(Patient._eav_config_cls.manager_only)
|
||||
self.assertEqual(Patient._eav_config_cls.eav_attr, 'eav')
|
||||
self.assertEqual(Patient._eav_config_cls.generic_relation_attr,
|
||||
'eav_values')
|
||||
self.assertEqual(Patient._eav_config_cls.generic_relation_related_name,
|
||||
None)
|
||||
self.assertEqual(Patient._eav_config_cls.generic_relation_attr, 'eav_values')
|
||||
self.assertEqual(Patient._eav_config_cls.generic_relation_related_name, None)
|
||||
eav.unregister(Patient)
|
||||
|
||||
def test_registering_overriding_defaults(self):
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
import os
|
||||
|
||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
SECRET_KEY = 'fake-key'
|
||||
|
||||
SITE_ID = 1
|
||||
|
||||
INSTALLED_APPS = [
|
||||
'django.contrib.auth',
|
||||
'django.contrib.sites',
|
||||
'django.contrib.admin',
|
||||
'django.contrib.messages', # Required for admin app.
|
||||
'django.contrib.contenttypes',
|
||||
'tests',
|
||||
'eav'
|
||||
]
|
||||
|
||||
MIDDLEWARE = [
|
||||
# Following 3 middleware required for admin app.
|
||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||
'django.contrib.messages.middleware.MessageMiddleware',
|
||||
'django.contrib.sessions.middleware.SessionMiddleware'
|
||||
]
|
||||
|
||||
TEMPLATES = [
|
||||
{
|
||||
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||||
'DIRS': [],
|
||||
'APP_DIRS': True,
|
||||
'OPTIONS': {
|
||||
'context_processors': [
|
||||
'django.template.context_processors.debug',
|
||||
'django.template.context_processors.request',
|
||||
'django.contrib.auth.context_processors.auth',
|
||||
'django.contrib.messages.context_processors.messages',
|
||||
],
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
DATABASES = {
|
||||
'default': {
|
||||
'ENGINE': 'django.db.backends.sqlite3',
|
||||
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
|
||||
'TEST_NAME': os.path.join(BASE_DIR, 'test_db.sqlite3'),
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue