.. _testing: Testing distributions --------------------- .. index:: single: Distributions; testing You can use ``distil`` to test distributions. This is primarily intended for trying out potential dependencies and exercises ``distlib``'s logic for distinguishing between dependencies needed for setup, testing and post-installation:: $ distil test jinja2 Checking requirements for Jinja2 (2.6) ... done. The following packages will be downloaded, built and tested: Jinja2 (2.6) Downloading Jinja2-2.6.tar.gz to /tmp/tmpkd4eUK 380KB @ 14 KB/s 100 % Done: 00:00:26 Unpacking ... done. Building Jinja2 (2.6) ... Running check ... Running build_ext ... Running build_py ... Build completed. Testing Jinja2 (2.6) ... Running test ... /tmp/tmpkd4eUK/Jinja2-2.6/build/lib.linux-x86_64-2.7/jinja2/loaders.py:214: UserWarning: Module jinja2 was already imported from /tmp/tmpkd4eUK/Jinja2-2.6/build/lib.linux-x86_64-2.7/jinja2/__init__.py, but /usr/lib/python2.7/dist-packages is being added to sys.path from pkg_resources import DefaultProvider, ResourceManager, \ test_do (jinja2.testsuite.ext.ExtensionsTestCase) ... ok test_extend_late (jinja2.testsuite.ext.ExtensionsTestCase) ... ok ... (many tests omitted for brevity) module (jinja2.environment.Template) Doctest: jinja2.environment.Template.module ... ok FileSystemBytecodeCache (jinja2.bccache) Doctest: jinja2.bccache.FileSystemBytecodeCache ... ok ---------------------------------------------------------------------- Ran 278 tests in 0.967s OK Dependencies of the distribution under test are automatically downloaded and built:: $ distil -e e2 test argproc Checking requirements for argproc (1.4) ... done. The following packages will be downloaded and built: nose (1.2.1) [for argproc] ply (3.4) [for argproc] The following packages will be downloaded, built and tested: argproc (1.4) Proceed? (y/n) y Downloading nose-1.2.1.tar.gz to /tmp/tmp_REn8s [for argproc] 390KB @ 11 KB/s 100 % Done: 00:00:35 Unpacking ... done. Downloading ply-3.4.tar.gz to /tmp/tmpzU9dnC [for argproc] 135KB @ 12 KB/s 100 % Done: 00:00:11 Unpacking ... done. Downloading argproc-1.4.tar.gz to /tmp/tmp5mgBIO 10KB @ 20 KB/s 100 % Done: 00:00:00 Unpacking ... done. Building nose (1.2.1) ... Running check ... Running build_ext ... Running build_py ... Build completed. Building ply (3.4) ... Running check ... Running build_ext ... Running build_py ... Build completed. Building argproc (1.4) ... Running check ... Running build_ext ... Running build_py ... Build completed. Testing argproc (1.4) ... Running test ... argproc.test.test_processor.TestProcessor.test_attribute_reference ... ok argproc.test.test_processor.TestProcessor.test_bidrectional ... ok argproc.test.test_processor.TestProcessor.test_comment ... ok argproc.test.test_processor.TestProcessor.test_dict ... ok argproc.test.test_processor.TestProcessor.test_false ... ok argproc.test.test_processor.TestProcessor.test_float ... ok argproc.test.test_processor.TestProcessor.test_function_call ... ok argproc.test.test_processor.TestProcessor.test_function_call_with_multiple_arguments ... ok argproc.test.test_processor.TestProcessor.test_function_with_validator ... ok argproc.test.test_processor.TestProcessor.test_global_name ... ok argproc.test.test_processor.TestProcessor.test_int ... ok argproc.test.test_processor.TestProcessor.test_list ... ok argproc.test.test_processor.TestProcessor.test_local_name ... ok argproc.test.test_processor.TestProcessor.test_mandatory ... ok argproc.test.test_processor.TestProcessor.test_multiple_rules ... ok argproc.test.test_processor.TestProcessor.test_multiple_tags ... ok argproc.test.test_processor.TestProcessor.test_negated_tag ... ok argproc.test.test_processor.TestProcessor.test_none ... ok argproc.test.test_processor.TestProcessor.test_optional ... ok argproc.test.test_processor.TestProcessor.test_reverse ... ok argproc.test.test_processor.TestProcessor.test_simple ... ok argproc.test.test_processor.TestProcessor.test_slicing ... ok argproc.test.test_processor.TestProcessor.test_str_double_quoted ... ok argproc.test.test_processor.TestProcessor.test_str_single_quoted ... ok argproc.test.test_processor.TestProcessor.test_subscription ... ok argproc.test.test_processor.TestProcessor.test_tags ... ok argproc.test.test_processor.TestProcessor.test_true ... ok argproc.test.test_processor.TestProcessor.test_tuple ... ok argproc.test.test_processor.TestProcessor.test_tuple_with_one_entry ... ok argproc.test.test_processor.TestProcessor.test_unidirectional ... ok argproc.test.test_processor.TestProcessor.test_validator_callable ... ok argproc.test.test_processor.TestProcessor.test_validator_function_call ... ok argproc.test.test_processor.TestProcessor.test_validator_list ... ok argproc.test.test_processor.TestProcessor.test_validator_literal ... ok argproc.test.test_processor.TestProcessor.test_validator_tuple ... ok ---------------------------------------------------------------------- Ran 35 tests in 0.180s OK Note that the dependencies are not installed - they are downloaded and built purely for the purposes of testing, and discarded afterwards.