Projemi Django 1.7 kullanmaya yönlendirmeye çalışıyorum. 1 şey hariç her şey yolunda. Testler içindeki modeller klasörler.Modeller testlerde - Django 1.7 issue
Django 1.7 yeni geçişleri dahili olarak göç komutunu çalıştırır. Syncdb çalıştırılmadan önce. Bu, bir modelin geçişlere dahil edilmemesi durumunda, DB'ye (ve ayrıca DB'yi test etmeye) alınmaz. Tam şu anda deneyimlediğim şey bu.
Ne yapmam geçerli:
Benim/app/tests/models.py
yılında
Ben kukla modeli vardır: Bütün yaptığı bir soyutBaseImage
modelinden miras kalacak class TestBaseImage(BaseImage): pass
.
Daha sonra testlerde, bunu test etmek için bu modelin örneklerini yaratıyorum. Sorun, daha fazla çalışmadığıdır. Göçmenlere dahil edilmemiştir (test modellerini üretim DB'sinde tutmak istemediğimden bellidir). Testlerimi yürütmek, table does not exist
numaralı telefonun DB hatası verdiğini söylüyor. Bu, geçişlere dahil olmadığı için mantıklı.
Yeni geçiş sistemleriyle çalışmasını sağlamanın bir yolu var mı? Bunu düzeltmek için bir yol bulamıyorum.
Kod kullandığım:
app/test/models.py
from ..models import BaseImage
class TestBaseImage(BaseImage):
"""Dummy model just to test BaseImage abstract class"""
pass
uygulama/models.py
class BaseImage(models.Model):
# ... fields ...
class Meta:
abstract = True
fabrikaları:
class BaseImageFactory(factory.django.DjangoModelFactory):
"""Factory class for Vessel model"""
FACTORY_FOR = BaseImage
ABSTRACT_FACTORY = True
class PortImageFactory(BaseImageFactory):
FACTORY_FOR = PortImage
örnek testi: Eğer tests.py ayrıştırarak yapabilirsiniz
def get_model_field(model, field_name):
"""Returns field instance"""
return model._meta.get_field_by_name(field_name)[0]
def test_owner_field(self):
"""Tests owner field"""
field = get_model_field(BaseImage, "owner")
self.assertIsInstance(field, models.ForeignKey)
self.assertEqual(field.rel.to, get_user_model())
Testlerde yeni bir model oluşturdum ve bunun örneklerini oluşturdum, ancak hiç bir hata alamıyorum. – ChillarAnand
@ChillarAnand Bazı kodları ekledim. Bunu Django 1.7 ve güney kapatmayı kullanarak yaptın mı? Hala bir tablo mevcut değil:/ – tunarob
Sizin nesneniz alay edilmemeli ve böyle tanımlanmamalıdır? – aRkadeFR