stevie9868 commented on code in PR #1246: URL: https://github.com/apache/iceberg-python/pull/1246#discussion_r1818151924
########## tests/catalog/test_base.py: ########## @@ -265,6 +268,42 @@ def drop_view(self, identifier: Union[str, Identifier]) -> None: raise NotImplementedError +class TransactionThrowExceptionInOverwrite(Transaction): + def __init__(self, table: Table): + super().__init__(table) + + # Override the default overwrite to simulate exception during append + def overwrite( + self, + df: pa.Table, + overwrite_filter: Union[BooleanExpression, str] = ALWAYS_TRUE, + snapshot_properties: Dict[str, str] = EMPTY_DICT, + ) -> None: + self.delete(delete_filter=overwrite_filter, snapshot_properties=snapshot_properties) + raise Exception("Fail Append Commit Exception") + + +class TableThrowExceptionInOverwrite(Table): + def __init__(self, identifier: Identifier, metadata: TableMetadata, metadata_location: str, io: FileIO, catalog: Catalog): + # Call the constructor of the parent class + super().__init__(identifier, metadata, metadata_location, io, catalog) + + def transaction(self) -> Transaction: + return TransactionThrowExceptionInOverwrite(self) + + +def given_catalog_has_a_table_throw_exception_in_overwrite( Review Comment: thanks, I like this idea -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For additional commands, e-mail: issues-h...@iceberg.apache.org