From eaebe4c0e7fcaeb24ca7a4e3fd484a022f8f2e80 Mon Sep 17 00:00:00 2001 From: Mikhail Korobov Date: Tue, 22 Apr 2014 15:26:45 +0600 Subject: [PATCH] fix MorphAnalyzer.iter_known_word_parses and add a test for it --- pymorphy2/analyzer.py | 2 +- tests/test_analyzer.py | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/pymorphy2/analyzer.py b/pymorphy2/analyzer.py index 76e9f34..f05b9d2 100644 --- a/pymorphy2/analyzer.py +++ b/pymorphy2/analyzer.py @@ -316,7 +316,7 @@ def iter_known_word_parses(self, prefix=""): # XXX: this method currently assumes that # units.DictionaryAnalyzer is the first analyzer unit. for word, tag, normal_form, para_id, idx in self.dictionary.iter_known_words(prefix): - methods = ((self._units[0], word, para_id, idx),) + methods = ((self._units[0][0], word, para_id, idx),) parse = (word, tag, normal_form, 1.0, methods) if self._result_type is None: yield parse diff --git a/tests/test_analyzer.py b/tests/test_analyzer.py index b5ae5be..a408711 100644 --- a/tests/test_analyzer.py +++ b/tests/test_analyzer.py @@ -3,6 +3,7 @@ import pickle import pytest import pymorphy2 +from pymorphy2.units.by_lookup import DictionaryAnalyzer from pymorphy2.units.by_analogy import UnknownPrefixAnalyzer, KnownPrefixAnalyzer from pymorphy2.units.by_hyphen import HyphenatedWordsAnalyzer @@ -324,3 +325,10 @@ def test_normalize_patr_femn(self): assert parse.normalized.tag.case == 'nomn' assert parse.normalized.tag.gender == 'masc' + +def test_iter_known_word_parses(): + parses = list(morph.iter_known_word_parses('приве')) + assert any( + (p.word=='привет' and isinstance(p.methods_stack[0][0], DictionaryAnalyzer)) + for p in parses + ), parses