diff --git a/rsconcept/backend/cctext/resolver.py b/rsconcept/backend/cctext/resolver.py index 62d3a534..0f045845 100644 --- a/rsconcept/backend/cctext/resolver.py +++ b/rsconcept/backend/cctext/resolver.py @@ -13,7 +13,11 @@ def resolve_entity(ref: EntityReference, context: TermContext) -> str: alias = ref.entity if alias not in context: return f'!Неизвестная сущность: {alias}!' - return context[alias].get_form(ref.form) + resolved = context[alias].get_form(ref.form) + if resolved == '': + return f'!Отсутствует термин: {alias}!' + else: + return resolved def resolve_syntactic(ref: SyntacticReference, index: int, allrefs: list['ResolvedReference']) -> str: diff --git a/rsconcept/backend/cctext/tests/t_reference.py b/rsconcept/backend/cctext/tests/t_reference.py index 148500e7..ae7c3e61 100644 --- a/rsconcept/backend/cctext/tests/t_reference.py +++ b/rsconcept/backend/cctext/tests/t_reference.py @@ -25,6 +25,7 @@ class TestReferences(unittest.TestCase): self.assertIsNone(parse_reference('invalid')) self.assertIsNone(parse_reference(' ')) self.assertIsNone(parse_reference('@{|}')) + self.assertIsNone(parse_reference('@{|черный}')) self.assertIsNone(parse_reference('@{ | }')) self.assertIsNone(parse_reference('@{-1| }')) self.assertIsNone(parse_reference('@{1| }')) diff --git a/rsconcept/backend/cctext/tests/t_resolver.py b/rsconcept/backend/cctext/tests/t_resolver.py index 0dafe80e..370bd926 100644 --- a/rsconcept/backend/cctext/tests/t_resolver.py +++ b/rsconcept/backend/cctext/tests/t_resolver.py @@ -13,11 +13,13 @@ class TestResolver(unittest.TestCase): def setUp(self): self.context = cast(TermContext, {}) self.context['X1'] = Entity('X1', 'человек') + self.context['X2'] = Entity('X2', '') self.resolver = Resolver(self.context) def test_resolve_entity(self): self.assertEqual(resolve_entity(EntityReference('X1', ''), self.context), 'человек') self.assertEqual(resolve_entity(EntityReference('X1', 'plur'), self.context), 'люди') + self.assertEqual(resolve_entity(EntityReference('X2', ''), self.context), '!Отсутствует термин: X2!') self.assertEqual(resolve_entity(EntityReference('X1', 'invalid'), self.context), '!Неизвестная граммема: invalid!') self.assertEqual(resolve_entity(EntityReference('X123', 'plur'), self.context), '!Неизвестная сущность: X123!')