예제 #1
0
    def test_product_delete_with_test_plan_wo_email_settings(self):
        """
            A test to demonstrate Issue #181.

            Steps to reproduce:
            1) Create a new Product
            2) Create a new Test Plan for Product
            3) DON'T edit the Test Plan
            4) Delete the Product

            Expected results:
            0) No errors
            1) Product is deleted
            2) Test Plan is deleted

            NOTE: we manually connect signals handlers here
            b/c in est mode LISTENING_MODEL_SIGNAL = False
        """
        # connect signal handlers
        _listen()

        try:
            # setup
            product = ProductFactory(name='Something to delete')
            product_version = VersionFactory(value='0.1', product=product)
            plan_type = TestPlanTypeFactory()

            # create Test Plan via the UI by sending a POST request to the view
            previous_plans_count = TestPlan.objects.count()
            test_plan_name = 'Test plan for the new product'
            response = self.c.post(reverse('plans-new'), {
                'name': test_plan_name,
                'product': product.pk,
                'product_version': product_version.pk,
                'type': plan_type.pk,
            },
                                   follow=True)
            self.assertEqual(httplib.OK, response.status_code)
            # verify test plan was created
            self.assertTrue(test_plan_name in response.content)
            self.assertEqual(previous_plans_count + 1,
                             TestPlan.objects.count())

            # now delete the product
            admin_delete_url = "admin:%s_%s_delete" % (
                product._meta.app_label, product._meta.model_name)
            location = reverse(admin_delete_url, args=[product.pk])
            response = self.c.get(location)
            self.assertEqual(httplib.OK, response.status_code)
            self.assertTrue(
                'Are you sure you want to delete the product "%s"' %
                product.name in response.content)
            self.assertTrue("Yes, I'm sure" in response.content)

            # confirm that we're sure we want to delete it
            response = self.c.post(location, {'post': 'yes'})
            self.assertEqual(302, response.status_code)
            self.assertTrue('/admin/%s/%s/' %
                            (product._meta.app_label,
                             product._meta.model_name) in response['Location'])

            # verify everything has been deleted
            self.assertFalse(Product.objects.filter(pk=product.pk).exists())
            self.assertFalse(
                Version.objects.filter(pk=product_version.pk).exists())
            self.assertEqual(previous_plans_count, TestPlan.objects.count())
        finally:
            # disconnect signals to avoid influencing other tests
            _disconnect_signals()
예제 #2
0
 def tearDown(self):
     _disconnect_signals()
     super().tearDown()
예제 #3
0
 def tearDown(self):
     _disconnect_signals()
     super(TestDeleteProduct, self).tearDown()
예제 #4
0
 def tearDown(self):
     _disconnect_signals()
예제 #5
0
파일: tests.py 프로젝트: zumbi/Nitrate
 def tearDown(self):
     _disconnect_signals()
     super(TestDeleteProduct, self).tearDown()
예제 #6
0
 def tearDown(self):
     _disconnect_signals()