Add a few initial test cases, could use more
This commit is contained in:
		
							parent
							
								
									f3dc6f508f
								
							
						
					
					
						commit
						36f29c3058
					
				|  | @ -0,0 +1,57 @@ | ||||||
|  | import json | ||||||
|  | from mock import MagicMock | ||||||
|  | from unittest import TestCase | ||||||
|  | 
 | ||||||
|  | from youtube_transcript_api.formatters import ( | ||||||
|  |     Formatter, | ||||||
|  |     JSONFormatter, | ||||||
|  |     TextFormatter, | ||||||
|  |     WebVTTFormatter | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class TestFormatters(TestCase): | ||||||
|  |     def setUp(self): | ||||||
|  |         self.transcript = [ | ||||||
|  |             {'text': 'Test line 1', 'start': 0.0, 'duration': 1.50}, | ||||||
|  |             {'text': 'line between', 'start': 1.5, 'duration': 2.0}, | ||||||
|  |             {'text': 'testing the end line', 'start': 2.5, 'duration': 3.25} | ||||||
|  |         ] | ||||||
|  |      | ||||||
|  |     def test_base_formatter_valid_type(self): | ||||||
|  |         with self.assertRaises(TypeError) as err: | ||||||
|  |             Formatter({"test": []}) | ||||||
|  |         expected_err = "'transcript' must be of type: List" | ||||||
|  |         self.assertEqual(expected_err, str(err.exception)) | ||||||
|  |      | ||||||
|  |     def test_base_formatter_format_call(self): | ||||||
|  |         with self.assertRaises(NotImplementedError) as err: | ||||||
|  |             Formatter(self.transcript).format() | ||||||
|  |          | ||||||
|  |         expected_err = "A subclass of Formatter must implement their own " \ | ||||||
|  |             ".format() method." | ||||||
|  |         self.assertEqual(expected_err, str(err.exception)) | ||||||
|  | 
 | ||||||
|  |     def test_webvtt_formatter_starting(self): | ||||||
|  |         content = WebVTTFormatter(self.transcript).format() | ||||||
|  |         lines = content.split('\n') | ||||||
|  |         # test starting lines | ||||||
|  |         self.assertEqual(lines[0], "WEBVTT") | ||||||
|  |         self.assertEqual(lines[1], "") | ||||||
|  |      | ||||||
|  |     def test_webvtt_formatter_ending(self): | ||||||
|  |         content = WebVTTFormatter(self.transcript).format() | ||||||
|  |         lines = content.split('\n') | ||||||
|  |         # test ending lines | ||||||
|  |         self.assertEqual(lines[-2], self.transcript[-1]['text']) | ||||||
|  |         self.assertEqual(lines[-1], "") | ||||||
|  |      | ||||||
|  |     def test_json_formatter(self): | ||||||
|  |         content = JSONFormatter(self.transcript).format() | ||||||
|  |         self.assertEqual(json.loads(content), self.transcript) | ||||||
|  | 
 | ||||||
|  |     def test_text_formatter(self): | ||||||
|  |         content = TextFormatter(self.transcript).format() | ||||||
|  |         lines = content.split('\n') | ||||||
|  |         self.assertEqual(lines[0], self.transcript[0]["text"]) | ||||||
|  |         self.assertEqual(lines[-1], self.transcript[-1]["text"]) | ||||||
		Loading…
	
		Reference in New Issue