#!/usr/bin/env python3
"""P2X step 1: quick DB-copy confirmation of the deployed writer."""
import importlib.util, sys, json
from pathlib import Path
import sqlite3
spec = importlib.util.spec_from_file_location(
'w2', '/opt/struktur/obsidian-graphiti-reconciler-staging/aa043_single_writer.py')
m = importlib.util.module_from_spec(spec)
sys.modules['w2'] = m
spec.loader.exec_module(m)
m.DB = Path('/tmp/aa043-p2i/dbs/knowledge-test.db')
c = sqlite3.connect(m.DB); c.row_factory = sqlite3.Row
q = c.execute("select id from graphiti_import_queue where obsidian_path like '%SOL_006_CLOSURE_REPORT%' and action='CREATE'").fetchone()
qid = q['id']
reg = c.execute('''SELECT r.id FROM source_processing_registry r
JOIN source_versions sv ON sv.registry_id=r.id
JOIN graphiti_import_queue q ON q.source_version_id=sv.version_id WHERE q.id=?''', (qid,)).fetchone()['id']
before = c.execute('select current_graph_version_id from source_processing_registry where id=?', (reg,)).fetchone()[0]
print('before:', before)
m.inventory = lambda: []
import urllib.request, os
_real = urllib.request.urlopen
class FR:
data = json.dumps({'uuid': 'copytest-uuid'}).encode()
def read(self): return self.data
def __enter__(self): return self
def __exit__(self, *a): return False
urllib.request.urlopen = lambda *a, **k: FR()
os.chdir('/opt/obsidian-vault')
m.run(qid, dry_run=False)
urllib.request.urlopen = _real
after = c.execute('select current_graph_version_id from source_processing_registry where id=?', (reg,)).fetchone()[0]
print('after:', after)
assert after == 889, after
print('COPY-TEST OK: NULL -> 889')