File size: 2,438 Bytes
f32a529
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import unittest

from pydantic import ValidationError

from src.model.language import Language
from src.model.tts_response import TTSResponse, AudioConfig, AudioFile


class TTSResponseTest(unittest.TestCase):

    def testRequest(self):
        response = TTSResponse(audio=[AudioFile(audioContent='data')],
                               config=AudioConfig(language=Language(sourceLanguage='hi')))
        self.assertEqual(response.audio[0].audioContent, 'data', 'content does not match')
        self.assertEqual(response.config.language.sourceLanguage, 'hi', 'language does not match')
        self.assertEqual(response.config.samplingRate, 22050, 'default value for sample rate does not match')
        self.assertEqual(response.config.encoding, 'base64', 'default value for encoding is not set')
        self.assertEqual(response.config.audioFormat, 'wav', 'default value for audio format is not set')

    def testTextIsRequiredValues(self):
        try:
            response = TTSResponse()
            self.fail('Expected validation error got nothing')
        except ValidationError as e:
            pass
        except Exception as er:
            self.fail(f'Expected validation error for {er}')

    def testResponseRequiredConfig(self):
        try:
            response = TTSResponse(audio=[AudioFile(audioContent='data')])
            self.fail('Expected validation error got nothing')
        except ValidationError as e:
            pass
        except Exception as er:
            self.fail(f'Expected validation error for {er}')

    def testResponseRequiredAudio(self):
        try:
            response = TTSResponse(config=AudioConfig(language='hi'))
            self.fail('Expected validation error got nothing')
        except ValidationError as e:
            pass
        except Exception as er:
            self.fail(f'Expected validation error for {er}')

    def testAudioConfigRequiredValues(self):
        try:
            config = AudioConfig()
            self.fail('Expected validation error got nothing')
        except ValidationError as e:
            pass
        except Exception as er:
            self.fail(f'Expected validation error for {er}')

    def testAudioConfigWithFiles(self):
        config = AudioConfig(language=Language(sourceLanguage='hi'))
        self.assertEqual(config.language.sourceLanguage, 'hi', 'language does not match')


if __name__ == '__main__':
    unittest.main()