1- import uuid
2-
3- import boto3
41import pytest
52
63from pyiceberg .catalog .s3tables import S3TableCatalog
@@ -125,7 +122,9 @@ def test_drop_table(catalog: S3TableCatalog, database_name: str, table_name: str
125122 catalog .load_table (identifier = identifier )
126123
127124
128- def test_commit_table (catalog : S3TableCatalog , database_name : str , table_name : str , table_schema_nested : Schema ) -> None :
125+ def test_commit_new_column_to_table (
126+ catalog : S3TableCatalog , database_name : str , table_name : str , table_schema_nested : Schema
127+ ) -> None :
129128 identifier = (database_name , table_name )
130129
131130 catalog .create_namespace (namespace = database_name )
@@ -148,3 +147,27 @@ def test_commit_table(catalog: S3TableCatalog, database_name: str, table_name: s
148147 assert updated_table_metadata .metadata_log [0 ].metadata_file == original_table_metadata_location
149148 assert updated_table_metadata .metadata_log [0 ].timestamp_ms == original_table_last_updated_ms
150149 assert table .schema ().columns [- 1 ].name == "b"
150+
151+
152+ def test_commit_new_data_to_table (
153+ catalog : S3TableCatalog , database_name : str , table_name : str , table_schema_nested : Schema
154+ ) -> None :
155+ identifier = (database_name , table_name )
156+
157+ catalog .create_namespace (namespace = database_name )
158+ table = catalog .create_table (identifier = identifier , schema = table_schema_nested )
159+
160+ row_count = table .scan ().to_arrow ().num_rows
161+ last_updated_ms = table .metadata .last_updated_ms
162+ original_table_metadata_location = table .metadata_location
163+ original_table_last_updated_ms = table .metadata .last_updated_ms
164+
165+ transaction = table .transaction ()
166+ transaction .append (table .scan ().to_arrow ())
167+ transaction .commit_transaction ()
168+
169+ updated_table_metadata = table .metadata
170+ assert updated_table_metadata .last_updated_ms > last_updated_ms
171+ assert updated_table_metadata .metadata_log [0 ].metadata_file == original_table_metadata_location
172+ assert updated_table_metadata .metadata_log [0 ].timestamp_ms == original_table_last_updated_ms
173+ assert table .scan ().to_arrow ().num_rows == 2 * row_count
0 commit comments