# mallApp/tests.py from django.test import TestCase, Client from django.urls import reverse from django.contrib.sessions.middleware import SessionMiddleware from userApp.models import User, VIP from mallApp.models import AppMall, mallOrder from movieApp.models import AppMovie class AppMallModelTestCase(TestCase): def test_app_mall_creation(self): app_mall = AppMall.objects.create( goodsname='Test Product', goodstype='Electronics', goodsimg='test_image.jpg', goodsprice='100' ) self.assertEqual(app_mall.goodsname, 'Test Product') class MallOrderModelTestCase(TestCase): def setUp(self): self.user = User.objects.create(username='testuser') self.vip = VIP.objects.create(user=self.user, money=200) self.app_mall = AppMall.objects.create( goodsname='Test Product', goodstype='Electronics', goodsimg='test_image.jpg', goodsprice='100' ) def test_mall_order_creation(self): order = mallOrder.objects.create( userid=self.user, goodsid=self.app_mall ) self.assertEqual(order.userid, self.user) self.assertEqual(order.goodsid, self.app_mall) class MallViewTestCase(TestCase): def setUp(self): self.client = Client() self.app_mall = AppMall.objects.create( goodsname='Test Product', goodstype='Electronics', goodsimg='test_image.jpg', goodsprice='100' ) def test_mall_view(self): response = self.client.get(reverse('mall')) self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, 'Shopping Centre.html') class OrderViewTestCase(TestCase): def setUp(self): self.client = Client() self.user = User.objects.create(username='testuser') self.vip = VIP.objects.create(user=self.user, money=200) self.app_mall = AppMall.objects.create( goodsname='Test Product', goodstype='Electronics', goodsimg='test_image.jpg', goodsprice='100' ) # 设置会话 session = self.client.session session['username'] = 'testuser' session.save() def test_order_view_successful_order(self): response = self.client.get(reverse('order'), {'goodsid': self.app_mall.id}) self.assertEqual(response.status_code, 200) self.assertEqual(response.json()['msg'], 'yes') self.assertEqual(VIP.objects.get(user=self.user).money, 100) def test_order_view_insufficient_funds(self): self.vip.money = 50 self.vip.save() response = self.client.get(reverse('order'), {'goodsid': self.app_mall.id}) self.assertEqual(response.status_code, 200) self.assertEqual(response.json()['msg'], 'no') def test_order_view_no_session(self): self.client.session.flush() response = self.client.get(reverse('order'), {'goodsid': self.app_mall.id}) self.assertEqual(response.status_code, 200) self.assertEqual(response.json()['msg'], 'erorr')