@@ -657,7 +657,7 @@ def describe_table(self, path: str, settings: ydb.DescribeTableSettings = None)
657
657
)
658
658
659
659
@allure .step ('List path {path}' )
660
- def list_path (self , path : str , folder : str ) -> List [ydb .SchemeEntry ]:
660
+ def list_path_tree (self , path : str , folder : str ) -> List [ydb .SchemeEntry ]:
661
661
"""Recursively describe the path in the database under test.
662
662
663
663
If the path is a directory or TableStore, then all subpaths are included in the description.
@@ -679,8 +679,19 @@ def list_path(self, path: str, folder: str) -> List[ydb.SchemeEntry]:
679
679
if self_descr is None :
680
680
return []
681
681
682
+ kind_order = [
683
+ ydb .SchemeEntryType .COLUMN_TABLE ,
684
+ ydb .SchemeEntryType .COLUMN_STORE ,
685
+ ydb .SchemeEntryType .EXTERNAL_DATA_SOURCE ,
686
+ ]
687
+ def kind_order_key_reversed (kind ):
688
+ try :
689
+ return - kind_order .index (kind )
690
+ except ValueError :
691
+ return - len (kind_order )
692
+
682
693
if self_descr .is_directory ():
683
- return list (reversed (YdbCluster .list_directory (root_path , path ))) + [self_descr ]
694
+ return list (reversed (YdbCluster .list_directory_tree (root_path , path , kind_order_key_reversed ))) + [self_descr ]
684
695
else :
685
696
return self_descr
686
697
@@ -701,7 +712,7 @@ def remove_path(self, path: str, folder: str = '') -> None:
701
712
import ydb .tests .olap .scenario .helpers .drop_helper as dh
702
713
703
714
root_path = self .get_full_path (folder )
704
- for e in self .list_path (path , folder ):
715
+ for e in self .list_path_tree (path , folder ):
705
716
if e .is_any_table ():
706
717
self .execute_scheme_query (dh .DropTable (os .path .join (folder , e .name )))
707
718
elif e .is_column_store ():
0 commit comments