import asyncio
from graphiti_core.utils.maintenance import node_operations as n
from graphiti_core.nodes import EpisodeType
class E:
source=EpisodeType.text
group_id='test'
async def run_case(label, data):
old=n.extract_text_nodes
async def fake(*args, **kwargs): return data
n.extract_text_nodes=fake
try:
result=await n.extract_nodes(None,E(),[])
print(label, 'PASS', [{'name':x.name,'summary':x.summary} for x in result])
except Exception as exc:
print(label, 'FAIL', type(exc).__name__, repr(exc))
finally: n.extract_text_nodes=old
async def main():
await run_case('with_summary',[{'name':'A','labels':['Entity'],'summary':'ok'}])
await run_case('missing_summary',[{'name':'A','labels':['Entity']}])
await run_case('null_summary',[{'name':'A','labels':['Entity'],'summary':None}])
asyncio.run(main())