feat(ocpp-server): overhaul OCPP 2.0.1 mock server with full command coverage
- Add 4 new @on handlers: Get15118EVCertificate, GetCertificateStatus,
SignCertificate, NotifyCustomerInformation
- Add 9 new outgoing commands: CertificateSigned, CustomerInformation,
DeleteCertificate, GetInstalledCertificateIds, GetLog,
GetTransactionStatus, InstallCertificate, SetNetworkProfile,
UpdateFirmware (20 total)
- Fix camelCase key access bug in authorize/transaction handlers
(ocpp library converts to snake_case)
- Extract _resolve_auth_status() to eliminate duplicated auth logic
- Replace ConnectionError with InternalError for offline simulation
- Use set.discard() instead of set.remove() for safe cleanup
- Add match default case for unknown TransactionEvent types
- Modernize type hints: Optional[X] -> X | None
- Rewrite test suite with pytest (51 tests, 4 test classes)
- Update ruff to ^0.15, add pytest ^8 dev dependency
- Update README with all 20 outgoing commands and 15 incoming handlers