@@ -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,20 @@ 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
+
688
+ def kind_order_key_reversed (kind ):
689
+ try :
690
+ return - kind_order .index (kind )
691
+ except ValueError :
692
+ return - len (kind_order )
693
+
682
694
if self_descr .is_directory ():
683
- return list (reversed (YdbCluster .list_directory (root_path , path ))) + [self_descr ]
695
+ return list (reversed (YdbCluster .list_directory_tree (root_path , path , kind_order_key_reversed ))) + [self_descr ]
684
696
else :
685
697
return self_descr
686
698
@@ -701,7 +713,7 @@ def remove_path(self, path: str, folder: str = '') -> None:
701
713
import ydb .tests .olap .scenario .helpers .drop_helper as dh
702
714
703
715
root_path = self .get_full_path (folder )
704
- for e in self .list_path (path , folder ):
716
+ for e in self .list_path_tree (path , folder ):
705
717
if e .is_any_table ():
706
718
self .execute_scheme_query (dh .DropTable (os .path .join (folder , e .name )))
707
719
elif e .is_column_store ():
0 commit comments