mirror of
https://github.com/IRBorisov/ConceptPortal.git
synced 2025-06-26 13:00:39 +03:00
Fix resolution for empty entities
This commit is contained in:
parent
b3fd0d9ff7
commit
3360facd10
|
@ -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:
|
||||
|
|
|
@ -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| }'))
|
||||
|
|
|
@ -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!')
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user