diff --git a/.coveragerc b/.coveragerc new file mode 100644 index 0000000000000000000000000000000000000000..3a33749e6757bbeab1059cf1bb9b35095f98f5b2 --- /dev/null +++ b/.coveragerc @@ -0,0 +1,4 @@ +# .coveragerc for xblock-lti-consumer +[run] +data_file = .coverage +source = lti_consumer diff --git a/.gitignore b/.gitignore index c376115570b5ac032f3101aa53422248259b5ccf..8ab4137cc4597cea6ecc55b08b47ab95f4eb6f37 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,4 @@ codekit-config.json ### Testing artifacts .coverage -var/ \ No newline at end of file +var/ diff --git a/scripts/test.sh b/scripts/test.sh index ea99b7d7ac2bcbeccb7d58c41ec8e1b234a6bd03..f5f08fefd4a25d2e125d98f28704c7163152d8e1 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -1,7 +1,6 @@ #!/usr/bin/env bash set -e -export DJANGO_SETTINGS_MODULE="workbench.settings" mkdir -p var rm -rf .coverage -nosetests --with-coverage --cover-package="lti_consumer" +python -m coverage run --rcfile=.coveragerc ./test.py $1 --noinput diff --git a/test.py b/test.py new file mode 100644 index 0000000000000000000000000000000000000000..56599543313b4f573f2009051131f653312f7e2d --- /dev/null +++ b/test.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +Run tests for the LTI Consumer XBlock +""" +import os +import sys + +if __name__ == '__main__': + os.environ.setdefault('DJANGO_SETTINGS_MODULE', u'workbench.settings') + + try: + from django.conf import settings # pylint: disable=wrong-import-position + from django.core.management import execute_from_command_line # pylint: disable=wrong-import-position + except ImportError: + # The above import may fail for some other reason. Ensure that the + # issue is really that Django is missing to avoid masking other + # exceptions on Python 2. + try: + import django # pylint: disable=unused-import, wrong-import-position + except ImportError: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) + raise + + settings.INSTALLED_APPS += (u'lti_consumer',) + + arguments = sys.argv[1:] + options = [argument for argument in arguments if argument.startswith('-')] + paths = [argument for argument in arguments if argument not in options] + execute_from_command_line([sys.argv[0], 'test'] + paths + options) diff --git a/test_requirements.txt b/test_requirements.txt index 5ae99aea0d41d47d4ec6db3fa30777f996a0893f..fc069cb5d1dba80043a34eb3ef139b3d955aa59c 100644 --- a/test_requirements.txt +++ b/test_requirements.txt @@ -1,5 +1,6 @@ -r requirements.txt +django-nose==1.4.4 astroid==1.3.8 # Pinning to avoid backwards incompatibility issue with pylint/pylint-django coveralls pep8