Esempio n. 1
0
    def parse(self):
        drills = []

        drill_data = []
        for i, line in enumerate(self.stream):
            if drill_data:
                if self.is_blank(line):
                    drill = SubstitutionDrill(self.config, drill_data)
                    drills.append(drill)
                    drill_data = []
                else:
                    word = line.strip()
                    drill_data.append(self.recordings(word))
            else:
                if not self.is_blank(line):
                    m = SENTENCE_RE.match(line)
                    if m:
                        self.pre = m.group('pre')
                        self.post = m.group('post')
                        word = m.group('word')
                        drill_data.append(self.recordings(word))
                    else:
                        raise ParseError("line %i: invalid sentence %s" %
                                         (i, line))

        if drill_data:
            drill = SubstitutionDrill(self.config, drill_data)
            drills.append(drill)

        return drills
class TestSubstitutionDrill:
    def setup(self):
        self.recdir, self.tmp = mkdtemp(), mkdtemp()
        config = SoundConfig(recdir=self.recdir, tmpdir=self.tmp)

        data = [
            (Recording(config, 'manges', 'manges'),
             Recording(config, 'je_manges', 'je manges')),
            (Recording(config, 'dors', 'dors'),
             Recording(config, 'je_dors', 'je dors'))
        ]
        self.drill = SubstitutionDrill(config, data)

    def teardown(self):
        rmtree(self.recdir, self.tmp)

    def test_filename(self):
        assert_equal('sub-je_manges-dors', self.drill.filename)

    def test_recordings(self):
        recs = self.drill.recordings()
        assert_equal(recs[0].text, 'manges')
        assert_equal(recs[1].text, 'je manges')
        assert_equal(recs[2].text, 'dors')
        assert_equal(recs[3].text, 'je dors')

    def test_sound(self):
        assert_is_instance(self.drill.sound(test=True), Sound)
class TestSubstitutionDrill:
    def setup(self):
        self.recdir, self.tmp = mkdtemp(), mkdtemp()
        config = SoundConfig(recdir=self.recdir, tmpdir=self.tmp)

        data = [(Recording(config, 'manges', 'manges'),
                 Recording(config, 'je_manges', 'je manges')),
                (Recording(config, 'dors',
                           'dors'), Recording(config, 'je_dors', 'je dors'))]
        self.drill = SubstitutionDrill(config, data)

    def teardown(self):
        rmtree(self.recdir, self.tmp)

    def test_filename(self):
        assert_equal('sub-je_manges-dors', self.drill.filename)

    def test_recordings(self):
        recs = self.drill.recordings()
        assert_equal(recs[0].text, 'manges')
        assert_equal(recs[1].text, 'je manges')
        assert_equal(recs[2].text, 'dors')
        assert_equal(recs[3].text, 'je dors')

    def test_sound(self):
        assert_is_instance(self.drill.sound(test=True), Sound)
    def setup(self):
        self.recdir, self.tmp = mkdtemp(), mkdtemp()
        config = SoundConfig(recdir=self.recdir, tmpdir=self.tmp)

        data = [(Recording(config, 'manges', 'manges'),
                 Recording(config, 'je_manges', 'je manges')),
                (Recording(config, 'dors',
                           'dors'), Recording(config, 'je_dors', 'je dors'))]
        self.drill = SubstitutionDrill(config, data)
    def setup(self):
        self.recdir, self.tmp = mkdtemp(), mkdtemp()
        config = SoundConfig(recdir=self.recdir, tmpdir=self.tmp)

        data = [
            (Recording(config, 'manges', 'manges'),
             Recording(config, 'je_manges', 'je manges')),
            (Recording(config, 'dors', 'dors'),
             Recording(config, 'je_dors', 'je dors'))
        ]
        self.drill = SubstitutionDrill(config, data)