1
0
mirror of https://github.com/Tarrasch/zsh-autoenv.git synced 2024-11-22 07:20:59 +02:00

Add tests

This commit is contained in:
Arash Rouhani 2013-09-08 18:32:16 +02:00
parent b849670591
commit 08fec15f31
5 changed files with 101 additions and 1 deletions

7
.travis.yml Normal file
View File

@ -0,0 +1,7 @@
language: python
python:
- "3.3"
before_script:
- "sudo apt-get install zsh"
install: "sudo pip install cram"
script: "make tests"

7
Makefile Normal file
View File

@ -0,0 +1,7 @@
.PHONY: itests tests
itests:
ZDOTDIR="${PWD}/tests" cram -i --shell=zsh tests
tests:
ZDOTDIR="${PWD}/tests" cram --shell=zsh tests

View File

@ -39,6 +39,11 @@ _dotenv_print_unauthorized_message() {
echo "Would you like to authorize it? (y/n)" echo "Would you like to authorize it? (y/n)"
} }
# This function can be mocked in tests
_dotenv_read_answer() {
read answer
}
_dotenv_source_env() { _dotenv_source_env() {
local env_file="$PWD/.env" local env_file="$PWD/.env"
@ -52,7 +57,7 @@ _dotenv_source_env() {
_dotenv_print_unauthorized_message $env_file _dotenv_print_unauthorized_message $env_file
read answer _dotenv_read_answer
if [[ $answer == 'y' ]] if [[ $answer == 'y' ]]
then then

4
tests/.zshenv Normal file
View File

@ -0,0 +1,4 @@
test -f "$TESTDIR/.zcompdump" && rm "$TESTDIR/.zcompdump"
source "$TESTDIR/../autoenv.plugin.zsh"
export ENV_AUTHORIZATION_FILE="$PWD/.env_auth"

77
tests/autoenv.t Normal file
View File

@ -0,0 +1,77 @@
Ensure we have our mocked out ENV_AUTHORIZATION_FILE
$ [[ $ENV_AUTHORIZATION_FILE[0,4] == '/tmp' ]] || return 1
Lets set a simple .env action
$ echo 'echo blah' >> .env
Manually create auth file
$ echo "$PWD/.env:$(echo echo blah | shasum)" > $ENV_AUTHORIZATION_FILE
$ cd .
blah
Now try to make it accept it
$ rm $ENV_AUTHORIZATION_FILE
$ _dotenv_read_answer() { answer='y' }
$ cd .
Attempting to load unauthorized env: /tmp/cramtests-??????/autoenv.t/.env (glob)
**********************************************
echo blah
**********************************************
Would you like to authorize it? (y/n)
blah
The last "blah" is because it executed the command
Now lets see that it actually checks the shasum value
$ cd .
blah
$ rm $ENV_AUTHORIZATION_FILE
$ echo "$PWD/.env:$(echo mischief | shasum)" > $ENV_AUTHORIZATION_FILE
$ cd .
Attempting to load unauthorized env: /tmp/cramtests-??????/autoenv.t/.env (glob)
**********************************************
echo blah
**********************************************
Would you like to authorize it? (y/n)
blah
Now, will it take no for an answer?
$ rm $ENV_AUTHORIZATION_FILE
$ _dotenv_read_answer() { answer='n' }
$ cd .
Attempting to load unauthorized env: /tmp/cramtests-??????/autoenv.t/.env (glob)
**********************************************
echo blah
**********************************************
Would you like to authorize it? (y/n)
Lets also try one more time to ensure it didnt add it
$ cd .
Attempting to load unauthorized env: /tmp/cramtests-??????/autoenv.t/.env (glob)
**********************************************
echo blah
**********************************************
Would you like to authorize it? (y/n)