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