2014-09-14 2 views
1

Я пытаюсь проверить следующую модель:запросы возвращаются пустыми в тесте - Django

class HadoopDistributor(models.Model): 
    name = models.CharField(max_length=100) 

    def __str__(self): 
     return self.name 

Некоторых действующие кластеры, из Django оболочки:

>>> from clusters.models import * 
>>> hadoop_dist = HadoopDistributor.objects.all() 
>>> hadoop_dist 
[<HadoopDistributor: Cloudera>, <HadoopDistributor: Hortonworks>, <HadoopDistributor: MapR>, <HadoopDistributor: Apache>, <HadoopDistributor: Pivotal>] 

Теперь я написал следующий тест для HadoopDistribution класса:

from django.test import TestCase 
from clusters.models import * 
# Create your tests here. 

class ClusterTestCase(TestCase): 

    def setUp(self): 
     self.info = { 
       'hadoop_dist': 'Cloudera', 
       'database_repo': 'MySQL', 
       'datafiles': '', 
       'dgsecure': '4.5.2.0', 
       'hadoop_version': '4', 
       'size': '5' 
     } 

    def test_insert_cluster(self): 
     try: 
      hadoop_dist = HadoopDistributor.objects.all() 
      print hadoop_dist 
     except Exception, e: 
      print e 

Однако, когда я выполнить python manage.py test Я получаю:

python manage.py test 
Creating test database for alias 'default'... 
[] 
. 
---------------------------------------------------------------------- 
Ran 1 test in 0.001s 

OK 

Почему я получаю пустой массив? База данных: sqlite3

ответ

4

База данных испытаний создается при выполнении тестов, поэтому вы не увидите данные из своей производственной базы данных. Вот почему запрос возвращает пустой QuerySet. Вам нужно вставить новые данные в свою базу данных в тесте, если вы хотите, чтобы запросы возвращали что-то.

+0

Значит, мне нужно ввести эту информацию в настройку? – cybertextron

+0

Да, или в тестовом примере, в зависимости от того, где данные необходимы. –

Смежные вопросы