Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
H
heroku-buildpack-python
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Python-Dev
heroku-buildpack-python
Commits
b16261c1
Commit
b16261c1
authored
Mar 23, 2012
by
Kenneth Reitz
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
basic test runner
parent
3e1d6578
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
1284 additions
and
0 deletions
+1284
-0
Makefile
Makefile
+3
-0
test
bin/test
+29
-0
shunit2
vendor/shunit2
+1048
-0
test-utils
vendor/test-utils
+204
-0
No files found.
Makefile
View file @
b16261c1
tests
:
./bin/test
docs
:
mkdir
-p
site
shocco
-t
'Python Buildpack Compiler'
./bin/compile
>
site/index.html
...
...
bin/test
0 → 100755
View file @
b16261c1
#!/usr/bin/env bash
#
# Create a Heroku app with the following buildpack:
# https://github.com/ddollar/buildpack-tet
#
# Push this Python buildpack to that Heroku app to
# run the tests.
#
## utils ########################################
pushd
$(
dirname
0
)
>
/dev/null
BASE
=
$(
pwd
)
popd
>
/dev/null
source
${
BASE
}
/vendor/test-utils
detect
()
{
capture
${
BASE
}
/bin/detect
${
BASE
}
/test/
$1
}
compile
()
{
capture
${
BASE
}
/bin/compile
${
BASE
}
/test/
$1
}
source
${
BASE
}
/vendor/shunit2
vendor/shunit2
0 → 100755
View file @
b16261c1
This diff is collapsed.
Click to expand it.
vendor/test-utils
0 → 100644
View file @
b16261c1
#!/bin/sh
# taken from
# https://github.com/ryanbrainard/heroku-buildpack-testrunner/blob/master/lib/test_utils.sh
oneTimeSetUp
()
{
TEST_SUITE_CACHE
=
"
$(
mktemp
-d
${
SHUNIT_TMPDIR
}
/test_suite_cache.XXXX
)
"
}
oneTimeTearDown
()
{
rm
-rf
${
TEST_SUITE_CACHE
}
}
setUp
()
{
OUTPUT_DIR
=
"
$(
mktemp
-d
${
SHUNIT_TMPDIR
}
/output.XXXX
)
"
STD_OUT
=
"
${
OUTPUT_DIR
}
/stdout"
STD_ERR
=
"
${
OUTPUT_DIR
}
/stderr"
BUILD_DIR
=
"
${
OUTPUT_DIR
}
/build"
CACHE_DIR
=
"
${
OUTPUT_DIR
}
/cache"
mkdir
-p
${
OUTPUT_DIR
}
mkdir
-p
${
BUILD_DIR
}
mkdir
-p
${
CACHE_DIR
}
}
tearDown
()
{
rm
-rf
${
OUTPUT_DIR
}
}
capture
()
{
resetCapture
LAST_COMMAND
=
"
$@
"
$@
>
${
STD_OUT
}
2>
${
STD_ERR
}
RETURN
=
$?
rtrn
=
${
RETURN
}
# deprecated
}
resetCapture
()
{
if
[
-f
${
STD_OUT
}
]
;
then
rm
${
STD_OUT
}
fi
if
[
-f
${
STD_ERR
}
]
;
then
rm
${
STD_ERR
}
fi
unset
LAST_COMMAND
unset
RETURN
unset
rtrn
# deprecated
}
detect
()
{
capture
${
BUILDPACK_HOME
}
/bin/detect
${
BUILD_DIR
}
}
compile
()
{
capture
${
BUILDPACK_HOME
}
/bin/compile
${
BUILD_DIR
}
${
CACHE_DIR
}
}
release
()
{
capture
${
BUILDPACK_HOME
}
/bin/release
${
BUILD_DIR
}
}
assertCapturedEquals
()
{
assertEquals
"
$@
"
"
$(
cat
${
STD_OUT
})
"
}
assertCapturedNotEquals
()
{
assertNotEquals
"
$@
"
"
$(
cat
${
STD_OUT
})
"
}
assertCaptured
()
{
assertFileContains
"
$@
"
"
${
STD_OUT
}
"
}
assertNotCaptured
()
{
assertFileNotContains
"
$@
"
"
${
STD_OUT
}
"
}
assertCapturedSuccess
()
{
assertEquals
"Expected captured exit code to be 0; was <
${
RETURN
}
>"
"0"
"
${
RETURN
}
"
assertEquals
"Expected STD_ERR to be empty; was <
$(
cat
${
STD_ERR
})
>"
""
"
$(
cat
${
STD_ERR
})
"
}
# assertCapturedError [[expectedErrorCode] expectedErrorMsg]
assertCapturedError
()
{
if
[
$#
-gt
1
]
;
then
expectedErrorCode
=
${
1
}
shift
fi
expectedErrorMsg
=
${
1
:-
""
}
if
[
-z
${
expectedErrorCode
}
]
;
then
assertTrue
"Expected captured exit code to be greater than 0; was <
${
RETURN
}
>"
"[
${
RETURN
}
-gt 0 ]"
else
assertTrue
"Expected captured exit code to be <
${
expectedErrorCode
}
>; was <
${
RETURN
}
>"
"[
${
RETURN
}
-eq
${
expectedErrorCode
}
]"
fi
assertFileContains
"Expected STD_OUT to contain error <
${
expectedErrorMsg
}
>"
"
${
expectedErrorMsg
}
"
"
${
STD_OUT
}
"
assertEquals
"STD_ERR should always be empty"
""
"
$(
cat
${
STD_ERR
})
"
}
assertAppDetected
()
{
expectedAppType
=
${
1
?
"Must provide app type"
}
assertCapturedSuccess
assertEquals
"
${
expectedAppType
}
"
"
$(
cat
${
STD_OUT
})
"
}
assertNoAppDetected
()
{
assertEquals
"1"
"
${
RETURN
}
"
assertEquals
"no"
"
$(
cat
${
STD_OUT
})
"
assertEquals
""
"
$(
cat
${
STD_ERR
})
"
}
_assertContains
()
{
if
[
5
-eq
$#
]
;
then
msg
=
$1
shift
elif
[
!
4
-eq
$#
]
;
then
fail
"Expected 4 or 5 parameters; Receieved
$#
parameters"
fi
needle
=
$1
haystack
=
$2
expectation
=
$3
haystack_type
=
$4
case
"
${
haystack_type
}
"
in
"file"
)
grep
-q
-F
-e
"
${
needle
}
"
${
haystack
}
;;
"text"
)
echo
"
${
haystack
}
"
|
grep
-q
-F
-e
"
${
needle
}
"
;;
esac
if
[
"
${
expectation
}
"
!=
"
$?
"
]
;
then
case
"
${
expectation
}
"
in
0
)
default_msg
=
"Expected <
${
haystack
}
> to contain <
${
needle
}
>"
;;
1
)
default_msg
=
"Did not expect <
${
haystack
}
> to contain <
${
needle
}
>"
;;
esac
fail
"
${
msg
:-${
default_msg
}}
"
fi
}
assertContains
()
{
_assertContains
"
$@
"
0
"text"
}
assertNotContains
()
{
_assertContains
"
$@
"
1
"text"
}
assertFileContains
()
{
_assertContains
"
$@
"
0
"file"
}
assertFileNotContains
()
{
_assertContains
"
$@
"
1
"file"
}
command_exists
()
{
type
"
$1
"
>
/dev/null 2>&1
;
}
assertFileMD5
()
{
expectedHash
=
$1
filename
=
$2
if
command_exists
"md5sum"
;
then
md5_cmd
=
"md5sum
${
filename
}
"
expected_md5_cmd_output
=
"
${
expectedHash
}
${
filename
}
"
elif
command_exists
"md5"
;
then
md5_cmd
=
"md5
${
filename
}
"
expected_md5_cmd_output
=
"MD5 (
${
filename
}
) =
${
expectedHash
}
"
else
fail
"no suitable MD5 hashing command found on this system"
fi
assertEquals
"
${
expected_md5_cmd_output
}
"
"
`
${
md5_cmd
}
`
"
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment