@@ -632,4 +632,52 @@ def test_raw_empty_schema_binding(self, kikimr, client, unique_prefix):
632
632
columns = [],
633
633
check_issues = False )
634
634
assert "Only one column in schema supported in raw format" in str (binding_response .issues ), str (
635
- binding_response .issues )
635
+ binding_response .issues )
636
+
637
+ @yq_all
638
+ @pytest .mark .parametrize ("client" , [{"folder_id" : "my_folder" }], indirect = True )
639
+ def test_binding_with_backslash_in_location (self , s3 , client ):
640
+ resource = boto3 .resource (
641
+ "s3" , endpoint_url = s3 .s3_url , aws_access_key_id = "key" , aws_secret_access_key = "secret_key"
642
+ )
643
+
644
+ bucket = resource .Bucket ("backslash_bucket" )
645
+ bucket .create (ACL = 'public-read' )
646
+
647
+ s3_client = boto3 .client (
648
+ "s3" , endpoint_url = s3 .s3_url , aws_access_key_id = "key" , aws_secret_access_key = "secret_key"
649
+ )
650
+
651
+ data = R'''data
652
+ test'''
653
+ s3_client .put_object (Body = data , Bucket = 'backslash_bucket' , Key = '\\ ' , ContentType = 'text/plain' )
654
+
655
+ connection_response = client .create_storage_connection ("backslash_bucket" , "backslash_bucket" )
656
+
657
+ data_type = ydb .Column (name = "data" , type = ydb .Type (type_id = ydb .Type .PrimitiveTypeId .UTF8 ))
658
+ storage_binding_name = "binding_name"
659
+ client .create_object_storage_binding (
660
+ name = storage_binding_name ,
661
+ path = "\\ " ,
662
+ format = "csv_with_names" ,
663
+ connection_id = connection_response .result .connection_id ,
664
+ columns = [data_type ],
665
+ )
666
+
667
+ sql = fR'''
668
+ SELECT *
669
+ FROM bindings.{ storage_binding_name } ;
670
+ '''
671
+
672
+ query_id = client .create_query (
673
+ "simple" , sql , type = fq .QueryContent .QueryType .ANALYTICS , pg_syntax = True
674
+ ).result .query_id
675
+ client .wait_query_status (query_id , fq .QueryMeta .COMPLETED )
676
+
677
+ data = client .get_result_data (query_id )
678
+ result_set = data .result .result_set
679
+ logging .debug (str (result_set ))
680
+ assert len (result_set .columns ) == 1
681
+ assert result_set .columns [0 ].name == "data"
682
+ assert len (result_set .rows ) == 1
683
+ assert result_set .rows [0 ].items [0 ].text_value == "test"
0 commit comments