def test_can_purchase_product_from_stock(self):
        """Test that we can purchase a product from stock.
        """

        gift_repo = Product.get_gift_repository(self.db_conn)
        product = gift_repo[0]

        original_stock_level = product.in_stock_quantity

        self.assertEqual(product.in_stock_quantity, original_stock_level)

        product.purchase()

        self.assertEqual(product.in_stock_quantity, original_stock_level - 1)
    def test_wedding_list_is_list(self):
        """Test core wedding list functionality.
        """

        # List of wedding gift items.

        example_product = Product.get_gift_repository(self.db_conn)[0]
        example_gift = GiftItem.get_new_gift_item(self.db_conn, example_product)
        wedding_list = WeddingList()

        # Add a gift to the list:

        wedding_list.append(example_gift)

        self.assertEqual(wedding_list, [example_gift])

        # Remove gift to the list:

        wedding_list.remove(example_gift)

        self.assertEqual(wedding_list, [])