Skip to content

Commit

Permalink
easier to run tests
Browse files Browse the repository at this point in the history
  • Loading branch information
fivethreeo committed Sep 5, 2011
1 parent 2a7f559 commit b493b0a
Show file tree
Hide file tree
Showing 7 changed files with 121 additions and 15 deletions.
1 change: 1 addition & 0 deletions requirements-12.txt
Original file line number Original file line Diff line number Diff line change
@@ -0,0 +1 @@
Django==1.2.5
1 change: 1 addition & 0 deletions requirements-13.txt
Original file line number Original file line Diff line number Diff line change
@@ -0,0 +1 @@
Django==1.3
1 change: 1 addition & 0 deletions requirements-trunk.txt
Original file line number Original file line Diff line number Diff line change
@@ -0,0 +1 @@
-e git+http://github.com/django/django.git#egg=Django
3 changes: 3 additions & 0 deletions requirements.txt
Original file line number Original file line Diff line number Diff line change
@@ -0,0 +1,3 @@
django-staticfiles
coverage
unittest-xml-reporting==1.2
99 changes: 99 additions & 0 deletions runtests.sh
Original file line number Original file line Diff line number Diff line change
@@ -0,0 +1,99 @@
#!/bin/bash

find . -name '*.pyc' -delete

args=("$@")
num_args=${#args[@]}
index=0

django=12
reuse_env=true
disable_coverage=true
update_requirements=false

python="python" # to ensure this script works if no python option is specified
while [ "$index" -lt "$num_args" ]
do
case "${args[$index]}" in
"-f"|"--failfast")
failfast="--failfast"
;;

"-r"|"--rebuild-env")
reuse_env=false
;;

"-u"|"--update-requirements")
update_requirements=true
;;

"-d"|"--django")
let "index = $index + 1"
django="${args[$index]}"
;;

"-p"|"--python")
let "index = $index + 1"
python="${args[$index]}"
;;

"-c"|"--with-coverage")
disable_coverage=false
;;

"-h"|"--help")
echo ""
echo "usage:"
echo " runtests.sh"
echo ""
echo "flags:"
echo " -r, --rebuild-env - delete virtualenv and rebuild virtualenv before the tests"
echo " -u, --update-requirements - update requirements before the tests"
echo " -d, --django <version> - run tests against a django version, options: 12, 13 or trunk"
echo " -c, --with-coverage - enables coverage"
echo " -p, --python /path/to/python - python version to use to run the tests"
echo " -h, --help - display this help"
exit 1
;;
esac
let "index = $index + 1"
done

python_executeable=`which $python`

echo "using python at: $python_executeable"

venv="venv-$python-$django"

if [ $reuse_env == false ]; then
rm -rf $venv
echo "deleted virtualenv: $venv"
fi

if [ ! -d $venv ]; then
echo "building virtualenv"
virtualenv $venv --distribute -p $python_executeable
update_requirements=true
else
echo "reusing current virualenv: $venv"
fi

if [ $update_requirements == true ]; then
echo "updating requirements"
$venv/bin/pip install -r requirements-$django.txt
$venv/bin/pip install -r requirements.txt
fi

if [ $disable_coverage == false ]; then
$venv/bin/coverage run --rcfile=coveragerc setup.py test
retcode=$?
echo "build coverage reports"

$venv/bin/coverage xml --rcfile=coveragerc
$venv/bin/coverage html --rcfile=coveragerc
$venv/bin/coverage report -m --rcfile=coveragerc
else
$venv/bin/python setup.py test
retcode=$?
fi
exit $retcode
11 changes: 6 additions & 5 deletions simple_translation/test/run_tests.py
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ def run_tests():
'django.contrib.sessions', 'django.contrib.sessions',
'django.contrib.admin', 'django.contrib.admin',
'django.contrib.sites', 'django.contrib.sites',
'django.contrib.staticfiles', 'staticfiles',
'simple_translation', 'simple_translation',
'simple_translation.test.testapp' 'simple_translation.test.testapp'
), ),
Expand All @@ -50,9 +50,10 @@ def run_tests():
("de", "German"), ("de", "German"),
), ),


SITE_ID = 1 SITE_ID = 1,

STATIC_URL='/some/url/',

TEST_RUNNER = 'xmlrunner.extra.djangotestrunner.XMLTestRunner',
TEST_OUTPUT_VERBOSE = True
) )


from django.test.utils import get_runner from django.test.utils import get_runner
Expand All @@ -61,4 +62,4 @@ def run_tests():
sys.exit(failures) sys.exit(failures)


if __name__ == '__main__': if __name__ == '__main__':
run_tests() run_tests()
20 changes: 10 additions & 10 deletions simple_translation/tests.py
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -3,14 +3,10 @@
from django.conf import settings from django.conf import settings
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.template import Template, Context from django.template import Template, Context
from django.test.client import RequestFactory
from simple_translation.test.testcases import SimpleTranslationBaseTestCase from simple_translation.test.testcases import SimpleTranslationBaseTestCase


class SimpleTranslationTestCase(SimpleTranslationBaseTestCase): class SimpleTranslationTestCase(SimpleTranslationBaseTestCase):


def setUp(self):
self.request_factory = RequestFactory()

def test_01_test_translated_urls(self): def test_01_test_translated_urls(self):


old_urlconf = settings.ROOT_URLCONF old_urlconf = settings.ROOT_URLCONF
Expand Down Expand Up @@ -154,18 +150,19 @@ def test_06_admin_edit_translated_entry(self):


# edit english(default) # edit english(default)
response = self.client.get(edit_url) response = self.client.get(edit_url)

self.assertEquals(response.status_code, 200) self.assertEquals(response.status_code, 200)
self.assertContains(response, 'class="simple-translation-current" name="en"' ) self.assertContains(response, 'simple-translation-current" name="en"' )


# edit english # edit english
response = self.client.get(edit_url, {'language': 'en'}) response = self.client.get(edit_url, {'language': 'en'})
self.assertEquals(response.status_code, 200) self.assertEquals(response.status_code, 200)
self.assertContains(response, 'class="simple-translation-current" name="en"' ) self.assertContains(response, 'simple-translation-current" name="en"' )


# edit german # edit german
response = self.client.get(edit_url, {'language': 'de'}) response = self.client.get(edit_url, {'language': 'de'})
self.assertEquals(response.status_code, 200) self.assertEquals(response.status_code, 200)
self.assertContains(response, 'class="simple-translation-current" name="de"' ) self.assertContains(response, 'simple-translation-current" name="de"' )




def test_07_test_changelist_description(self): def test_07_test_changelist_description(self):
Expand Down Expand Up @@ -193,8 +190,11 @@ def test_08_test_filters(self):


de_title = self.create_entry_title(entry, title='german', language='de', published_at=published_at) de_title = self.create_entry_title(entry, title='german', language='de', published_at=published_at)


request = self.request_factory.get('') class MockRequest(object):
request.LANGUAGE_CODE = 'en' LANGUAGE_CODE = 'en'
REQUEST = {}

request = MockRequest()


ctxt = Context({'entry': entry, 'request': request}) ctxt = Context({'entry': entry, 'request': request})


Expand Down

0 comments on commit b493b0a

Please sign in to comment.