@@ -575,6 +575,32 @@ def test_mkdir(s3):
575
575
assert bucket in s3 .ls ("/" )
576
576
577
577
578
+ def test_mkdir_existing_bucket (s3 ):
579
+ # mkdir called on existing bucket should be no-op and not calling create_bucket
580
+ # creating a s3 bucket
581
+ bucket = "test1_bucket"
582
+ s3 .mkdir (bucket )
583
+ assert bucket in s3 .ls ("/" )
584
+ # a second call.
585
+ with pytest .raises (FileExistsError ):
586
+ s3 .mkdir (bucket )
587
+
588
+
589
+ def test_mkdir_bucket_and_key_1 (s3 ):
590
+ bucket = "test1_bucket"
591
+ file = bucket + "/a/b/c"
592
+ s3 .mkdir (file , create_parents = True )
593
+ assert bucket in s3 .ls ("/" )
594
+
595
+
596
+ def test_mkdir_bucket_and_key_2 (s3 ):
597
+ bucket = "test1_bucket"
598
+ file = bucket + "/a/b/c"
599
+ with pytest .raises (FileNotFoundError ):
600
+ s3 .mkdir (file , create_parents = False )
601
+ assert bucket not in s3 .ls ("/" )
602
+
603
+
578
604
def test_mkdir_region_name (s3 ):
579
605
bucket = "test2_bucket"
580
606
s3 .mkdir (bucket , region_name = "eu-central-1" )
@@ -598,6 +624,28 @@ def test_makedirs(s3):
598
624
assert bucket in s3 .ls ("/" )
599
625
600
626
627
+ def test_makedirs_existing_bucket (s3 ):
628
+ bucket = "test_makedirs_bucket"
629
+ s3 .mkdir (bucket )
630
+ assert bucket in s3 .ls ("/" )
631
+ test_file = bucket + "/a/b/c/file"
632
+ # no-op, and no error.
633
+ s3 .makedirs (test_file )
634
+
635
+
636
+ def test_makedirs_pure_bucket_exist_ok (s3 ):
637
+ bucket = "test1_bucket"
638
+ s3 .mkdir (bucket )
639
+ s3 .makedirs (bucket , exist_ok = True )
640
+
641
+
642
+ def test_makedirs_pure_bucket_error_on_exist (s3 ):
643
+ bucket = "test1_bucket"
644
+ s3 .mkdir (bucket )
645
+ with pytest .raises (FileExistsError ):
646
+ s3 .makedirs (bucket , exist_ok = False )
647
+
648
+
601
649
def test_bulk_delete (s3 ):
602
650
with pytest .raises (FileNotFoundError ):
603
651
s3 .rm (["nonexistent/file" ])
@@ -1693,7 +1741,6 @@ def test_requester_pays(s3):
1693
1741
fn = test_bucket_name + "/myfile"
1694
1742
s3 = S3FileSystem (requester_pays = True , client_kwargs = {"endpoint_url" : endpoint_uri })
1695
1743
assert s3 .req_kw ["RequestPayer" ] == "requester"
1696
- s3 .mkdir (test_bucket_name )
1697
1744
s3 .touch (fn )
1698
1745
with s3 .open (fn , "rb" ) as f :
1699
1746
assert f .req_kw ["RequestPayer" ] == "requester"
0 commit comments