@@ -237,3 +237,35 @@ class AdminRevenueTests(TestCase):
|
||||
self.assertEqual(len(seller_data), 1)
|
||||
self.assertEqual(seller_data[0]['total_revenue'], Decimal('1100.00'))
|
||||
self.assertEqual(seller_data[0]['platform_fees'], Decimal('30.70'))
|
||||
|
||||
class CardListStockTests(TestCase):
|
||||
def setUp(self):
|
||||
# Create Data
|
||||
self.user = User.objects.create_user(username='stock_seller', password='password')
|
||||
self.seller = Seller.objects.create(
|
||||
user=self.user,
|
||||
store_name='Stock Store',
|
||||
slug='stock-store'
|
||||
)
|
||||
self.game = Game.objects.create(name='Stock Game', slug='stock-game')
|
||||
self.set = Set.objects.create(game=self.game, name='Stock Set')
|
||||
self.card = Card.objects.create(set=self.set, name='Stock Card')
|
||||
|
||||
def test_stock_aggregation(self):
|
||||
# 1. No listings
|
||||
url = reverse('store:card_list')
|
||||
response = self.client.get(url, {'hide_out_of_stock': 'off'})
|
||||
# Expect card in context
|
||||
self.assertEqual(len(response.context['page_obj']), 1)
|
||||
self.assertEqual(response.context['page_obj'][0].total_quantity, 0)
|
||||
|
||||
# 2. Add listings
|
||||
CardListing.objects.create(card=self.card, seller=self.seller, price=10, quantity=5, status='listed')
|
||||
CardListing.objects.create(card=self.card, seller=self.seller, price=10, quantity=3, status='listed')
|
||||
|
||||
# Add a sold listing (should be ignored)
|
||||
CardListing.objects.create(card=self.card, seller=self.seller, price=10, quantity=2, status='sold')
|
||||
|
||||
response = self.client.get(url, {'hide_out_of_stock': 'off'})
|
||||
# Should be 5 + 3 = 8
|
||||
self.assertEqual(response.context['page_obj'][0].total_quantity, 8)
|
||||
|
||||
Reference in New Issue
Block a user