从测试sqlite到postgres主键从另一个pk开始

时间:2018-06-12 12:42:00

标签: django postgresql sqlite django-testing

从开发到生产时,我遇到了一个问题。

在测试中,sqlite在1中启动pk(我创建的第一个Propuesta对象有pk == 1),postgres在9中启动它(我不明白为什么,运行Propuesta.objects.count()我得到10,所以之前没有别的事情了。)

这使我的测试失败,因为在url中期望1为pk,我该如何解决这个问题?

我有以下测试:

class PropuestaDetailViewTest(TestCase):

    @classmethod
    def setUpTestData(cls):
        cls.concejo_1 = Alcance.objects.create(nombre_pais="España", nombre_provincia="Asturias",
                                           nombre_concejo="Castrillon")

        cls.categoria = Categoria.objects.create(titulo="ambiente", descripcion="test")

        number_of_proponsals = 10
        for proponsal_num in range(number_of_proponsals):
            cls.propuesta = Propuesta.objects.create(titulo="titulo_" + proponsal_num.__str__(),
                                                 descripcion="des_" + proponsal_num.__str__(),
                                                 creador_de_la_propuesta=User.objects.first(),
                                                 localizacion=cls.concejo_1)

            cls.propuesta.categorias.add(cls.categoria)

def test_context(self):
    resp = self.client.get(reverse('participation:detail-view', kwargs={'propuesta_id': 1, 'slug': 'titulo_0'}))
    self.assertEqual(resp.status_code, 200)
    self.assertTrue(resp.context['propuesta'].titulo == 'titulo_0')
    self.assertTrue(resp.context['que_ha_votado'] == 0)
    self.assertTrue(resp.context['is_user_authenticated'] == 'false')

并且

0 个答案:

没有答案