From f70366e27aaac985c876d1d0260d7aab8b7ed8b5 Mon Sep 17 00:00:00 2001 From: Azul Date: Wed, 6 Mar 2013 11:43:49 +0100 Subject: simulate couch migration workflow on travis * first setup couch similar to what we'll have on the platform * then run migrations as admin * then drop admin privileges * then proceed with the normal test script --- .travis.yml | 14 ++++---------- config/couchdb.yml.admin | 3 --- config/couchdb.yml.user | 5 ----- test/config/couchdb.yml.admin | 6 ++++++ test/config/couchdb.yml.user | 5 +++++ test/setup_couch.sh | 15 +++++++++++++++ 6 files changed, 30 insertions(+), 18 deletions(-) delete mode 100644 config/couchdb.yml.admin delete mode 100644 config/couchdb.yml.user create mode 100644 test/config/couchdb.yml.admin create mode 100644 test/config/couchdb.yml.user create mode 100755 test/setup_couch.sh diff --git a/.travis.yml b/.travis.yml index 445be1a..232467c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,15 +2,9 @@ services: - couchdb notifications: email: false -before_script: - - "mv config/couchdb.yml.admin config/couchdb.yml" +before_script: + - "test/setup_couch.sh" + - "mv test/config/couchdb.yml.admin config/couchdb.yml" - "bundle exec rake couchrest:migrate_with_proxies" - "bundle exec rake couchrest:migrate_with_proxies" # looks like this needs to run twice - - 'HOST="http://localhost:5984"' - - "curl -HContent-Type:application/json -vXPUT $HOST/_users/org.couchdb.user:me --data-binary '{\"_id\": \"org.couchdb.user:me\",\"name\": \"me\",\"roles\": [],\"type\": \"user\",\"password\": \"pwd\"}'" - - "curl -X PUT $HOST/sessions" - - "curl -vX PUT $HOST/sessions/_security -Hcontent-type:application/json --data-binary '{\"admins\":{\"names\":[],\"roles\":[]},\"members\":{\"names\":[\"me\"],\"roles\":[]}}'" - - "curl -vX PUT $HOST/users/_security -Hcontent-type:application/json --data-binary '{\"admins\":{\"names\":[],\"roles\":[]},\"members\":{\"names\":[\"me\"],\"roles\":[]}}'" - - "curl -vX PUT $HOST/tickets/_security -Hcontent-type:application/json --data-binary '{\"admins\":{\"names\":[],\"roles\":[]},\"members\":{\"names\":[\"me\"],\"roles\":[]}}'" - - "curl -X PUT $HOST/_config/admins/anna -d '\"secret\"'" - - "mv config/couchdb.yml.user config/couchdb.yml" + - "mv test/config/couchdb.yml.user config/couchdb.yml" diff --git a/config/couchdb.yml.admin b/config/couchdb.yml.admin deleted file mode 100644 index d3cb72c..0000000 --- a/config/couchdb.yml.admin +++ /dev/null @@ -1,3 +0,0 @@ -test: - auto_update_design_doc: false - prefix: "" diff --git a/config/couchdb.yml.user b/config/couchdb.yml.user deleted file mode 100644 index 9c8b67b..0000000 --- a/config/couchdb.yml.user +++ /dev/null @@ -1,5 +0,0 @@ -test: - auto_update_design_doc: false - username: "me" - password: "pwd" - prefix: "" diff --git a/test/config/couchdb.yml.admin b/test/config/couchdb.yml.admin new file mode 100644 index 0000000..0988bc1 --- /dev/null +++ b/test/config/couchdb.yml.admin @@ -0,0 +1,6 @@ +test: + auto_update_design_doc: false + username: "anna" + password: "secret" + prefix: "" + diff --git a/test/config/couchdb.yml.user b/test/config/couchdb.yml.user new file mode 100644 index 0000000..9c8b67b --- /dev/null +++ b/test/config/couchdb.yml.user @@ -0,0 +1,5 @@ +test: + auto_update_design_doc: false + username: "me" + password: "pwd" + prefix: "" diff --git a/test/setup_couch.sh b/test/setup_couch.sh new file mode 100755 index 0000000..39e264f --- /dev/null +++ b/test/setup_couch.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +HOST="http://localhost:5984" +echo "creating user :" +curl -HContent-Type:application/json -XPUT $HOST/_users/org.couchdb.user:me --data-binary '{"_id": "org.couchdb.user:me","name": "me","roles": [],"type": "user","password": "pwd"}' +echo "creating databases :" +curl -X PUT $HOST/sessions +curl -X PUT $HOST/users +curl -X PUT $HOST/tickets +echo "restricting database access :" +curl -X PUT $HOST/sessions/_security -Hcontent-type:application/json --data-binary '{"admins":{"names":[],"roles":[]},"members":{"names":["me"],"roles":[]}}' +curl -X PUT $HOST/users/_security -Hcontent-type:application/json --data-binary '{"admins":{"names":[],"roles":[]},"members":{"names":["me"],"roles":[]}}' +curl -X PUT $HOST/tickets/_security -Hcontent-type:application/json --data-binary '{"admins":{"names":[],"roles":[]},"members":{"names":["me"],"roles":[]}}' +echo "adding admin :" +curl -X PUT $HOST/_config/admins/anna -d '"secret"' -- cgit v1.2.3