diff --git a/CHANGELOG.md b/CHANGELOG.md index 2695c02d..20ef2747 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,5 @@ +* Fix is_view, is_resource_pool for SchemeEntryType + ## 3.21.10 ## * Fix stream error handling @@ -89,7 +91,7 @@ * Fix attach session timeouts ## 3.18.8 ## -* Refactor aio tableclient destructor +* Refactor aio tableclient destructor ## 3.18.7 ## * Add an ability to pass custom event loop to QuerySessionPool @@ -102,9 +104,9 @@ ## 3.18.4 ## * Fix table_client desctructor - + ## 3.18.3 ## -* Hide session management for table client methods +* Hide session management for table client methods * Add build method to QueryOnlineReadOnly mode ## 3.18.2 ## diff --git a/tests/scheme/scheme_test.py b/tests/scheme/scheme_test.py index 29526cb2..4f93c8ea 100644 --- a/tests/scheme/scheme_test.py +++ b/tests/scheme/scheme_test.py @@ -1,4 +1,5 @@ import typing +import pytest import ydb @@ -25,3 +26,52 @@ def test_tables(self, driver_sync: ydb.Driver, database: str, table_name: str, c assert has_column_table assert has_row_table + + @pytest.mark.parametrize( + "scheme_entry_type", + [ + ydb.scheme.SchemeEntryType.TYPE_UNSPECIFIED, + ydb.scheme.SchemeEntryType.DIRECTORY, + ydb.scheme.SchemeEntryType.TABLE, + ydb.scheme.SchemeEntryType.PERS_QUEUE_GROUP, + ydb.scheme.SchemeEntryType.DATABASE, + ydb.scheme.SchemeEntryType.RTMR_VOLUME, + ydb.scheme.SchemeEntryType.BLOCK_STORE_VOLUME, + ydb.scheme.SchemeEntryType.COORDINATION_NODE, + ydb.scheme.SchemeEntryType.COLUMN_STORE, + ydb.scheme.SchemeEntryType.COLUMN_TABLE, + ydb.scheme.SchemeEntryType.SEQUENCE, + ydb.scheme.SchemeEntryType.REPLICATION, + ydb.scheme.SchemeEntryType.TOPIC, + ydb.scheme.SchemeEntryType.EXTERNAL_TABLE, + ydb.scheme.SchemeEntryType.EXTERNAL_DATA_SOURCE, + ydb.scheme.SchemeEntryType.VIEW, + ydb.scheme.SchemeEntryType.RESOURCE_POOL, + ], + ) + def test_scheme_entry(self, scheme_entry_type): + from ydb.scheme import SchemeEntryType as et + + scheme_entry = ydb.scheme.SchemeEntry( + effective_permissions=None, + kwargs=None, + name="example", + owner=None, + permissions=None, + size_bytes=42, + type=scheme_entry_type, + ) + + assert scheme_entry.is_table() == (scheme_entry_type in (et.TABLE,)) + assert scheme_entry.is_any_table() == (scheme_entry_type in (et.TABLE, et.COLUMN_TABLE)) + assert scheme_entry.is_column_table() == (scheme_entry_type in (et.COLUMN_TABLE,)) + assert scheme_entry.is_column_store() == (scheme_entry_type in (et.COLUMN_STORE,)) + assert scheme_entry.is_row_table() == (scheme_entry_type in (et.TABLE,)) + assert scheme_entry.is_directory() == (scheme_entry_type in (et.DIRECTORY,)) + assert scheme_entry.is_database() == (scheme_entry_type in (et.DATABASE,)) + assert scheme_entry.is_coordination_node() == (scheme_entry_type in (et.COORDINATION_NODE,)) + assert scheme_entry.is_directory_or_database() == (scheme_entry_type in (et.DIRECTORY, et.DATABASE)) + assert scheme_entry.is_external_table() == (scheme_entry_type in (et.EXTERNAL_TABLE,)) + assert scheme_entry.is_external_data_source() == (scheme_entry_type in (et.EXTERNAL_DATA_SOURCE,)) + assert scheme_entry.is_view() == (scheme_entry_type in (et.VIEW,)) + assert scheme_entry.is_resource_pool() == (scheme_entry_type in (et.RESOURCE_POOL,)) diff --git a/ydb/scheme.py b/ydb/scheme.py index 263d1c65..27458dac 100644 --- a/ydb/scheme.py +++ b/ydb/scheme.py @@ -124,7 +124,7 @@ def is_external_data_source(entry): return entry == SchemeEntryType.EXTERNAL_DATA_SOURCE @staticmethod - def is_external_view(entry): + def is_view(entry): """ :param entry: A scheme entry to check :return: True if scheme entry is a view and False otherwise @@ -132,7 +132,7 @@ def is_external_view(entry): return entry == SchemeEntryType.VIEW @staticmethod - def is_external_resource_pool(entry): + def is_resource_pool(entry): """ :param entry: A scheme entry to check :return: True if scheme entry is a resource pool and False otherwise