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.
136 lines
5.5 KiB
136 lines
5.5 KiB
from django.test import TestCase, Client
|
|
from django.urls import reverse
|
|
from .models import (
|
|
AppMovie, AppMovie1, AppMovie2, AppMovie3, AppMovie4, AppMovieTheater
|
|
)
|
|
|
|
|
|
class MovieModelTests(TestCase):
|
|
def setUp(self):
|
|
# 创建 AppMovie 测试数据
|
|
self.app_movie = AppMovie.objects.create(
|
|
moviename='Test Movie',
|
|
moviedate='2024-10-01',
|
|
movieimge='test_image.jpg',
|
|
movietime='12:00',
|
|
movienum='001',
|
|
movietype='1'
|
|
)
|
|
# 创建 AppMovie1 测试数据
|
|
self.app_movie1 = AppMovie1.objects.create(
|
|
moviename='Test Movie 1',
|
|
moviedate='2024-10-02',
|
|
movieimge='test_image1.jpg',
|
|
movietime='13:00'
|
|
)
|
|
# 创建 AppMovie2 测试数据
|
|
self.app_movie2 = AppMovie2.objects.create(
|
|
moviename='Test Movie 2',
|
|
moviedate='2024-10-03',
|
|
movieimge='test_image2.jpg',
|
|
movietime='14:00'
|
|
)
|
|
# 创建 AppMovie3 测试数据
|
|
self.app_movie3 = AppMovie3.objects.create(
|
|
moviename='Test Movie 3',
|
|
moviedate='2024-10-04',
|
|
movieimge='test_image3.jpg',
|
|
movietime='15:00'
|
|
)
|
|
# 创建 AppMovie4 测试数据
|
|
self.app_movie4 = AppMovie4.objects.create(
|
|
moviename='Test Movie 4',
|
|
moviedate='2024-10-05',
|
|
movieimge='test_image4.jpg',
|
|
movietime='16:00',
|
|
movienum='004'
|
|
)
|
|
# 创建 AppMovieTheater 测试数据
|
|
self.app_movie_theater = AppMovieTheater.objects.create(
|
|
name='Test Theater'
|
|
)
|
|
|
|
def test_app_movie_model(self):
|
|
"""测试 AppMovie 模型的数据保存和获取"""
|
|
movie = AppMovie.objects.get(moviename='Test Movie')
|
|
self.assertEqual(movie.moviename, 'Test Movie')
|
|
self.assertEqual(movie.moviedate, '2024-10-01')
|
|
self.assertEqual(movie.movieimge, 'test_image.jpg')
|
|
self.assertEqual(movie.movietime, '12:00')
|
|
self.assertEqual(movie.movienum, '001')
|
|
self.assertEqual(movie.movietype, '1')
|
|
|
|
def test_app_movie1_model(self):
|
|
"""测试 AppMovie1 模型的数据保存和获取"""
|
|
movie = AppMovie1.objects.get(moviename='Test Movie 1')
|
|
self.assertEqual(movie.moviename, 'Test Movie 1')
|
|
self.assertEqual(movie.moviedate, '2024-10-02')
|
|
self.assertEqual(movie.movieimge, 'test_image1.jpg')
|
|
self.assertEqual(movie.movietime, '13:00')
|
|
|
|
def test_app_movie2_model(self):
|
|
"""测试 AppMovie2 模型的数据保存和获取"""
|
|
movie = AppMovie2.objects.get(moviename='Test Movie 2')
|
|
self.assertEqual(movie.moviename, 'Test Movie 2')
|
|
self.assertEqual(movie.moviedate, '2024-10-03')
|
|
self.assertEqual(movie.movieimge, 'test_image2.jpg')
|
|
self.assertEqual(movie.movietime, '14:00')
|
|
|
|
def test_app_movie3_model(self):
|
|
"""测试 AppMovie3 模型的数据保存和获取"""
|
|
movie = AppMovie3.objects.get(moviename='Test Movie 3')
|
|
self.assertEqual(movie.moviename, 'Test Movie 3')
|
|
self.assertEqual(movie.moviedate, '2024-10-04')
|
|
self.assertEqual(movie.movieimge, 'test_image3.jpg')
|
|
self.assertEqual(movie.movietime, '15:00')
|
|
|
|
def test_app_movie4_model(self):
|
|
"""测试 AppMovie4 模型的数据保存和获取"""
|
|
movie = AppMovie4.objects.get(moviename='Test Movie 4')
|
|
self.assertEqual(movie.moviename, 'Test Movie 4')
|
|
self.assertEqual(movie.moviedate, '2024-10-05')
|
|
self.assertEqual(movie.movieimge, 'test_image4.jpg')
|
|
self.assertEqual(movie.movietime, '16:00')
|
|
self.assertEqual(movie.movienum, '004')
|
|
|
|
def test_app_movie_theater_model(self):
|
|
"""测试 AppMovieTheater 模型的数据保存和获取"""
|
|
theater = AppMovieTheater.objects.get(name='Test Theater')
|
|
self.assertEqual(theater.name, 'Test Theater')
|
|
|
|
|
|
class MovieViewTests(TestCase):
|
|
def setUp(self):
|
|
self.client = Client()
|
|
# 创建 AppMovie 测试数据用于视图测试
|
|
self.app_movie = AppMovie.objects.create(
|
|
moviename='View Test Movie',
|
|
moviedate='2024-10-06',
|
|
movieimge='view_test_image.jpg',
|
|
movietime='17:00',
|
|
movienum='005',
|
|
movietype='1'
|
|
)
|
|
|
|
def test_movie_list_view(self):
|
|
"""测试 movielist 视图是否正确渲染"""
|
|
response = self.client.get(reverse('movieApp:movielist'))
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertTemplateUsed(response, 'index.html')
|
|
self.assertIn('movielist1', response.context)
|
|
self.assertIn('movielist2', response.context)
|
|
self.assertIn('movielist3', response.context)
|
|
self.assertIn('movielist4', response.context)
|
|
|
|
def test_detail_view_with_valid_id(self):
|
|
"""测试 detail 视图在传入有效 id 时是否正确渲染"""
|
|
response = self.client.get(reverse('movieApp:detail', args=[self.app_movie.id]))
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertTemplateUsed(response, 'detail.html')
|
|
self.assertEqual(response.context['movie'].moviename, 'View Test Movie')
|
|
|
|
def test_detail_view_with_invalid_id(self):
|
|
"""测试 detail 视图在传入无效 id 时是否返回 404 错误"""
|
|
invalid_id = 9999
|
|
response = self.client.get(reverse('movieApp:detail', args=[invalid_id]))
|
|
self.assertEqual(response.status_code, 404) |