1
1
from . import S3_CONN_INFO
2
2
from minio import Minio
3
- import json
4
3
import urllib3
5
4
import certifi
6
5
from nose .tools import assert_true , raises
7
6
from .schema_external import schema , SimpleRemote
8
7
from datajoint .errors import DataJointError
9
- import os
10
8
from datajoint .hash import uuid_from_buffer
11
9
from datajoint .blob import pack
12
10
@@ -62,60 +60,6 @@ def test_connection_secure():
62
60
def test_remove_object_exception ():
63
61
# https://github.com/datajoint/datajoint-python/issues/952
64
62
65
- # Initialize minioClient with an endpoint and access/secret keys.
66
- minio_client = Minio (
67
- 'minio:9000' ,
68
- access_key = 'jeffjeff' ,
69
- secret_key = 'jeffjeff' ,
70
- secure = False )
71
-
72
- # Create new user
73
- os .system ('mc admin user add myminio jeffjeff jeffjeff' )
74
- # json for test policy for permissionless user
75
- testpolicy = {
76
- "Version" : "2012-10-17" ,
77
- "Statement" : [
78
- {
79
- "Action" : [
80
- "s3:GetBucketLocation" ,
81
- "s3:ListBucket" ,
82
- "s3:ListBucketMultipartUploads" ,
83
- "s3:ListAllMyBuckets"
84
- ],
85
- "Effect" : "Allow" ,
86
- "Resource" : [
87
- "arn:aws:s3:::datajoint.test" ,
88
- "arn:aws:s3:::datajoint.migrate"
89
- ],
90
- "Sid" : ""
91
- },
92
- {
93
- "Action" : [
94
- "s3:GetObject" ,
95
- "s3:ListMultipartUploadParts"
96
- ],
97
- "Effect" : "Allow" ,
98
- "Resource" : [
99
- "arn:aws:s3:::datajoint.test/*" ,
100
- "arn:aws:s3:::datajoint.migrate/*"
101
- ],
102
- "Sid" : ""
103
- }
104
- ]
105
- }
106
-
107
- # Write test json to tmp directory so we can use it to create a new user policy
108
- with open ('/tmp/policy.json' , 'w' ) as f :
109
- f .write (json .dumps (testpolicy ))
110
-
111
- # Add alias myminio
112
- os .system (
113
- 'mc alias set myminio/ http://fakeservices.datajoint.io datajoint datajoint' )
114
-
115
- # Add the policy and apply it to the user
116
- os .system ('mc admin policy add myminio test /tmp/policy.json' )
117
- os .system ('mc admin policy set myminio test user=jeffjeff' )
118
-
119
63
# Insert some test data and remove it so that the external table is populated
120
64
test = [1 , [1 , 2 , 3 ]]
121
65
SimpleRemote .insert1 (test )
@@ -124,20 +68,20 @@ def test_remove_object_exception():
124
68
# Save the old external table minio client
125
69
old_client = schema .external ['share' ].s3 .client
126
70
127
- # Apply our new minio client to the external table that has permissions restrictions
128
- schema .external ['share' ].s3 .client = minio_client
71
+ # Apply our new minio client which has a user that does not exist
72
+ schema .external ['share' ].s3 .client = Minio (
73
+ 'minio:9000' ,
74
+ access_key = 'jeffjeff' ,
75
+ secret_key = 'jeffjeff' ,
76
+ secure = False )
129
77
130
78
# This method returns a list of errors
131
79
error_list = schema .external ['share' ].delete (delete_external_files = True ,
132
80
errors_as_string = False )
133
81
134
82
# Teardown
135
- os .system ('mc admin policy remove myminio test' )
136
- os .system ('mc admin user remove myminio jeffjeff' )
137
83
schema .external ['share' ].s3 .client = old_client
138
84
schema .external ['share' ].delete (delete_external_files = True )
139
- os .remove ("/tmp/policy.json" )
140
- os .system ('mc alias remove myminio/' )
141
85
142
86
# Raise the error we want if the error matches the expected uuid
143
87
if str (error_list [0 ][0 ]) == str (uuid_from_buffer (pack (test [1 ]))):
0 commit comments