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