"""Live execution tests for C-DATA OLT Executor and Rollback."""
import pytest
from app.core.cdata_executor import (
    CDataExecutionError,
    CDataProvisionResult,
    provision_cdata_onu,
    deprovision_cdata_onu,
)

def test_cdata_provisioning_validation_error():
    with pytest.raises(CDataExecutionError, match="tidak valid"):
        provision_cdata_onu(
            host="127.0.0.1",
            port=22,
            username="admin",
            encrypted_secret="enc",
            pinned_host_key="fingerprint",
            pon_port="0/0/1",
            onu_id=999,  # invalid onu_id > 128
            serial_number="ZTEG12345678",
        )

def test_cdata_unpinned_host_key_error():
    with pytest.raises(CDataExecutionError, match="belum dipin"):
        provision_cdata_onu(
            host="127.0.0.1",
            port=22,
            username="admin",
            encrypted_secret="enc",
            pinned_host_key=None,
            pon_port="0/0/1",
            onu_id=1,
            serial_number="ZTEG12345678",
        )
