我在从开发到生产的过程中遇到了一个问题。
在测试中,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')
和