Skip to content

Commit 22710e0

Browse files
authored
Merge pull request #707 from catsona/catsona/fix_schema_entry_methods
Fix is_view, is_resource_pool for SchemeEntryType
1 parent 7b5d234 commit 22710e0

File tree

3 files changed

+57
-5
lines changed

3 files changed

+57
-5
lines changed

CHANGELOG.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
* Fix is_view, is_resource_pool for SchemeEntryType
2+
13
## 3.21.10 ##
24
* Fix stream error handling
35

@@ -89,7 +91,7 @@
8991
* Fix attach session timeouts
9092

9193
## 3.18.8 ##
92-
* Refactor aio tableclient destructor
94+
* Refactor aio tableclient destructor
9395

9496
## 3.18.7 ##
9597
* Add an ability to pass custom event loop to QuerySessionPool
@@ -102,9 +104,9 @@
102104

103105
## 3.18.4 ##
104106
* Fix table_client desctructor
105-
107+
106108
## 3.18.3 ##
107-
* Hide session management for table client methods
109+
* Hide session management for table client methods
108110
* Add build method to QueryOnlineReadOnly mode
109111

110112
## 3.18.2 ##

tests/scheme/scheme_test.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import typing
2+
import pytest
23

34
import ydb
45

@@ -25,3 +26,52 @@ def test_tables(self, driver_sync: ydb.Driver, database: str, table_name: str, c
2526

2627
assert has_column_table
2728
assert has_row_table
29+
30+
@pytest.mark.parametrize(
31+
"scheme_entry_type",
32+
[
33+
ydb.scheme.SchemeEntryType.TYPE_UNSPECIFIED,
34+
ydb.scheme.SchemeEntryType.DIRECTORY,
35+
ydb.scheme.SchemeEntryType.TABLE,
36+
ydb.scheme.SchemeEntryType.PERS_QUEUE_GROUP,
37+
ydb.scheme.SchemeEntryType.DATABASE,
38+
ydb.scheme.SchemeEntryType.RTMR_VOLUME,
39+
ydb.scheme.SchemeEntryType.BLOCK_STORE_VOLUME,
40+
ydb.scheme.SchemeEntryType.COORDINATION_NODE,
41+
ydb.scheme.SchemeEntryType.COLUMN_STORE,
42+
ydb.scheme.SchemeEntryType.COLUMN_TABLE,
43+
ydb.scheme.SchemeEntryType.SEQUENCE,
44+
ydb.scheme.SchemeEntryType.REPLICATION,
45+
ydb.scheme.SchemeEntryType.TOPIC,
46+
ydb.scheme.SchemeEntryType.EXTERNAL_TABLE,
47+
ydb.scheme.SchemeEntryType.EXTERNAL_DATA_SOURCE,
48+
ydb.scheme.SchemeEntryType.VIEW,
49+
ydb.scheme.SchemeEntryType.RESOURCE_POOL,
50+
],
51+
)
52+
def test_scheme_entry(self, scheme_entry_type):
53+
from ydb.scheme import SchemeEntryType as et
54+
55+
scheme_entry = ydb.scheme.SchemeEntry(
56+
effective_permissions=None,
57+
kwargs=None,
58+
name="example",
59+
owner=None,
60+
permissions=None,
61+
size_bytes=42,
62+
type=scheme_entry_type,
63+
)
64+
65+
assert scheme_entry.is_table() == (scheme_entry_type in (et.TABLE,))
66+
assert scheme_entry.is_any_table() == (scheme_entry_type in (et.TABLE, et.COLUMN_TABLE))
67+
assert scheme_entry.is_column_table() == (scheme_entry_type in (et.COLUMN_TABLE,))
68+
assert scheme_entry.is_column_store() == (scheme_entry_type in (et.COLUMN_STORE,))
69+
assert scheme_entry.is_row_table() == (scheme_entry_type in (et.TABLE,))
70+
assert scheme_entry.is_directory() == (scheme_entry_type in (et.DIRECTORY,))
71+
assert scheme_entry.is_database() == (scheme_entry_type in (et.DATABASE,))
72+
assert scheme_entry.is_coordination_node() == (scheme_entry_type in (et.COORDINATION_NODE,))
73+
assert scheme_entry.is_directory_or_database() == (scheme_entry_type in (et.DIRECTORY, et.DATABASE))
74+
assert scheme_entry.is_external_table() == (scheme_entry_type in (et.EXTERNAL_TABLE,))
75+
assert scheme_entry.is_external_data_source() == (scheme_entry_type in (et.EXTERNAL_DATA_SOURCE,))
76+
assert scheme_entry.is_view() == (scheme_entry_type in (et.VIEW,))
77+
assert scheme_entry.is_resource_pool() == (scheme_entry_type in (et.RESOURCE_POOL,))

ydb/scheme.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,15 +124,15 @@ def is_external_data_source(entry):
124124
return entry == SchemeEntryType.EXTERNAL_DATA_SOURCE
125125

126126
@staticmethod
127-
def is_external_view(entry):
127+
def is_view(entry):
128128
"""
129129
:param entry: A scheme entry to check
130130
:return: True if scheme entry is a view and False otherwise
131131
"""
132132
return entry == SchemeEntryType.VIEW
133133

134134
@staticmethod
135-
def is_external_resource_pool(entry):
135+
def is_resource_pool(entry):
136136
"""
137137
:param entry: A scheme entry to check
138138
:return: True if scheme entry is a resource pool and False otherwise

0 commit comments

Comments
 (0)