Skip to content

Commit

Permalink
chore: add view tests
Browse files Browse the repository at this point in the history
  • Loading branch information
BrandonHBodine committed Feb 7, 2025
1 parent f2b2c15 commit cdaa4f0
Showing 1 changed file with 75 additions and 0 deletions.
75 changes: 75 additions & 0 deletions edxval/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@


import json
from re import T
from unittest.mock import patch

from ddt import data, ddt, unpack
Expand Down Expand Up @@ -895,6 +896,80 @@ def test_error_responses(self, post_data, message):
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
self.assertEqual(response.data['message'], message)

@data(
{'video_id': 'super-soaker', 'language_code': 'en', 'provider': TranscriptProviderType.EDX_AI_TRANSLATIONS},
{'video_id': 'super-soaker', 'language_code': 'fr', 'provider': TranscriptProviderType.EDX_AI_TRANSLATIONS},
)
@unpack
def test_patch_transcript_success(self, video_id, language_code, provider):
"""
Test successful PATCH request to update the provider.
"""
VideoTranscript.objects.create(
video=self.video,
language_code=language_code,
file_format=TranscriptFormat.SRT,
provider=TranscriptProviderType.CUSTOM
)

# Action: Send the PATCH request
url = reverse('video-transcripts')
patch_data = {'video_id': video_id, 'language_code': language_code, 'provider': provider}
response = self.client.patch(url, patch_data, format='json')

# Assertions
self.assertEqual(response.status_code, status.HTTP_200_OK)
# Verify the transcript was updated in the database
updated_transcript = VideoTranscript.objects.get(video=self.video, language_code=language_code)
self.assertEqual(updated_transcript.provider, provider)

@data(
{'video_id': '', 'language_code': 'en', 'provider': ''},
{'video_id': 'super-soaker', 'language_code': '', 'provider': 'provider_a'},
)
@unpack
def test_patch_transcript_missing_params(self, video_id, language_code, provider):
"""
Test PATCH request with missing parameters.
"""
url = reverse('video-transcripts')
patch_data = {'video_id': video_id, 'language_code': language_code, 'provider': provider}
response = self.client.patch(url, patch_data, format='json')

self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
self.assertEqual(
response.data['message'],
"The params video_id, language_code, and provider are required for update."
)

def test_patch_transcript_invalid_provider(self):
"""
Test PATCH request with an invalid provider.
"""
VideoTranscript.objects.create(
video=self.video,
language_code="ar",
file_format=TranscriptFormat.SRT,
provider=TranscriptProviderType.CUSTOM,
)

url = reverse('video-transcripts')
patch_data = {'video_id': 'super-soaker', 'language_code': 'ar', 'provider': 'invalid_provider'}
response = self.client.patch(url, patch_data, format='json')

self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
self.assertEqual(response.data['message'], 'Invalid transcript provider.')

def test_patch_transcript_not_found(self):
"""
Test PATCH request when the transcript doesn't exist. Should return 204.
"""

url = reverse('video-transcripts')
patch_data = {'video_id': 'nonexistent_video', 'language_code': 'en', 'provider': TranscriptProviderType.CUSTOM}
response = self.client.patch(url, patch_data, format='json')

self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)

@ddt
class VideoStatusViewTest(APIAuthTestCase):
Expand Down

0 comments on commit cdaa4f0

Please sign in to comment.