def run(self): data = self.data read_module_pipes = [self.pipe_read_clean] read_module = ReadModule(read_module_pipes, self.file_path + self.file_name, self.encoding, data) clean_module_pipes = [self.pipe_read_clean, self.pipe_clean_sound] clean_module = CleanModule(clean_module_pipes, data) phonotype_module_pipes = [self.pipe_clean_sound, self.pipe_sound_syll] phonotype_module = PhonotypeModule(phonotype_module_pipes, data) syllabify_module_pipes = [self.pipe_sound_syll, self.pipe_syll_count] syllabify_module = SyllabifyModule(syllabify_module_pipes) count_module_pipes = [self.pipe_syll_count, self.pipe_count_txt] count_module = CountModule(count_module_pipes, data, self.file_path) write_module_pipes = [self.pipe_count_txt] write_module = WriteModule(write_module_pipes, self.file_path) clean_module.start() phonotype_module.start() syllabify_module.start() count_module.start() write_module.start() read_module.run() phonotype_module.join() syllabify_module.join() count_module.join() write_module.join()
@classmethod def tearDownClass(cls): run_through_module(End()) def test_українськогож(self): word = run_through_module(Text('українськогож')) self.assertEqual(word.get_text(), 'українськогож') self.assertEqual(word.get_phonotypes(), [VOWEL, CONS, SONOR, VOWEL, VOWEL, SONOR, CONS, SPEC, CONS, VOWEL, CONS, VOWEL, CONS]) def run_through_module(word): pin.acquire() pin.put(word) pin.notify() pin.release() pout.acquire() if pout.empty(): pout.wait() word = pout.get() pout.release() return word data = ConfigData('../../configs/conf_uk_cyr.json') pin = Pipe(Queue(), Condition()) pout = Pipe(Queue(), Condition()) mod = PhonotypeModule([pin, pout], data) if __name__ == '__main__': unittest.main()