You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
3.1 KiB

# 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')