Repository: datajoint/datajoint-python (language: python)

Issue:
Fix s3_test to work for users running the test suite not in a docker container
## Bug Report

### Description
When users run the test_s3.py as part of out test suite they will get an error when they do not have minio command line client installed, additionally the alias for the minio login is set within the docker-compose file which will lead to the test breaking when non docker users run the test.

### Expected Behavior
Users should be able to run the test suite as long as they have minio command line client installed.

### Current workaround
- users install minio command line client and add it to their path so they can use it in the terminal
- run this command to add the alias for minio before running tests `mc alias set myminio/ http://fakeservices.datajoint.io datajoint datajoint`

### Possible solution
- Remove minio client alias from docker-compose and do it in test_s3.py
- Update readme to include minio client install



Discussion / hints:

Fix patch:
diff --git a/LNX-docker-compose.yml b/LNX-docker-compose.yml
index 1ba5a3df9..947a1154f 100644
--- a/LNX-docker-compose.yml
+++ b/LNX-docker-compose.yml
@@ -79,7 +79,6 @@ services:
         set -e
         wget -P /home/dja/.local/bin/ https://dl.min.io/client/mc/release/linux-amd64/mc
         chmod +x /home/dja/.local/bin/mc
-        mc alias set myminio/ http://minio:9000 datajoint datajoint
         pip install --user -r test_requirements.txt
         pip install -e .
         pip freeze | grep datajoint
diff --git a/README.md b/README.md
index a177fbc46..f06d5a9ba 100644
--- a/README.md
+++ b/README.md
@@ -134,6 +134,8 @@ GID=1000
 * Launch local terminal
 * `export` environment variables in shell
 * Add entry in `/etc/hosts` for `127.0.0.1 fakeservices.datajoint.io`
+* Install [minio client(mc)](https://min.io/download#/linux) so that you can use it in terminal
+
 
 
 ### Launch Jupyter Notebook for Interactive Use
diff --git a/local-docker-compose.yml b/local-docker-compose.yml
index 4c43f83d4..e1bf180b2 100644
--- a/local-docker-compose.yml
+++ b/local-docker-compose.yml
@@ -84,7 +84,6 @@ services:
         set -e
         wget -P /home/dja/.local/bin/ https://dl.min.io/client/mc/release/linux-amd64/mc
         chmod +x /home/dja/.local/bin/mc
-        mc alias set myminio/ http://minio:9000 datajoint datajoint
         pip install --user nose nose-cov coveralls flake8 ptvsd
         pip install -e .
         pip freeze | grep datajoint


Test patch:
diff --git a/tests/test_s3.py b/tests/test_s3.py
index 0440229f1..396a410f0 100644
--- a/tests/test_s3.py
+++ b/tests/test_s3.py
@@ -108,6 +108,10 @@ def test_remove_object_exception():
         with open('/tmp/policy.json', 'w') as f:
             f.write(json.dumps(testpolicy))
 
+        # Add alias myminio
+        os.system(
+            'mc alias set myminio/ http://fakeservices.datajoint.io datajoint datajoint')
+
         # Add the policy and apply it to the user
         os.system('mc admin policy add myminio test /tmp/policy.json')
         os.system('mc admin policy set myminio test user=jeffjeff')
@@ -133,6 +137,7 @@ def test_remove_object_exception():
         schema.external['share'].s3.client = old_client
         schema.external['share'].delete(delete_external_files=True)
         os.remove("/tmp/policy.json")
+        os.system('mc alias remove myminio/')
 
         # Raise the error we want if the error matches the expected uuid
         if str(error_list[0][0]) == str(uuid_from_buffer(pack(test[1]))):