"""Synthetic local reconciliation fixture. No CRM API, credentials or network."""
import sqlite3
c=sqlite3.connect(':memory:')
c.execute('CREATE TABLE operations(id TEXT PRIMARY KEY,state TEXT,external_id TEXT,revision INTEGER)')
c.execute("INSERT INTO operations VALUES('crm-create:C17','outcome_unknown',NULL,4)")
provider_lookup={'operation':'crm-create:C17','external_id':'X77','customer':'C17'}
def reconcile(expected_revision,operation,external_id):
    return c.execute("UPDATE operations SET state='reconciled',external_id=?,revision=revision+1 WHERE id=? AND revision=? AND state='outcome_unknown' AND external_id IS NULL",(external_id,operation,expected_revision)).rowcount
assert provider_lookup['operation']=='crm-create:C17' and provider_lookup['customer']=='C17'
assert reconcile(4,provider_lookup['operation'],provider_lookup['external_id'])==1
assert reconcile(4,provider_lookup['operation'],provider_lookup['external_id'])==0
assert c.execute('SELECT state,external_id,revision FROM operations').fetchone()==('reconciled','X77',5)
print('4/4 local reconciliation assertions passed. Existing remoteX77 is synthetic; no create operation is performed.')
print(c.execute('SELECT * FROM operations').fetchone())
