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
@@ -69,53 +67,6 @@ def test_remove_object_exception():
69
67
secret_key = 'jeffjeff' ,
70
68
secure = False )
71
69
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
70
# Insert some test data and remove it so that the external table is populated
120
71
test = [1 , [1 , 2 , 3 ]]
121
72
SimpleRemote .insert1 (test )
@@ -124,20 +75,16 @@ def test_remove_object_exception():
124
75
# Save the old external table minio client
125
76
old_client = schema .external ['share' ].s3 .client
126
77
127
- # Apply our new minio client to the external table that has permissions restrictions
78
+ # Apply our new minio client which has a user that does not exist
128
79
schema .external ['share' ].s3 .client = minio_client
129
80
130
81
# This method returns a list of errors
131
82
error_list = schema .external ['share' ].delete (delete_external_files = True ,
132
83
errors_as_string = False )
133
84
134
85
# Teardown
135
- os .system ('mc admin policy remove myminio test' )
136
- os .system ('mc admin user remove myminio jeffjeff' )
137
86
schema .external ['share' ].s3 .client = old_client
138
87
schema .external ['share' ].delete (delete_external_files = True )
139
- os .remove ("/tmp/policy.json" )
140
- os .system ('mc alias remove myminio/' )
141
88
142
89
# Raise the error we want if the error matches the expected uuid
143
90
if str (error_list [0 ][0 ]) == str (uuid_from_buffer (pack (test [1 ]))):
0 commit comments