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

jshao pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git


The following commit(s) were added to refs/heads/main by this push:
     new 300452bbf [#3818][#4100] Improvement(client-python): Replace all 
assert in client-python & fix: Validate methods of request in client-python are 
not correct (#4346)
300452bbf is described below

commit 300452bbf2fddcda83d61540d4a6b791246440d2
Author: Jing-Jia Hung <[email protected]>
AuthorDate: Sat Aug 17 10:12:21 2024 +0800

    [#3818][#4100] Improvement(client-python): Replace all assert in 
client-python & fix: Validate methods of request in client-python are not 
correct (#4346)
    
    ### What changes were proposed in this pull request?
    
    - Fix `validate` errors (attributes are not allowed to be None) in
    `catalog_update_request.py` .
    - Unify the implementation way of `validate` : using raise.
    - Replace all `assert` with defined exception.
    
    ### Why are the changes needed?
    
    Fix: #3818
    Fix: #4100
    
    ### Does this PR introduce _any_ user-facing change?
    
    No.
    
    ### How was this patch tested?
    
    test with` ./gradlew client:client-python:test`
---
 .../auth/default_oauth2_token_provider.py          | 21 ++++++++++------
 .../gravitino/catalog/base_schema_catalog.py       | 20 +++++++++-------
 .../gravitino/client/gravitino_version.py          |  5 ++--
 .../dto/requests/catalog_create_request.py         | 13 +++++-----
 .../dto/requests/schema_create_request.py          |  3 ++-
 .../gravitino/dto/responses/base_response.py       |  4 +++-
 .../gravitino/dto/responses/catalog_response.py    | 17 ++++++-------
 .../dto/responses/entity_list_response.py          |  4 +++-
 .../gravitino/dto/responses/error_response.py      | 13 +++++-----
 .../gravitino/dto/responses/fileset_response.py    | 19 ++++++++-------
 .../gravitino/dto/responses/metalake_response.py   | 16 +++++++------
 .../dto/responses/oauth2_error_response.py         |  4 +++-
 .../dto/responses/oauth2_token_response.py         | 14 +++++++----
 .../gravitino/dto/responses/schema_response.py     | 14 +++++++----
 .../gravitino/dto/responses/version_response.py    | 28 ++++++++++++++--------
 clients/client-python/gravitino/namespace.py       |  7 +++---
 clients/client-python/gravitino/rest/rest_utils.py |  4 +++-
 .../tests/integration/hdfs_container.py            |  4 +++-
 .../unittests/auth/test_oauth2_token_provider.py   | 14 +++++++----
 .../tests/unittests/test_gravitino_version.py      | 14 ++++-------
 20 files changed, 141 insertions(+), 97 deletions(-)

diff --git 
a/clients/client-python/gravitino/auth/default_oauth2_token_provider.py 
b/clients/client-python/gravitino/auth/default_oauth2_token_provider.py
index beefc90c4..a8a98d306 100644
--- a/clients/client-python/gravitino/auth/default_oauth2_token_provider.py
+++ b/clients/client-python/gravitino/auth/default_oauth2_token_provider.py
@@ -26,7 +26,10 @@ from gravitino.dto.responses.oauth2_token_response import 
OAuth2TokenResponse
 from gravitino.dto.requests.oauth2_client_credential_request import (
     OAuth2ClientCredentialRequest,
 )
-from gravitino.exceptions.base import GravitinoRuntimeException
+from gravitino.exceptions.base import (
+    GravitinoRuntimeException,
+    IllegalArgumentException,
+)
 from gravitino.exceptions.handlers.oauth_error_handler import 
OAUTH_ERROR_HANDLER
 
 CLIENT_CREDENTIALS = "client_credentials"
@@ -61,11 +64,14 @@ class DefaultOAuth2TokenProvider(OAuth2TokenProvider):
         self._token = self._fetch_token()
 
     def validate(self):
-        assert (
-            self._credential and self._credential.strip()
-        ), "OAuth2TokenProvider must set credential"
-        assert self._scope and self._scope.strip(), "OAuth2TokenProvider must 
set scope"
-        assert self._path and self._path.strip(), "OAuth2TokenProvider must 
set path"
+        if not self._credential or not self._credential.strip():
+            raise IllegalArgumentException("OAuth2TokenProvider must set 
credential")
+
+        if not self._scope or not self._scope.strip():
+            raise IllegalArgumentException("OAuth2TokenProvider must set 
scope")
+
+        if not self._path or not self._path.strip():
+            raise IllegalArgumentException("OAuth2TokenProvider must set path")
 
     def _get_access_token(self) -> Optional[str]:
 
@@ -81,7 +87,8 @@ class DefaultOAuth2TokenProvider(OAuth2TokenProvider):
         return self._token
 
     def _parse_credential(self):
-        assert self._credential is not None, "Invalid credential: None"
+        if self._credential is None:
+            raise ValueError("Invalid credential: None")
 
         credential_info = self._credential.split(CREDENTIAL_SPLITTER, 
maxsplit=1)
         client_id = None
diff --git a/clients/client-python/gravitino/catalog/base_schema_catalog.py 
b/clients/client-python/gravitino/catalog/base_schema_catalog.py
index 2b146b27e..70061799d 100644
--- a/clients/client-python/gravitino/catalog/base_schema_catalog.py
+++ b/clients/client-python/gravitino/catalog/base_schema_catalog.py
@@ -36,6 +36,7 @@ from gravitino.exceptions.handlers.schema_error_handler 
import SCHEMA_ERROR_HAND
 from gravitino.namespace import Namespace
 from gravitino.utils import HTTPClient
 from gravitino.rest.rest_utils import encode_string
+from gravitino.exceptions.base import IllegalArgumentException
 
 logger = logging.getLogger(__name__)
 
@@ -238,12 +239,13 @@ class BaseSchemaCatalog(CatalogDTO, SupportsSchemas):
             f"Catalog namespace must be non-null and have 1 level, the input 
namespace is {self._catalog_namespace}",
         )
 
-        assert self.rest_client is not None, "restClient must be set"
-        assert (
-            self.name() is not None and len(self.name().strip()) > 0
-        ), "name must not be blank"
-        assert self.type() is not None, "type must not be None"
-        assert (
-            self.provider() is not None and len(self.provider().strip()) > 0
-        ), "provider must not be blank"
-        assert self.audit_info() is not None, "audit must not be None"
+        if self.rest_client is None:
+            raise IllegalArgumentException("restClient must be set")
+        if not self.name() or not self.name().strip():
+            raise IllegalArgumentException("name must not be blank")
+        if self.type() is None:
+            raise IllegalArgumentException("type must not be None")
+        if not self.provider() or not self.provider().strip():
+            raise IllegalArgumentException("provider must not be blank")
+        if self.audit_info() is None:
+            raise IllegalArgumentException("audit must not be None")
diff --git a/clients/client-python/gravitino/client/gravitino_version.py 
b/clients/client-python/gravitino/client/gravitino_version.py
index c69376f1b..ae42b990c 100644
--- a/clients/client-python/gravitino/client/gravitino_version.py
+++ b/clients/client-python/gravitino/client/gravitino_version.py
@@ -22,7 +22,7 @@ from dataclasses import dataclass
 from enum import Enum
 
 from gravitino.dto.version_dto import VersionDTO
-from gravitino.exceptions.base import GravitinoRuntimeException
+from gravitino.exceptions.base import BadRequestException, 
GravitinoRuntimeException
 
 
 class Version(Enum):
@@ -51,7 +51,8 @@ class GravitinoVersion(VersionDTO):
 
         m = re.match(VERSION_PATTERN, self.version())
 
-        assert m is not None, "Invalid version string " + self.version()
+        if m is None:
+            raise BadRequestException(f"Invalid version string: 
{self.version()}")
 
         self.major = int(m.group(Version.MAJOR.value))
         self.minor = int(m.group(Version.MINOR.value))
diff --git 
a/clients/client-python/gravitino/dto/requests/catalog_create_request.py 
b/clients/client-python/gravitino/dto/requests/catalog_create_request.py
index c8f70dd11..853cb5cf5 100644
--- a/clients/client-python/gravitino/dto/requests/catalog_create_request.py
+++ b/clients/client-python/gravitino/dto/requests/catalog_create_request.py
@@ -58,10 +58,9 @@ class CatalogCreateRequest(RESTRequest):
         Raises:
             IllegalArgumentException if name or type are not set.
         """
-        assert self._name is not None, '"name" field is required and cannot be 
empty'
-        assert (
-            self._type is not None
-        ), '"catalog_type" field is required and cannot be empty'
-        assert (
-            self._provider is not None
-        ), '"provider" field is required and cannot be empty'
+        if not self._name:
+            raise ValueError('"name" field is required and cannot be empty')
+        if not self._type:
+            raise ValueError('"catalog_type" field is required and cannot be 
empty')
+        if not self._provider:
+            raise ValueError('"provider" field is required and cannot be 
empty')
diff --git 
a/clients/client-python/gravitino/dto/requests/schema_create_request.py 
b/clients/client-python/gravitino/dto/requests/schema_create_request.py
index 5e09e2f2b..e5df0a8bd 100644
--- a/clients/client-python/gravitino/dto/requests/schema_create_request.py
+++ b/clients/client-python/gravitino/dto/requests/schema_create_request.py
@@ -43,4 +43,5 @@ class SchemaCreateRequest(RESTRequest):
         self._properties = properties
 
     def validate(self):
-        assert self._name is not None, '"name" field is required and cannot be 
empty'
+        if not self._name:
+            raise ValueError('"name" field is required and cannot be empty')
diff --git a/clients/client-python/gravitino/dto/responses/base_response.py 
b/clients/client-python/gravitino/dto/responses/base_response.py
index 8ce91bd9b..52cdfe9fb 100644
--- a/clients/client-python/gravitino/dto/responses/base_response.py
+++ b/clients/client-python/gravitino/dto/responses/base_response.py
@@ -20,6 +20,7 @@ under the License.
 from dataclasses import dataclass, field
 
 from dataclasses_json import config
+from gravitino.exceptions.base import IllegalArgumentException
 
 from gravitino.rest.rest_message import RESTResponse
 
@@ -37,4 +38,5 @@ class BaseResponse(RESTResponse):
         """Validates the response code.
         @throws IllegalArgumentException if code value is negative.
         """
-        assert self._code >= 0, "code must be >= 0"
+        if self._code < 0:
+            raise IllegalArgumentException("code must be >= 0")
diff --git a/clients/client-python/gravitino/dto/responses/catalog_response.py 
b/clients/client-python/gravitino/dto/responses/catalog_response.py
index d1cefa0ba..f1e68798e 100644
--- a/clients/client-python/gravitino/dto/responses/catalog_response.py
+++ b/clients/client-python/gravitino/dto/responses/catalog_response.py
@@ -20,6 +20,7 @@ under the License.
 from dataclasses import dataclass, field
 
 from dataclasses_json import config
+from gravitino.exceptions.base import IllegalArgumentException
 
 from .base_response import BaseResponse
 from ..catalog_dto import CatalogDTO
@@ -39,14 +40,14 @@ class CatalogResponse(BaseResponse):
         """
         super().validate()
 
-        assert self._catalog is not None, "catalog must not be null"
-        assert (
-            self._catalog.name() is not None
-        ), "catalog 'name' must not be null and empty"
-        assert self._catalog.type() is not None, "catalog 'type' must not be 
null"
-        assert (
-            self._catalog.audit_info() is not None
-        ), "catalog 'audit' must not be null"
+        if self._catalog is None:
+            raise IllegalArgumentException("catalog must not be null")
+        if self._catalog.name() is None:
+            raise IllegalArgumentException("catalog 'name' must not be null 
and empty")
+        if self._catalog.type() is None:
+            raise IllegalArgumentException("catalog 'type' must not be null")
+        if self._catalog.audit_info() is None:
+            raise IllegalArgumentException("catalog 'audit' must not be null")
 
     def catalog(self) -> CatalogDTO:
         return self._catalog
diff --git 
a/clients/client-python/gravitino/dto/responses/entity_list_response.py 
b/clients/client-python/gravitino/dto/responses/entity_list_response.py
index 4e32ac4e4..522eb4edc 100644
--- a/clients/client-python/gravitino/dto/responses/entity_list_response.py
+++ b/clients/client-python/gravitino/dto/responses/entity_list_response.py
@@ -23,6 +23,7 @@ from typing import List
 from dataclasses_json import config
 
 from gravitino.dto.responses.base_response import BaseResponse
+from gravitino.exceptions.base import IllegalArgumentException
 from gravitino.name_identifier import NameIdentifier
 
 
@@ -43,4 +44,5 @@ class EntityListResponse(BaseResponse):
         """
         super().validate()
 
-        assert self._idents is not None, "identifiers must not be null"
+        if self._idents is None:
+            raise IllegalArgumentException("identifiers must not be null")
diff --git a/clients/client-python/gravitino/dto/responses/error_response.py 
b/clients/client-python/gravitino/dto/responses/error_response.py
index ad1fd273e..1c4a0703c 100644
--- a/clients/client-python/gravitino/dto/responses/error_response.py
+++ b/clients/client-python/gravitino/dto/responses/error_response.py
@@ -23,7 +23,7 @@ from dataclasses_json import config
 
 from gravitino.dto.responses.base_response import BaseResponse
 from gravitino.constants.error import ErrorConstants, EXCEPTION_MAPPING
-from gravitino.exceptions.base import UnknownError
+from gravitino.exceptions.base import BadRequestException, UnknownError
 
 
 @dataclass
@@ -46,12 +46,11 @@ class ErrorResponse(BaseResponse):
     def validate(self):
         super().validate()
 
-        assert (
-            self._type is not None and len(self._type) != 0
-        ), "type cannot be None or empty"
-        assert (
-            self._message is not None and len(self._message) != 0
-        ), "message cannot be None or empty"
+        if self._type is None or not self._type.strip():
+            raise BadRequestException("Type cannot be None or empty")
+
+        if self._message is None or not self._message.strip():
+            raise BadRequestException("Message cannot be None or empty")
 
     def __repr__(self) -> str:
         return (
diff --git a/clients/client-python/gravitino/dto/responses/fileset_response.py 
b/clients/client-python/gravitino/dto/responses/fileset_response.py
index db0a1d886..f6460f433 100644
--- a/clients/client-python/gravitino/dto/responses/fileset_response.py
+++ b/clients/client-python/gravitino/dto/responses/fileset_response.py
@@ -23,6 +23,7 @@ from dataclasses_json import config
 
 from gravitino.dto.fileset_dto import FilesetDTO
 from gravitino.dto.responses.base_response import BaseResponse
+from gravitino.exceptions.base import IllegalArgumentException
 
 
 @dataclass
@@ -41,11 +42,13 @@ class FilesetResponse(BaseResponse):
             IllegalArgumentException if catalog identifiers are not set.
         """
         super().validate()
-        assert self._fileset is not None, "fileset must not be null"
-        assert self._fileset.name, "fileset 'name' must not be null and empty"
-        assert (
-            self._fileset.storage_location
-        ), "fileset 'storageLocation' must not be null and empty"
-        assert (
-            self._fileset.type is not None
-        ), "fileset 'type' must not be null and empty"
+        if self._fileset is None:
+            raise IllegalArgumentException("fileset must not be null")
+        if not self._fileset.name():
+            raise IllegalArgumentException("fileset 'name' must not be null 
and empty")
+        if not self._fileset.storage_location():
+            raise IllegalArgumentException(
+                "fileset 'storageLocation' must not be null and empty"
+            )
+        if self._fileset.type() is None:
+            raise IllegalArgumentException("fileset 'type' must not be null 
and empty")
diff --git a/clients/client-python/gravitino/dto/responses/metalake_response.py 
b/clients/client-python/gravitino/dto/responses/metalake_response.py
index c3c4be103..996e98ed9 100644
--- a/clients/client-python/gravitino/dto/responses/metalake_response.py
+++ b/clients/client-python/gravitino/dto/responses/metalake_response.py
@@ -24,6 +24,7 @@ from dataclasses_json import config
 
 from gravitino.dto.metalake_dto import MetalakeDTO
 from gravitino.dto.responses.base_response import BaseResponse
+from gravitino.exceptions.base import IllegalArgumentException
 
 
 @dataclass
@@ -41,10 +42,11 @@ class MetalakeResponse(BaseResponse):
         """
         super().validate()
 
-        assert self._metalake is not None, "metalake must not be null"
-        assert (
-            self._metalake.name() is not None
-        ), "metalake 'name' must not be null and empty"
-        assert (
-            self._metalake.audit_info() is not None
-        ), "metalake 'audit' must not be null"
+        if self._metalake is None:
+            raise IllegalArgumentException("Metalake must not be null")
+
+        if self._metalake.name() is None:
+            raise IllegalArgumentException("Metalake 'name' must not be null 
and empty")
+
+        if self._metalake.audit_info() is None:
+            raise IllegalArgumentException("Metalake 'audit' must not be null")
diff --git 
a/clients/client-python/gravitino/dto/responses/oauth2_error_response.py 
b/clients/client-python/gravitino/dto/responses/oauth2_error_response.py
index f7e472c13..20edf171d 100644
--- a/clients/client-python/gravitino/dto/responses/oauth2_error_response.py
+++ b/clients/client-python/gravitino/dto/responses/oauth2_error_response.py
@@ -21,6 +21,7 @@ from dataclasses import dataclass, field
 from dataclasses_json import config
 
 from gravitino.dto.responses.error_response import ErrorResponse
+from gravitino.exceptions.base import IllegalArgumentException
 
 
 @dataclass
@@ -37,4 +38,5 @@ class OAuth2ErrorResponse(ErrorResponse):
         return self._message
 
     def validate(self):
-        assert self._type is not None, "OAuthErrorResponse should contain type"
+        if self._type is None:
+            raise IllegalArgumentException("OAuthErrorResponse should contain 
type")
diff --git 
a/clients/client-python/gravitino/dto/responses/oauth2_token_response.py 
b/clients/client-python/gravitino/dto/responses/oauth2_token_response.py
index 07869ec03..37071b723 100644
--- a/clients/client-python/gravitino/dto/responses/oauth2_token_response.py
+++ b/clients/client-python/gravitino/dto/responses/oauth2_token_response.py
@@ -23,6 +23,7 @@ from dataclasses_json import config
 
 from gravitino.dto.responses.base_response import BaseResponse
 from gravitino.auth.auth_constants import AuthConstants
+from gravitino.exceptions.base import IllegalArgumentException
 
 
 @dataclass
@@ -45,11 +46,16 @@ class OAuth2TokenResponse(BaseResponse):
         """
         super().validate()
 
-        assert self._access_token is not None, "Invalid access token: None"
-        assert (
+        if self._access_token is None:
+            raise IllegalArgumentException("Invalid access token: None")
+
+        if (
             AuthConstants.AUTHORIZATION_BEARER_HEADER.strip().lower()
-            == self._token_type.lower()
-        ), f'Unsupported token type: {self._token_type} (must be "bearer")'
+            != self._token_type.lower()
+        ):
+            raise IllegalArgumentException(
+                f'Unsupported token type: {self._token_type} (must be 
"bearer")'
+            )
 
     def access_token(self) -> str:
         return self._access_token
diff --git a/clients/client-python/gravitino/dto/responses/schema_response.py 
b/clients/client-python/gravitino/dto/responses/schema_response.py
index 836b5376e..ed6f04caf 100644
--- a/clients/client-python/gravitino/dto/responses/schema_response.py
+++ b/clients/client-python/gravitino/dto/responses/schema_response.py
@@ -23,6 +23,7 @@ from dataclasses_json import DataClassJsonMixin, config
 
 from gravitino.dto.responses.base_response import BaseResponse
 from gravitino.dto.schema_dto import SchemaDTO
+from gravitino.exceptions.base import IllegalArgumentException
 
 
 @dataclass
@@ -44,8 +45,11 @@ class SchemaResponse(BaseResponse, DataClassJsonMixin):
         """
         super().validate()
 
-        assert self._schema is not None, "schema must be non-null"
-        assert (
-            self._schema.name() is not None
-        ), "schema 'name' must not be null and empty"
-        assert self._schema.audit_info() is not None, "schema 'audit' must not 
be null"
+        if self._schema is None:
+            raise IllegalArgumentException("Schema must be non-null")
+
+        if self._schema.name() is None:
+            raise IllegalArgumentException("Schema 'name' must not be null and 
empty")
+
+        if self._schema.audit_info() is None:
+            raise IllegalArgumentException("Schema 'audit' must not be null")
diff --git a/clients/client-python/gravitino/dto/responses/version_response.py 
b/clients/client-python/gravitino/dto/responses/version_response.py
index abeebcabf..acb6ca808 100644
--- a/clients/client-python/gravitino/dto/responses/version_response.py
+++ b/clients/client-python/gravitino/dto/responses/version_response.py
@@ -22,6 +22,7 @@ from dataclasses_json import config
 
 from gravitino.dto.responses.base_response import BaseResponse
 from gravitino.dto.version_dto import VersionDTO
+from gravitino.exceptions.base import IllegalArgumentException
 
 
 @dataclass
@@ -41,13 +42,20 @@ class VersionResponse(BaseResponse):
         """
         super().validate()
 
-        assert self._version is not None, "version must be non-null"
-        assert (
-            self._version.version() is not None
-        ), "version 'version' must not be null and empty"
-        assert (
-            self._version.compile_date() is not None
-        ), "version 'compile_date' must not be null and empty"
-        assert (
-            self._version.git_commit() is not None
-        ), "version 'git_commit' must not be null and empty"
+        if self._version is None:
+            raise IllegalArgumentException("Version must be non-null")
+
+        if self._version.version() is None:
+            raise IllegalArgumentException(
+                "Version 'version' must not be null or empty"
+            )
+
+        if self._version.compile_date() is None:
+            raise IllegalArgumentException(
+                "Version 'compile_date' must not be null or empty"
+            )
+
+        if self._version.git_commit() is None:
+            raise IllegalArgumentException(
+                "Version 'git_commit' must not be null or empty"
+            )
diff --git a/clients/client-python/gravitino/namespace.py 
b/clients/client-python/gravitino/namespace.py
index 221fd3ea8..0fa23922e 100644
--- a/clients/client-python/gravitino/namespace.py
+++ b/clients/client-python/gravitino/namespace.py
@@ -40,9 +40,10 @@ class Namespace:
 
     @classmethod
     def from_json(cls, levels):
-        assert levels is not None and isinstance(
-            levels, list
-        ), f"Cannot parse name identifier from invalid JSON: {levels}"
+        if levels is None or not isinstance(levels, list):
+            raise IllegalNamespaceException(
+                f"Cannot parse name identifier from invalid JSON: {levels}"
+            )
         return cls(levels)
 
     @staticmethod
diff --git a/clients/client-python/gravitino/rest/rest_utils.py 
b/clients/client-python/gravitino/rest/rest_utils.py
index 077511a2f..7e31633ec 100644
--- a/clients/client-python/gravitino/rest/rest_utils.py
+++ b/clients/client-python/gravitino/rest/rest_utils.py
@@ -18,10 +18,12 @@ under the License.
 """
 
 import urllib.parse
+from gravitino.exceptions.base import IllegalArgumentException
 
 
 def encode_string(to_encode: str):
 
-    assert to_encode is not None, "Invalid string to encode: None"
+    if to_encode is None:
+        raise IllegalArgumentException("Invalid string to encode: None")
 
     return urllib.parse.quote(to_encode)
diff --git a/clients/client-python/tests/integration/hdfs_container.py 
b/clients/client-python/tests/integration/hdfs_container.py
index b9e1887fc..176fb052c 100644
--- a/clients/client-python/tests/integration/hdfs_container.py
+++ b/clients/client-python/tests/integration/hdfs_container.py
@@ -27,6 +27,7 @@ from docker import types as tp
 from docker.errors import NotFound
 
 from gravitino.exceptions.base import GravitinoRuntimeException
+from gravitino.exceptions.base import InternalError
 
 logger = logging.getLogger(__name__)
 
@@ -63,7 +64,8 @@ async def check_hdfs_container_status(hdfs_container):
         result = await asyncio.wait_for(
             check_hdfs_status(hdfs_container), timeout=timeout_sec
         )
-        assert result is True, "HDFS container startup failed!"
+        if not result:
+            raise InternalError("HDFS container startup failed!")
     except asyncio.TimeoutError as e:
         raise GravitinoRuntimeException(
             "Timeout occurred while waiting for checking HDFS container 
status."
diff --git 
a/clients/client-python/tests/unittests/auth/test_oauth2_token_provider.py 
b/clients/client-python/tests/unittests/auth/test_oauth2_token_provider.py
index 7d9ef9e25..447d16570 100644
--- a/clients/client-python/tests/unittests/auth/test_oauth2_token_provider.py
+++ b/clients/client-python/tests/unittests/auth/test_oauth2_token_provider.py
@@ -22,7 +22,11 @@ from unittest.mock import patch
 
 from gravitino.auth.auth_constants import AuthConstants
 from gravitino.auth.default_oauth2_token_provider import 
DefaultOAuth2TokenProvider
-from gravitino.exceptions.base import BadRequestException, 
UnauthorizedException
+from gravitino.exceptions.base import (
+    BadRequestException,
+    IllegalArgumentException,
+    UnauthorizedException,
+)
 from tests.unittests.auth import mock_base
 
 OAUTH_PORT = 1082
@@ -32,13 +36,13 @@ class TestOAuth2TokenProvider(unittest.TestCase):
 
     def test_provider_init_exception(self):
 
-        with self.assertRaises(AssertionError):
+        with self.assertRaises(IllegalArgumentException):
             _ = DefaultOAuth2TokenProvider(uri="test")
 
-        with self.assertRaises(AssertionError):
+        with self.assertRaises(IllegalArgumentException):
             _ = DefaultOAuth2TokenProvider(uri="test", credential="xx")
 
-        with self.assertRaises(AssertionError):
+        with self.assertRaises(IllegalArgumentException):
             _ = DefaultOAuth2TokenProvider(uri="test", credential="xx", 
scope="test")
 
     @patch(
@@ -75,7 +79,7 @@ class TestOAuth2TokenProvider(unittest.TestCase):
     )
     def test_authentication_with_error_authentication_type(self, 
*mock_methods):
 
-        with self.assertRaises(AssertionError):
+        with self.assertRaises(IllegalArgumentException):
             _ = DefaultOAuth2TokenProvider(
                 uri=f"http://127.0.0.1:{OAUTH_PORT}";,
                 credential="yy:xx",
diff --git a/clients/client-python/tests/unittests/test_gravitino_version.py 
b/clients/client-python/tests/unittests/test_gravitino_version.py
index 6f18bcfd1..37a4a7b68 100644
--- a/clients/client-python/tests/unittests/test_gravitino_version.py
+++ b/clients/client-python/tests/unittests/test_gravitino_version.py
@@ -21,7 +21,7 @@ import unittest
 
 from gravitino.client.gravitino_version import GravitinoVersion
 from gravitino.dto.version_dto import VersionDTO
-from gravitino.exceptions.base import GravitinoRuntimeException
+from gravitino.exceptions.base import BadRequestException, 
GravitinoRuntimeException
 
 
 class TestGravitinoVersion(unittest.TestCase):
@@ -57,16 +57,12 @@ class TestGravitinoVersion(unittest.TestCase):
         self.assertEqual(version.patch, 0)
 
         # Test an invalid the version string with 2 part
-        self.assertRaises(
-            AssertionError, GravitinoVersion, VersionDTO("0.6", "2023-01-01", 
"1234567")
-        )
+        with self.assertRaises(BadRequestException):
+            GravitinoVersion(VersionDTO("0.6", "2023-01-01", "1234567"))
 
         # Test an invalid the version string with not number
-        self.assertRaises(
-            AssertionError,
-            GravitinoVersion,
-            VersionDTO("a.b.c", "2023-01-01", "1234567"),
-        )
+        with self.assertRaises(BadRequestException):
+            GravitinoVersion(VersionDTO("a.b.c", "2023-01-01", "1234567"))
 
     def test_version_compare(self):
         # test equal

Reply via email to