This is an automated email from the ASF dual-hosted git repository.

honahx pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg-python.git


The following commit(s) were added to refs/heads/main by this push:
     new 5ddf1ed  Build: Bump moto from 4.2.13 to 5.0.1 (#373)
5ddf1ed is described below

commit 5ddf1edb50a84149384a80ed8f6ffac6e34fbe31
Author: Hussein Awala <[email protected]>
AuthorDate: Tue Feb 6 03:50:47 2024 +0100

    Build: Bump moto from 4.2.13 to 5.0.1 (#373)
---
 poetry.lock                    | 47 ++++++++++++---------------
 pyproject.toml                 |  2 +-
 tests/catalog/test_dynamodb.py | 68 +++++++++++++++++++-------------------
 tests/catalog/test_glue.py     | 74 +++++++++++++++++++++---------------------
 tests/conftest.py              | 14 ++++----
 5 files changed, 101 insertions(+), 104 deletions(-)

diff --git a/poetry.lock b/poetry.lock
index ff67dd2..9d34a7a 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1963,19 +1963,19 @@ files = [
 
 [[package]]
 name = "moto"
-version = "4.2.13"
+version = "5.0.1"
 description = ""
 optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
 files = [
-    {file = "moto-4.2.13-py2.py3-none-any.whl", hash = 
"sha256:93e0fd13b624bd79115494f833308c3641b2be0fc9f4f18aa9264aa01f6168e0"},
-    {file = "moto-4.2.13.tar.gz", hash = 
"sha256:01aef6a489a725c8d725bd3dc6f70ff1bedaee3e2641752e4b471ff0ede4b4d7"},
+    {file = "moto-5.0.1-py2.py3-none-any.whl", hash = 
"sha256:94e3b07a403cc8078ffee94bf404ef677112d036a57ddb5e0f19c5fcf48987f5"},
+    {file = "moto-5.0.1.tar.gz", hash = 
"sha256:62b9798aef9028432194cebb7a671f4064257bb3be662d9c1b83b94411b694bb"},
 ]
 
 [package.dependencies]
 aws-xray-sdk = {version = ">=0.93,<0.96 || >0.96", optional = true, markers = 
"extra == \"server\""}
 boto3 = ">=1.9.201"
-botocore = ">=1.12.201"
+botocore = ">=1.14.0"
 cfn-lint = {version = ">=0.40.0", optional = true, markers = "extra == 
\"server\""}
 cryptography = ">=3.3.1"
 docker = {version = ">=3.0.0", optional = true, markers = "extra == 
\"server\""}
@@ -1986,42 +1986,37 @@ graphql-core = {version = "*", optional = true, markers 
= "extra == \"server\""}
 Jinja2 = ">=2.10.1"
 jsondiff = {version = ">=1.1.2", optional = true, markers = "extra == 
\"server\""}
 openapi-spec-validator = {version = ">=0.5.0", optional = true, markers = 
"extra == \"server\""}
-py-partiql-parser = {version = "0.5.0", optional = true, markers = "extra == 
\"server\""}
+py-partiql-parser = {version = "0.5.1", optional = true, markers = "extra == 
\"server\""}
 pyparsing = {version = ">=3.0.7", optional = true, markers = "extra == 
\"server\""}
 python-dateutil = ">=2.1,<3.0.0"
 python-jose = {version = ">=3.1.0,<4.0.0", extras = ["cryptography"], optional 
= true, markers = "extra == \"server\""}
 PyYAML = {version = ">=5.1", optional = true, markers = "extra == \"server\""}
 requests = ">=2.5"
-responses = ">=0.13.0"
+responses = ">=0.15.0"
 setuptools = {version = "*", optional = true, markers = "extra == \"server\""}
 sshpubkeys = {version = ">=3.1.0", optional = true, markers = "extra == 
\"server\""}
 werkzeug = ">=0.5,<2.2.0 || >2.2.0,<2.2.1 || >2.2.1"
 xmltodict = "*"
 
 [package.extras]
-all = ["PyYAML (>=5.1)", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint 
(>=0.40.0)", "docker (>=3.0.0)", "ecdsa (!=0.15)", "graphql-core", "jsondiff 
(>=1.1.2)", "multipart", "openapi-spec-validator (>=0.5.0)", "py-partiql-parser 
(==0.5.0)", "pyparsing (>=3.0.7)", "python-jose[cryptography] 
(>=3.1.0,<4.0.0)", "setuptools", "sshpubkeys (>=3.1.0)"]
+all = ["PyYAML (>=5.1)", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint 
(>=0.40.0)", "docker (>=3.0.0)", "ecdsa (!=0.15)", "graphql-core", "jsondiff 
(>=1.1.2)", "multipart", "openapi-spec-validator (>=0.5.0)", "py-partiql-parser 
(==0.5.1)", "pyparsing (>=3.0.7)", "python-jose[cryptography] 
(>=3.1.0,<4.0.0)", "setuptools", "sshpubkeys (>=3.1.0)"]
 apigateway = ["PyYAML (>=5.1)", "ecdsa (!=0.15)", "openapi-spec-validator 
(>=0.5.0)", "python-jose[cryptography] (>=3.1.0,<4.0.0)"]
-apigatewayv2 = ["PyYAML (>=5.1)"]
+apigatewayv2 = ["PyYAML (>=5.1)", "openapi-spec-validator (>=0.5.0)"]
 appsync = ["graphql-core"]
 awslambda = ["docker (>=3.0.0)"]
 batch = ["docker (>=3.0.0)"]
-cloudformation = ["PyYAML (>=5.1)", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint 
(>=0.40.0)", "docker (>=3.0.0)", "ecdsa (!=0.15)", "graphql-core", "jsondiff 
(>=1.1.2)", "openapi-spec-validator (>=0.5.0)", "py-partiql-parser (==0.5.0)", 
"pyparsing (>=3.0.7)", "python-jose[cryptography] (>=3.1.0,<4.0.0)", 
"setuptools", "sshpubkeys (>=3.1.0)"]
+cloudformation = ["PyYAML (>=5.1)", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint 
(>=0.40.0)", "docker (>=3.0.0)", "ecdsa (!=0.15)", "graphql-core", "jsondiff 
(>=1.1.2)", "openapi-spec-validator (>=0.5.0)", "py-partiql-parser (==0.5.1)", 
"pyparsing (>=3.0.7)", "python-jose[cryptography] (>=3.1.0,<4.0.0)", 
"setuptools", "sshpubkeys (>=3.1.0)"]
 cognitoidp = ["ecdsa (!=0.15)", "python-jose[cryptography] (>=3.1.0,<4.0.0)"]
-ds = ["sshpubkeys (>=3.1.0)"]
-dynamodb = ["docker (>=3.0.0)", "py-partiql-parser (==0.5.0)"]
-dynamodbstreams = ["docker (>=3.0.0)", "py-partiql-parser (==0.5.0)"]
-ebs = ["sshpubkeys (>=3.1.0)"]
+dynamodb = ["docker (>=3.0.0)", "py-partiql-parser (==0.5.1)"]
+dynamodbstreams = ["docker (>=3.0.0)", "py-partiql-parser (==0.5.1)"]
 ec2 = ["sshpubkeys (>=3.1.0)"]
-efs = ["sshpubkeys (>=3.1.0)"]
-eks = ["sshpubkeys (>=3.1.0)"]
 glue = ["pyparsing (>=3.0.7)"]
 iotdata = ["jsondiff (>=1.1.2)"]
-proxy = ["PyYAML (>=5.1)", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint 
(>=0.40.0)", "docker (>=2.5.1)", "ecdsa (!=0.15)", "graphql-core", "jsondiff 
(>=1.1.2)", "multipart", "openapi-spec-validator (>=0.5.0)", "py-partiql-parser 
(==0.5.0)", "pyparsing (>=3.0.7)", "python-jose[cryptography] 
(>=3.1.0,<4.0.0)", "setuptools", "sshpubkeys (>=3.1.0)"]
-resourcegroupstaggingapi = ["PyYAML (>=5.1)", "cfn-lint (>=0.40.0)", "docker 
(>=3.0.0)", "ecdsa (!=0.15)", "graphql-core", "jsondiff (>=1.1.2)", 
"openapi-spec-validator (>=0.5.0)", "py-partiql-parser (==0.5.0)", "pyparsing 
(>=3.0.7)", "python-jose[cryptography] (>=3.1.0,<4.0.0)", "sshpubkeys 
(>=3.1.0)"]
-route53resolver = ["sshpubkeys (>=3.1.0)"]
-s3 = ["PyYAML (>=5.1)", "py-partiql-parser (==0.5.0)"]
-s3crc32c = ["PyYAML (>=5.1)", "crc32c", "py-partiql-parser (==0.5.0)"]
-server = ["PyYAML (>=5.1)", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint 
(>=0.40.0)", "docker (>=3.0.0)", "ecdsa (!=0.15)", "flask (!=2.2.0,!=2.2.1)", 
"flask-cors", "graphql-core", "jsondiff (>=1.1.2)", "openapi-spec-validator 
(>=0.5.0)", "py-partiql-parser (==0.5.0)", "pyparsing (>=3.0.7)", 
"python-jose[cryptography] (>=3.1.0,<4.0.0)", "setuptools", "sshpubkeys 
(>=3.1.0)"]
+proxy = ["PyYAML (>=5.1)", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint 
(>=0.40.0)", "docker (>=2.5.1)", "ecdsa (!=0.15)", "graphql-core", "jsondiff 
(>=1.1.2)", "multipart", "openapi-spec-validator (>=0.5.0)", "py-partiql-parser 
(==0.5.1)", "pyparsing (>=3.0.7)", "python-jose[cryptography] 
(>=3.1.0,<4.0.0)", "setuptools", "sshpubkeys (>=3.1.0)"]
+resourcegroupstaggingapi = ["PyYAML (>=5.1)", "cfn-lint (>=0.40.0)", "docker 
(>=3.0.0)", "ecdsa (!=0.15)", "graphql-core", "jsondiff (>=1.1.2)", 
"openapi-spec-validator (>=0.5.0)", "py-partiql-parser (==0.5.1)", "pyparsing 
(>=3.0.7)", "python-jose[cryptography] (>=3.1.0,<4.0.0)"]
+s3 = ["PyYAML (>=5.1)", "py-partiql-parser (==0.5.1)"]
+s3crc32c = ["PyYAML (>=5.1)", "crc32c", "py-partiql-parser (==0.5.1)"]
+server = ["PyYAML (>=5.1)", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint 
(>=0.40.0)", "docker (>=3.0.0)", "ecdsa (!=0.15)", "flask (!=2.2.0,!=2.2.1)", 
"flask-cors", "graphql-core", "jsondiff (>=1.1.2)", "openapi-spec-validator 
(>=0.5.0)", "py-partiql-parser (==0.5.1)", "pyparsing (>=3.0.7)", 
"python-jose[cryptography] (>=3.1.0,<4.0.0)", "setuptools", "sshpubkeys 
(>=3.1.0)"]
 ssm = ["PyYAML (>=5.1)"]
 xray = ["aws-xray-sdk (>=0.93,!=0.96)", "setuptools"]
 
@@ -2689,13 +2684,13 @@ files = [
 
 [[package]]
 name = "py-partiql-parser"
-version = "0.5.0"
+version = "0.5.1"
 description = "Pure Python PartiQL Parser"
 optional = false
 python-versions = "*"
 files = [
-    {file = "py-partiql-parser-0.5.0.tar.gz", hash = 
"sha256:427a662e87d51a0a50150fc8b75c9ebb4a52d49129684856c40c88b8c8e027e4"},
-    {file = "py_partiql_parser-0.5.0-py3-none-any.whl", hash = 
"sha256:dc454c27526adf62deca5177ea997bf41fac4fd109c5d4c8d81f984de738ba8f"},
+    {file = "py-partiql-parser-0.5.1.tar.gz", hash = 
"sha256:aeac8f46529d8651bbae88a1a6c14dc3aa38ebc4bc6bd1eb975044c0564246c6"},
+    {file = "py_partiql_parser-0.5.1-py3-none-any.whl", hash = 
"sha256:53053e70987dea2983e1990ad85f87a7d8cec13dd4a4b065a740bcfd661f5a6b"},
 ]
 
 [package.extras]
@@ -4293,4 +4288,4 @@ zstandard = ["zstandard"]
 [metadata]
 lock-version = "2.0"
 python-versions = "^3.8"
-content-hash = 
"5becf154a072fa31d9cefaee2adaacca1e2315579fd821a4567f41b075ed3b1d"
+content-hash = 
"6e7fbfc5ac9579e08a6deccb0dd3d80bf11bc3113302772b07c8bb3329a0ae72"
diff --git a/pyproject.toml b/pyproject.toml
index f823155..9fcb91b 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -79,7 +79,7 @@ pre-commit = "3.5.0"
 fastavro = "1.9.3"
 coverage = { version = "^7.4.1", extras = ["toml"] }
 requests-mock = "1.11.0"
-moto = { version = "^4.2.13", extras = ["server"] }
+moto = { version = "^5.0.1", extras = ["server"] }
 typing-extensions = "4.9.0"
 pytest-mock = "3.12.0"
 pyspark = "3.5.0"
diff --git a/tests/catalog/test_dynamodb.py b/tests/catalog/test_dynamodb.py
index bc80146..2cb7c46 100644
--- a/tests/catalog/test_dynamodb.py
+++ b/tests/catalog/test_dynamodb.py
@@ -20,7 +20,7 @@ from unittest import mock
 import boto3
 import pyarrow as pa
 import pytest
-from moto import mock_dynamodb
+from moto import mock_aws
 
 from pyiceberg.catalog import METADATA_LOCATION, TABLE_TYPE
 from pyiceberg.catalog.dynamodb import (
@@ -45,7 +45,7 @@ from pyiceberg.schema import Schema
 from tests.conftest import BUCKET_NAME, TABLE_METADATA_LOCATION_REGEX
 
 
-@mock_dynamodb
+@mock_aws
 def test_create_dynamodb_catalog_with_table_name(_dynamodb, 
_bucket_initialize: None) -> None:  # type: ignore
     DynamoDbCatalog("test_ddb_catalog")
     response = _dynamodb.describe_table(TableName=DYNAMODB_TABLE_NAME_DEFAULT)
@@ -59,7 +59,7 @@ def test_create_dynamodb_catalog_with_table_name(_dynamodb, 
_bucket_initialize:
     assert response["Table"]["TableStatus"] == ACTIVE
 
 
-@mock_dynamodb
+@mock_aws
 def test_create_table_with_database_location(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -72,7 +72,7 @@ def test_create_table_with_database_location(
     assert TABLE_METADATA_LOCATION_REGEX.match(table.metadata_location)
 
 
-@mock_dynamodb
+@mock_aws
 def test_create_table_with_pyarrow_schema(
     _bucket_initialize: None,
     moto_endpoint_url: str,
@@ -89,7 +89,7 @@ def test_create_table_with_pyarrow_schema(
     assert TABLE_METADATA_LOCATION_REGEX.match(table.metadata_location)
 
 
-@mock_dynamodb
+@mock_aws
 def test_create_table_with_default_warehouse(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -102,7 +102,7 @@ def test_create_table_with_default_warehouse(
     assert TABLE_METADATA_LOCATION_REGEX.match(table.metadata_location)
 
 
-@mock_dynamodb
+@mock_aws
 def test_create_table_with_given_location(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -117,7 +117,7 @@ def test_create_table_with_given_location(
     assert TABLE_METADATA_LOCATION_REGEX.match(table.metadata_location)
 
 
-@mock_dynamodb
+@mock_aws
 def test_create_table_with_no_location(
     _bucket_initialize: None, table_schema_nested: Schema, database_name: str, 
table_name: str
 ) -> None:
@@ -128,7 +128,7 @@ def test_create_table_with_no_location(
         test_catalog.create_table(identifier=identifier, 
schema=table_schema_nested)
 
 
-@mock_dynamodb
+@mock_aws
 def test_create_table_with_strips(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -141,7 +141,7 @@ def test_create_table_with_strips(
     assert TABLE_METADATA_LOCATION_REGEX.match(table.metadata_location)
 
 
-@mock_dynamodb
+@mock_aws
 def test_create_table_with_strips_bucket_root(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -154,7 +154,7 @@ def test_create_table_with_strips_bucket_root(
     assert TABLE_METADATA_LOCATION_REGEX.match(table_strip.metadata_location)
 
 
-@mock_dynamodb
+@mock_aws
 def test_create_table_with_no_database(
     _bucket_initialize: None, table_schema_nested: Schema, database_name: str, 
table_name: str
 ) -> None:
@@ -164,7 +164,7 @@ def test_create_table_with_no_database(
         test_catalog.create_table(identifier=identifier, 
schema=table_schema_nested)
 
 
-@mock_dynamodb
+@mock_aws
 def test_create_duplicated_table(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -176,7 +176,7 @@ def test_create_duplicated_table(
         test_catalog.create_table(identifier, table_schema_nested)
 
 
-@mock_dynamodb
+@mock_aws
 def test_load_table(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -190,7 +190,7 @@ def test_load_table(
     assert TABLE_METADATA_LOCATION_REGEX.match(table.metadata_location)
 
 
-@mock_dynamodb
+@mock_aws
 def test_load_table_from_self_identifier(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -205,7 +205,7 @@ def test_load_table_from_self_identifier(
     assert TABLE_METADATA_LOCATION_REGEX.match(table.metadata_location)
 
 
-@mock_dynamodb
+@mock_aws
 def test_load_non_exist_table(_bucket_initialize: None, database_name: str, 
table_name: str) -> None:
     identifier = (database_name, table_name)
     test_catalog = DynamoDbCatalog("test_ddb_catalog", 
warehouse=f"s3://{BUCKET_NAME}")
@@ -214,7 +214,7 @@ def test_load_non_exist_table(_bucket_initialize: None, 
database_name: str, tabl
         test_catalog.load_table(identifier)
 
 
-@mock_dynamodb
+@mock_aws
 def test_drop_table(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -231,7 +231,7 @@ def test_drop_table(
         test_catalog.load_table(identifier)
 
 
-@mock_dynamodb
+@mock_aws
 def test_drop_table_from_self_identifier(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -250,7 +250,7 @@ def test_drop_table_from_self_identifier(
         test_catalog.load_table(table.identifier)
 
 
-@mock_dynamodb
+@mock_aws
 def test_drop_non_exist_table(_bucket_initialize: None, database_name: str, 
table_name: str) -> None:
     identifier = (database_name, table_name)
     test_catalog = DynamoDbCatalog("test_ddb_catalog", 
warehouse=f"s3://{BUCKET_NAME}")
@@ -258,7 +258,7 @@ def test_drop_non_exist_table(_bucket_initialize: None, 
database_name: str, tabl
         test_catalog.drop_table(identifier)
 
 
-@mock_dynamodb
+@mock_aws
 def test_rename_table(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -281,7 +281,7 @@ def test_rename_table(
         test_catalog.load_table(identifier)
 
 
-@mock_dynamodb
+@mock_aws
 def test_rename_table_from_self_identifier(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -306,7 +306,7 @@ def test_rename_table_from_self_identifier(
         test_catalog.load_table(table.identifier)
 
 
-@mock_dynamodb
+@mock_aws
 def test_fail_on_rename_table_with_missing_required_params(_bucket_initialize: 
None, database_name: str, table_name: str) -> None:
     new_database_name = f"{database_name}_new"
     new_table_name = f"{table_name}_new"
@@ -330,7 +330,7 @@ def 
test_fail_on_rename_table_with_missing_required_params(_bucket_initialize: N
         test_catalog.rename_table(identifier, new_identifier)
 
 
-@mock_dynamodb
+@mock_aws
 def test_fail_on_rename_non_iceberg_table(
     _dynamodb: boto3.client, _bucket_initialize: None, database_name: str, 
table_name: str
 ) -> None:
@@ -359,7 +359,7 @@ def test_fail_on_rename_non_iceberg_table(
         test_catalog.rename_table(identifier, new_identifier)
 
 
-@mock_dynamodb
+@mock_aws
 def test_list_tables(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_list: List[str]
 ) -> None:
@@ -372,7 +372,7 @@ def test_list_tables(
         assert (database_name, table_name) in loaded_table_list
 
 
-@mock_dynamodb
+@mock_aws
 def test_list_namespaces(_bucket_initialize: None, database_list: List[str]) 
-> None:
     test_catalog = DynamoDbCatalog("test_ddb_catalog")
     for database_name in database_list:
@@ -382,7 +382,7 @@ def test_list_namespaces(_bucket_initialize: None, 
database_list: List[str]) ->
         assert (database_name,) in loaded_database_list
 
 
-@mock_dynamodb
+@mock_aws
 def test_create_namespace_no_properties(_bucket_initialize: None, 
database_name: str) -> None:
     test_catalog = DynamoDbCatalog("test_ddb_catalog")
     test_catalog.create_namespace(namespace=database_name)
@@ -393,7 +393,7 @@ def test_create_namespace_no_properties(_bucket_initialize: 
None, database_name:
     assert properties == {}
 
 
-@mock_dynamodb
+@mock_aws
 def test_create_namespace_with_comment_and_location(_bucket_initialize: None, 
database_name: str) -> None:
     test_location = f"s3://{BUCKET_NAME}/{database_name}.db"
     test_properties = {
@@ -410,7 +410,7 @@ def 
test_create_namespace_with_comment_and_location(_bucket_initialize: None, da
     assert properties["location"] == test_location
 
 
-@mock_dynamodb
+@mock_aws
 def test_create_duplicated_namespace(_bucket_initialize: None, database_name: 
str) -> None:
     test_catalog = DynamoDbCatalog("test_ddb_catalog")
     test_catalog.create_namespace(namespace=database_name)
@@ -421,7 +421,7 @@ def test_create_duplicated_namespace(_bucket_initialize: 
None, database_name: st
         test_catalog.create_namespace(namespace=database_name, 
properties={"test": "test"})
 
 
-@mock_dynamodb
+@mock_aws
 def test_drop_namespace(_bucket_initialize: None, database_name: str) -> None:
     test_catalog = DynamoDbCatalog("test_ddb_catalog")
     test_catalog.create_namespace(namespace=database_name)
@@ -433,7 +433,7 @@ def test_drop_namespace(_bucket_initialize: None, 
database_name: str) -> None:
     assert len(loaded_database_list) == 0
 
 
-@mock_dynamodb
+@mock_aws
 def test_drop_non_empty_namespace(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -446,14 +446,14 @@ def test_drop_non_empty_namespace(
         test_catalog.drop_namespace(database_name)
 
 
-@mock_dynamodb
+@mock_aws
 def test_drop_non_exist_namespace(_bucket_initialize: None, database_name: 
str) -> None:
     test_catalog = DynamoDbCatalog("test_ddb_catalog")
     with pytest.raises(NoSuchNamespaceError):
         test_catalog.drop_namespace(database_name)
 
 
-@mock_dynamodb
+@mock_aws
 def test_load_namespace_properties(_bucket_initialize: None, database_name: 
str) -> None:
     test_location = f"s3://{BUCKET_NAME}/{database_name}.db"
     test_properties = {
@@ -471,14 +471,14 @@ def test_load_namespace_properties(_bucket_initialize: 
None, database_name: str)
         assert v == test_properties[k]
 
 
-@mock_dynamodb
+@mock_aws
 def test_load_non_exist_namespace_properties(_bucket_initialize: None, 
database_name: str) -> None:
     test_catalog = DynamoDbCatalog("test_ddb_catalog")
     with pytest.raises(NoSuchNamespaceError):
         test_catalog.load_namespace_properties(database_name)
 
 
-@mock_dynamodb
+@mock_aws
 def test_update_namespace_properties(_bucket_initialize: None, database_name: 
str) -> None:
     test_properties = {
         "comment": "this is a test description",
@@ -503,7 +503,7 @@ def test_update_namespace_properties(_bucket_initialize: 
None, database_name: st
     test_catalog.drop_namespace(database_name)
 
 
-@mock_dynamodb
+@mock_aws
 def test_load_empty_namespace_properties(_bucket_initialize: None, 
database_name: str) -> None:
     test_catalog = DynamoDbCatalog("test_ddb_catalog")
     test_catalog.create_namespace(database_name)
@@ -511,7 +511,7 @@ def 
test_load_empty_namespace_properties(_bucket_initialize: None, database_name
     assert listed_properties == {}
 
 
-@mock_dynamodb
+@mock_aws
 def 
test_update_namespace_properties_overlap_update_removal(_bucket_initialize: 
None, database_name: str) -> None:
     test_properties = {
         "comment": "this is a test description",
diff --git a/tests/catalog/test_glue.py b/tests/catalog/test_glue.py
index 63a213f..270d225 100644
--- a/tests/catalog/test_glue.py
+++ b/tests/catalog/test_glue.py
@@ -20,7 +20,7 @@ from unittest import mock
 import boto3
 import pyarrow as pa
 import pytest
-from moto import mock_glue
+from moto import mock_aws
 
 from pyiceberg.catalog.glue import GlueCatalog
 from pyiceberg.exceptions import (
@@ -37,7 +37,7 @@ from pyiceberg.types import IntegerType
 from tests.conftest import BUCKET_NAME, TABLE_METADATA_LOCATION_REGEX
 
 
-@mock_glue
+@mock_aws
 def test_create_table_with_database_location(
     _glue: boto3.client,
     _bucket_initialize: None,
@@ -72,7 +72,7 @@ def test_create_table_with_database_location(
     assert storage_descriptor["Location"] == 
f"s3://{BUCKET_NAME}/{database_name}.db/{table_name}"
 
 
-@mock_glue
+@mock_aws
 def test_create_table_with_default_warehouse(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -86,7 +86,7 @@ def test_create_table_with_default_warehouse(
     assert test_catalog._parse_metadata_version(table.metadata_location) == 0
 
 
-@mock_glue
+@mock_aws
 def test_create_table_with_given_location(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -102,7 +102,7 @@ def test_create_table_with_given_location(
     assert test_catalog._parse_metadata_version(table.metadata_location) == 0
 
 
-@mock_glue
+@mock_aws
 def test_create_table_with_pyarrow_schema(
     _bucket_initialize: None,
     moto_endpoint_url: str,
@@ -124,7 +124,7 @@ def test_create_table_with_pyarrow_schema(
     assert test_catalog._parse_metadata_version(table.metadata_location) == 0
 
 
-@mock_glue
+@mock_aws
 def test_create_table_with_no_location(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -136,7 +136,7 @@ def test_create_table_with_no_location(
         test_catalog.create_table(identifier=identifier, 
schema=table_schema_nested)
 
 
-@mock_glue
+@mock_aws
 def test_create_table_with_strips(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -150,7 +150,7 @@ def test_create_table_with_strips(
     assert test_catalog._parse_metadata_version(table.metadata_location) == 0
 
 
-@mock_glue
+@mock_aws
 def test_create_table_with_strips_bucket_root(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -164,7 +164,7 @@ def test_create_table_with_strips_bucket_root(
     assert test_catalog._parse_metadata_version(table_strip.metadata_location) 
== 0
 
 
-@mock_glue
+@mock_aws
 def test_create_table_with_no_database(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -174,7 +174,7 @@ def test_create_table_with_no_database(
         test_catalog.create_table(identifier=identifier, 
schema=table_schema_nested)
 
 
-@mock_glue
+@mock_aws
 def test_create_duplicated_table(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -186,7 +186,7 @@ def test_create_duplicated_table(
         test_catalog.create_table(identifier, table_schema_nested)
 
 
-@mock_glue
+@mock_aws
 def test_load_table(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -201,7 +201,7 @@ def test_load_table(
     assert test_catalog._parse_metadata_version(table.metadata_location) == 0
 
 
-@mock_glue
+@mock_aws
 def test_load_table_from_self_identifier(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -215,7 +215,7 @@ def test_load_table_from_self_identifier(
     assert TABLE_METADATA_LOCATION_REGEX.match(table.metadata_location)
 
 
-@mock_glue
+@mock_aws
 def test_load_non_exist_table(_bucket_initialize: None, moto_endpoint_url: 
str, database_name: str, table_name: str) -> None:
     identifier = (database_name, table_name)
     test_catalog = GlueCatalog("glue", **{"s3.endpoint": moto_endpoint_url, 
"warehouse": f"s3://{BUCKET_NAME}/"})
@@ -224,7 +224,7 @@ def test_load_non_exist_table(_bucket_initialize: None, 
moto_endpoint_url: str,
         test_catalog.load_table(identifier)
 
 
-@mock_glue
+@mock_aws
 def test_drop_table(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -241,7 +241,7 @@ def test_drop_table(
         test_catalog.load_table(identifier)
 
 
-@mock_glue
+@mock_aws
 def test_drop_table_from_self_identifier(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -260,7 +260,7 @@ def test_drop_table_from_self_identifier(
         test_catalog.load_table(table.identifier)
 
 
-@mock_glue
+@mock_aws
 def test_drop_non_exist_table(_bucket_initialize: None, moto_endpoint_url: 
str, database_name: str, table_name: str) -> None:
     identifier = (database_name, table_name)
     test_catalog = GlueCatalog("glue", **{"s3.endpoint": moto_endpoint_url, 
"warehouse": f"s3://{BUCKET_NAME}/"})
@@ -268,7 +268,7 @@ def test_drop_non_exist_table(_bucket_initialize: None, 
moto_endpoint_url: str,
         test_catalog.drop_table(identifier)
 
 
-@mock_glue
+@mock_aws
 def test_rename_table(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -292,7 +292,7 @@ def test_rename_table(
         test_catalog.load_table(identifier)
 
 
-@mock_glue
+@mock_aws
 def test_rename_table_from_self_identifier(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -317,7 +317,7 @@ def test_rename_table_from_self_identifier(
         test_catalog.load_table(table.identifier)
 
 
-@mock_glue
+@mock_aws
 def test_rename_table_no_params(
     _glue: boto3.client, _bucket_initialize: None, moto_endpoint_url: str, 
database_name: str, table_name: str
 ) -> None:
@@ -336,7 +336,7 @@ def test_rename_table_no_params(
         test_catalog.rename_table(identifier, new_identifier)
 
 
-@mock_glue
+@mock_aws
 def test_rename_non_iceberg_table(
     _glue: boto3.client, _bucket_initialize: None, moto_endpoint_url: str, 
database_name: str, table_name: str
 ) -> None:
@@ -359,7 +359,7 @@ def test_rename_non_iceberg_table(
         test_catalog.rename_table(identifier, new_identifier)
 
 
-@mock_glue
+@mock_aws
 def test_list_tables(
     _bucket_initialize: None,
     moto_endpoint_url: str,
@@ -377,7 +377,7 @@ def test_list_tables(
         assert (database_name, table_name) in loaded_table_list
 
 
-@mock_glue
+@mock_aws
 def test_list_namespaces(_bucket_initialize: None, moto_endpoint_url: str, 
database_list: List[str]) -> None:
     test_catalog = GlueCatalog("glue", **{"s3.endpoint": moto_endpoint_url})
     for database_name in database_list:
@@ -387,7 +387,7 @@ def test_list_namespaces(_bucket_initialize: None, 
moto_endpoint_url: str, datab
         assert (database_name,) in loaded_database_list
 
 
-@mock_glue
+@mock_aws
 def test_create_namespace_no_properties(_bucket_initialize: None, 
moto_endpoint_url: str, database_name: str) -> None:
     test_catalog = GlueCatalog("glue", **{"s3.endpoint": moto_endpoint_url})
     test_catalog.create_namespace(namespace=database_name)
@@ -398,7 +398,7 @@ def test_create_namespace_no_properties(_bucket_initialize: 
None, moto_endpoint_
     assert properties == {}
 
 
-@mock_glue
+@mock_aws
 def test_create_namespace_with_comment_and_location(_bucket_initialize: None, 
moto_endpoint_url: str, database_name: str) -> None:
     test_location = f"s3://{BUCKET_NAME}/{database_name}.db"
     test_properties = {
@@ -415,7 +415,7 @@ def 
test_create_namespace_with_comment_and_location(_bucket_initialize: None, mo
     assert properties["location"] == test_location
 
 
-@mock_glue
+@mock_aws
 def test_create_duplicated_namespace(_bucket_initialize: None, 
moto_endpoint_url: str, database_name: str) -> None:
     test_catalog = GlueCatalog("glue", **{"s3.endpoint": moto_endpoint_url})
     test_catalog.create_namespace(namespace=database_name)
@@ -426,7 +426,7 @@ def test_create_duplicated_namespace(_bucket_initialize: 
None, moto_endpoint_url
         test_catalog.create_namespace(namespace=database_name, 
properties={"test": "test"})
 
 
-@mock_glue
+@mock_aws
 def test_drop_namespace(_bucket_initialize: None, moto_endpoint_url: str, 
database_name: str) -> None:
     test_catalog = GlueCatalog("glue", **{"s3.endpoint": moto_endpoint_url})
     test_catalog.create_namespace(namespace=database_name)
@@ -438,7 +438,7 @@ def test_drop_namespace(_bucket_initialize: None, 
moto_endpoint_url: str, databa
     assert len(loaded_database_list) == 0
 
 
-@mock_glue
+@mock_aws
 def test_drop_non_empty_namespace(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
@@ -451,14 +451,14 @@ def test_drop_non_empty_namespace(
         test_catalog.drop_namespace(database_name)
 
 
-@mock_glue
+@mock_aws
 def test_drop_non_exist_namespace(_bucket_initialize: None, moto_endpoint_url: 
str, database_name: str) -> None:
     test_catalog = GlueCatalog("glue", **{"s3.endpoint": moto_endpoint_url})
     with pytest.raises(NoSuchNamespaceError):
         test_catalog.drop_namespace(database_name)
 
 
-@mock_glue
+@mock_aws
 def test_load_namespace_properties(_bucket_initialize: None, 
moto_endpoint_url: str, database_name: str) -> None:
     test_location = f"s3://{BUCKET_NAME}/{database_name}.db"
     test_properties = {
@@ -476,14 +476,14 @@ def test_load_namespace_properties(_bucket_initialize: 
None, moto_endpoint_url:
         assert v == test_properties[k]
 
 
-@mock_glue
+@mock_aws
 def test_load_non_exist_namespace_properties(_bucket_initialize: None, 
moto_endpoint_url: str, database_name: str) -> None:
     test_catalog = GlueCatalog("glue", **{"s3.endpoint": moto_endpoint_url})
     with pytest.raises(NoSuchNamespaceError):
         test_catalog.load_namespace_properties(database_name)
 
 
-@mock_glue
+@mock_aws
 def test_update_namespace_properties(_bucket_initialize: None, 
moto_endpoint_url: str, database_name: str) -> None:
     test_properties = {
         "comment": "this is a test description",
@@ -508,7 +508,7 @@ def test_update_namespace_properties(_bucket_initialize: 
None, moto_endpoint_url
     test_catalog.drop_namespace(database_name)
 
 
-@mock_glue
+@mock_aws
 def test_load_empty_namespace_properties(_bucket_initialize: None, 
moto_endpoint_url: str, database_name: str) -> None:
     test_catalog = GlueCatalog("glue", **{"s3.endpoint": moto_endpoint_url})
     test_catalog.create_namespace(database_name)
@@ -516,7 +516,7 @@ def 
test_load_empty_namespace_properties(_bucket_initialize: None, moto_endpoint
     assert listed_properties == {}
 
 
-@mock_glue
+@mock_aws
 def test_load_default_namespace_properties(_glue, _bucket_initialize: None, 
moto_endpoint_url: str, database_name: str) -> None:  # type: ignore
     # simulate creating database with default settings through AWS Glue Web 
Console
     _glue.create_database(DatabaseInput={"Name": database_name})
@@ -525,7 +525,7 @@ def test_load_default_namespace_properties(_glue, 
_bucket_initialize: None, moto
     assert listed_properties == {}
 
 
-@mock_glue
+@mock_aws
 def test_update_namespace_properties_overlap_update_removal(
     _bucket_initialize: None, moto_endpoint_url: str, database_name: str
 ) -> None:
@@ -546,7 +546,7 @@ def test_update_namespace_properties_overlap_update_removal(
     assert test_catalog.load_namespace_properties(database_name) == 
test_properties
 
 
-@mock_glue
+@mock_aws
 def test_passing_profile_name() -> None:
     session_properties: Dict[str, Any] = {
         "aws_access_key_id": "abc",
@@ -566,7 +566,7 @@ def test_passing_profile_name() -> None:
     assert test_catalog.glue is mock_session().client()
 
 
-@mock_glue
+@mock_aws
 def test_commit_table_update_schema(
     _glue: boto3.client,
     _bucket_initialize: None,
@@ -619,7 +619,7 @@ def test_commit_table_update_schema(
     assert storage_descriptor["Location"] == 
f"s3://{BUCKET_NAME}/{database_name}.db/{table_name}"
 
 
-@mock_glue
+@mock_aws
 def test_commit_table_properties(
     _bucket_initialize: None, moto_endpoint_url: str, table_schema_nested: 
Schema, database_name: str, table_name: str
 ) -> None:
diff --git a/tests/conftest.py b/tests/conftest.py
index 063c064..c0c3d10 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -45,7 +45,7 @@ from urllib.parse import urlparse
 
 import boto3
 import pytest
-from moto import mock_dynamodb, mock_glue
+from moto import mock_aws
 
 from pyiceberg import schema
 from pyiceberg.catalog import Catalog
@@ -1784,23 +1784,24 @@ def moto_endpoint_url(moto_server: 
"ThreadedMotoServer") -> str:
     return _url
 
 
[email protected](name="_s3")
[email protected](name="_s3", scope="function")
 def fixture_s3(_aws_credentials: None, moto_endpoint_url: str) -> 
Generator[boto3.client, None, None]:
     """Yield a mocked S3 client."""
-    yield boto3.client("s3", region_name="us-east-1", 
endpoint_url=moto_endpoint_url)
+    with mock_aws():
+        yield boto3.client("s3", region_name="us-east-1", 
endpoint_url=moto_endpoint_url)
 
 
 @pytest.fixture(name="_glue")
 def fixture_glue(_aws_credentials: None) -> Generator[boto3.client, None, 
None]:
     """Yield a mocked glue client."""
-    with mock_glue():
+    with mock_aws():
         yield boto3.client("glue", region_name="us-east-1")
 
 
 @pytest.fixture(name="_dynamodb")
 def fixture_dynamodb(_aws_credentials: None) -> Generator[boto3.client, None, 
None]:
     """Yield a mocked DynamoDB client."""
-    with mock_dynamodb():
+    with mock_aws():
         yield boto3.client("dynamodb", region_name="us-east-1")
 
 
@@ -1892,7 +1893,8 @@ def get_s3_path(bucket_name: str, database_name: 
Optional[str] = None, table_nam
 
 @pytest.fixture(name="s3", scope="module")
 def fixture_s3_client() -> boto3.client:
-    yield boto3.client("s3")
+    with mock_aws():
+        yield boto3.client("s3")
 
 
 def clean_up(test_catalog: Catalog) -> None:


Reply via email to