Exemple #1
0
    def setUp(self):
        self.user = get_user()

        self.vendor = Vendor(name="Test Vendor",
                             address="123 Main St")
        self.vendor.save()

        self.vegan_dish1 = VeganDish(name="Tofu Scramble")
        self.vegan_dish1.save()

        self.vegan_dish2 = VeganDish(name="Tempeh Hash")
        self.vegan_dish2.save()

        self.review1 = Review(vendor=self.vendor,
                              author=self.user,
                              content="ahhhh")
        self.review1.save()

        self.vendor.vegan_dishes.add(self.vegan_dish1)
        self.vendor.vegan_dishes.add(self.vegan_dish2)
Exemple #2
0
class VendorVeganDishValidationTest(TestCase):

    """
    Tests that trying to delete vegan dish relationships for
    vendors that have reviews will signal an error.
    """

    def setUp(self):
        self.user = get_user()

        self.vendor = Vendor(name="Test Vendor",
                             address="123 Main St")
        self.vendor.save()

        self.vegan_dish1 = VeganDish(name="Tofu Scramble")
        self.vegan_dish1.save()

        self.vegan_dish2 = VeganDish(name="Tempeh Hash")
        self.vegan_dish2.save()

        self.review1 = Review(vendor=self.vendor,
                              author=self.user,
                              content="ahhhh")
        self.review1.save()

        self.vendor.vegan_dishes.add(self.vegan_dish1)
        self.vendor.vegan_dishes.add(self.vegan_dish2)

    def test_can_delete_relationship_without_any_reviews(self):
        self.assertEqual(self.vendor.vegan_dishes.count(), 2)

        self.vendor.vegan_dishes.remove(self.vegan_dish1)

        self.assertEqual(self.vendor.vegan_dishes.count(), 1)

    def test_can_delete_relationship_with_reviews_on_other_vegan_dish(self):
        self.review1.best_vegan_dish = self.vegan_dish1
        self.review1.save()

        self.assertEqual(self.vendor.vegan_dishes.count(), 2)

        self.vendor.vegan_dishes.remove(self.vegan_dish2)

        self.assertEqual(self.vendor.vegan_dishes.count(), 1)

    def test_can_clear_relationship_without_any_reviews(self):
        self.assertEqual(self.vendor.vegan_dishes.count(), 2)

        self.vendor.vegan_dishes.clear()

        self.assertEqual(self.vendor.vegan_dishes.count(), 0)

    def test_cant_clear_relationship_with_any_reviews(self):
        self.review1.best_vegan_dish = self.vegan_dish1
        self.review1.save()

        self.assertRaises(ValidationError, self.vendor.vegan_dishes.clear)

    def test_cant_delete_relationship_with_reviews(self):
        self.review1.best_vegan_dish = self.vegan_dish1
        self.review1.save()

        self.assertRaises(ValidationError,
                          self.vendor.vegan_dishes.remove,
                          self.vegan_dish1)