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