代码之家  ›  专栏  ›  技术社区  ›  Roberto Fernandez Diaz

从sqlite中的测试到postgres主键,从不同的pk开始

  •  1
  • Roberto Fernandez Diaz  · 技术社区  · 8 年前

    我在从开发到生产的过程中遇到了一个问题。

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

    这会导致我的测试失败,因为url中的pk应该是1,我如何修复此行为?

    我有以下测试:

    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 回复  |  直到 8 年前