bee_python 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/{build/README → README} +1 -1
- data/egg/egg/build.yml +11 -49
- data/egg/egg.yml +19 -27
- data/egg/http/build.erb +32 -36
- data/egg/http/libhttp.py +102 -0
- data/egg/http/pylint.cfg +236 -0
- data/egg/http/server.py +7 -0
- data/egg/http/test.erb +32 -0
- data/egg/http.yml +33 -29
- data/egg/mysql/mysql.py +8 -9
- data/egg/project/build.erb +21 -53
- data/egg/project/pylint.cfg +236 -0
- data/egg/project/test.py +2 -2
- data/egg/project.yml +23 -31
- data/egg/script/build.erb +18 -23
- data/egg/script/pylint.cfg +236 -0
- data/egg/script.yml +22 -18
- data/egg/source/source.py +6 -6
- data/egg/test/test.py +1 -1
- data/lib/bee_task_python.rb +3 -34
- data/python.yml +123 -0
- metadata +61 -503
- data/test/build.yml +0 -16
- data/test/tc_bee_task_python.rb +0 -27
- data/test/test_build.rb +0 -26
- data/test/test_build_listener.rb +0 -110
- data/test/ts_bee_python.rb +0 -26
- data/tools/common/__init__.py +0 -5
- data/tools/common/common/__init__.py +0 -140
- data/tools/common/common/__pkginfo__.py +0 -43
- data/tools/common/common/adbh.py +0 -35
- data/tools/common/common/cache.py +0 -114
- data/tools/common/common/changelog.py +0 -234
- data/tools/common/common/clcommands.py +0 -181
- data/tools/common/common/cli.py +0 -212
- data/tools/common/common/compat.py +0 -328
- data/tools/common/common/configuration.py +0 -1087
- data/tools/common/common/contexts.py +0 -58
- data/tools/common/common/corbautils.py +0 -117
- data/tools/common/common/daemon.py +0 -171
- data/tools/common/common/date.py +0 -279
- data/tools/common/common/db.py +0 -49
- data/tools/common/common/dbf.py +0 -229
- data/tools/common/common/debugger.py +0 -208
- data/tools/common/common/decorators.py +0 -190
- data/tools/common/common/deprecation.py +0 -118
- data/tools/common/common/fileutils.py +0 -409
- data/tools/common/common/graph.py +0 -259
- data/tools/common/common/html.py +0 -142
- data/tools/common/common/interface.py +0 -76
- data/tools/common/common/logging_ext.py +0 -166
- data/tools/common/common/modutils.py +0 -670
- data/tools/common/common/optik_ext.py +0 -383
- data/tools/common/common/optparser.py +0 -92
- data/tools/common/common/pdf_ext.py +0 -111
- data/tools/common/common/proc.py +0 -276
- data/tools/common/common/pyro_ext.py +0 -146
- data/tools/common/common/pytest.py +0 -754
- data/tools/common/common/shellutils.py +0 -383
- data/tools/common/common/sphinx_ext.py +0 -87
- data/tools/common/common/sphinxutils.py +0 -122
- data/tools/common/common/sqlgen.py +0 -31
- data/tools/common/common/table.py +0 -930
- data/tools/common/common/tasksqueue.py +0 -97
- data/tools/common/common/test/__init__.py +0 -1
- data/tools/common/common/test/data/ChangeLog +0 -184
- data/tools/common/common/test/data/MyPyPa-0.1.0-py2.5.egg +0 -0
- data/tools/common/common/test/data/__init__.py +0 -1
- data/tools/common/common/test/data/content_differ_dir/NOTHING +0 -0
- data/tools/common/common/test/data/content_differ_dir/README +0 -1
- data/tools/common/common/test/data/content_differ_dir/subdir/coin +0 -1
- data/tools/common/common/test/data/content_differ_dir/subdir/toto.txt +0 -53
- data/tools/common/common/test/data/file_differ_dir/NOTHING +0 -0
- data/tools/common/common/test/data/file_differ_dir/README +0 -1
- data/tools/common/common/test/data/file_differ_dir/subdir/toto.txt +0 -53
- data/tools/common/common/test/data/file_differ_dir/subdirtwo/Hello +0 -0
- data/tools/common/common/test/data/find_test/__init__.py +0 -0
- data/tools/common/common/test/data/find_test/foo.txt +0 -0
- data/tools/common/common/test/data/find_test/module.py +0 -0
- data/tools/common/common/test/data/find_test/module2.py +0 -0
- data/tools/common/common/test/data/find_test/newlines.txt +0 -0
- data/tools/common/common/test/data/find_test/noendingnewline.py +0 -0
- data/tools/common/common/test/data/find_test/nonregr.py +0 -0
- data/tools/common/common/test/data/find_test/normal_file.txt +0 -0
- data/tools/common/common/test/data/find_test/spam.txt +0 -0
- data/tools/common/common/test/data/find_test/sub/doc.txt +0 -0
- data/tools/common/common/test/data/find_test/sub/momo.py +0 -0
- data/tools/common/common/test/data/find_test/test.ini +0 -0
- data/tools/common/common/test/data/find_test/test1.msg +0 -0
- data/tools/common/common/test/data/find_test/test2.msg +0 -0
- data/tools/common/common/test/data/find_test/write_protected_file.txt +0 -0
- data/tools/common/common/test/data/foo.txt +0 -9
- data/tools/common/common/test/data/module.py +0 -88
- data/tools/common/common/test/data/module2.py +0 -77
- data/tools/common/common/test/data/newlines.txt +0 -3
- data/tools/common/common/test/data/noendingnewline.py +0 -36
- data/tools/common/common/test/data/nonregr.py +0 -14
- data/tools/common/common/test/data/normal_file.txt +0 -0
- data/tools/common/common/test/data/reference_dir/NOTHING +0 -0
- data/tools/common/common/test/data/reference_dir/README +0 -1
- data/tools/common/common/test/data/reference_dir/subdir/coin +0 -1
- data/tools/common/common/test/data/reference_dir/subdir/toto.txt +0 -53
- data/tools/common/common/test/data/same_dir/NOTHING +0 -0
- data/tools/common/common/test/data/same_dir/README +0 -1
- data/tools/common/common/test/data/same_dir/subdir/coin +0 -1
- data/tools/common/common/test/data/same_dir/subdir/toto.txt +0 -53
- data/tools/common/common/test/data/spam.txt +0 -9
- data/tools/common/common/test/data/sub/doc.txt +0 -1
- data/tools/common/common/test/data/sub/momo.py +0 -1
- data/tools/common/common/test/data/subdir_differ_dir/NOTHING +0 -0
- data/tools/common/common/test/data/subdir_differ_dir/README +0 -1
- data/tools/common/common/test/data/subdir_differ_dir/subdir/coin +0 -1
- data/tools/common/common/test/data/subdir_differ_dir/subdir/toto.txt +0 -53
- data/tools/common/common/test/data/test.ini +0 -20
- data/tools/common/common/test/data/test1.msg +0 -30
- data/tools/common/common/test/data/test2.msg +0 -42
- data/tools/common/common/test/data/write_protected_file.txt +0 -0
- data/tools/common/common/test/foomod.py +0 -17
- data/tools/common/common/test/unittest_cache.py +0 -129
- data/tools/common/common/test/unittest_changelog.py +0 -37
- data/tools/common/common/test/unittest_compat.py +0 -239
- data/tools/common/common/test/unittest_configuration.py +0 -348
- data/tools/common/common/test/unittest_date.py +0 -154
- data/tools/common/common/test/unittest_decorators.py +0 -62
- data/tools/common/common/test/unittest_deprecation.py +0 -76
- data/tools/common/common/test/unittest_fileutils.py +0 -133
- data/tools/common/common/test/unittest_graph.py +0 -50
- data/tools/common/common/test/unittest_html.py +0 -76
- data/tools/common/common/test/unittest_interface.py +0 -87
- data/tools/common/common/test/unittest_modutils.py +0 -244
- data/tools/common/common/test/unittest_pytest.py +0 -50
- data/tools/common/common/test/unittest_shellutils.py +0 -248
- data/tools/common/common/test/unittest_table.py +0 -448
- data/tools/common/common/test/unittest_taskqueue.py +0 -71
- data/tools/common/common/test/unittest_testlib.py +0 -956
- data/tools/common/common/test/unittest_textutils.py +0 -247
- data/tools/common/common/test/unittest_tree.py +0 -248
- data/tools/common/common/test/unittest_umessage.py +0 -55
- data/tools/common/common/test/unittest_ureports_html.py +0 -64
- data/tools/common/common/test/unittest_ureports_text.py +0 -105
- data/tools/common/common/test/unittest_xmlutils.py +0 -75
- data/tools/common/common/test/utils.py +0 -87
- data/tools/common/common/testlib.py +0 -1927
- data/tools/common/common/textutils.py +0 -476
- data/tools/common/common/tree.py +0 -372
- data/tools/common/common/umessage.py +0 -161
- data/tools/common/common/ureports/__init__.py +0 -174
- data/tools/common/common/ureports/docbook_writer.py +0 -139
- data/tools/common/common/ureports/html_writer.py +0 -131
- data/tools/common/common/ureports/nodes.py +0 -201
- data/tools/common/common/ureports/text_writer.py +0 -140
- data/tools/common/common/vcgutils.py +0 -216
- data/tools/common/common/visitor.py +0 -107
- data/tools/common/common/xmlrpcutils.py +0 -136
- data/tools/common/common/xmlutils.py +0 -61
- data/tools/coverage/coverage.py +0 -602
- data/tools/epydoc/__init__.py +0 -227
- data/tools/epydoc/__init__.pyc +0 -0
- data/tools/epydoc/apidoc.py +0 -2203
- data/tools/epydoc/apidoc.pyc +0 -0
- data/tools/epydoc/checker.py +0 -349
- data/tools/epydoc/checker.pyc +0 -0
- data/tools/epydoc/cli.py +0 -1470
- data/tools/epydoc/cli.pyc +0 -0
- data/tools/epydoc/compat.py +0 -250
- data/tools/epydoc/compat.pyc +0 -0
- data/tools/epydoc/docbuilder.py +0 -1358
- data/tools/epydoc/docbuilder.pyc +0 -0
- data/tools/epydoc/docintrospecter.py +0 -1056
- data/tools/epydoc/docintrospecter.pyc +0 -0
- data/tools/epydoc/docparser.py +0 -2113
- data/tools/epydoc/docparser.pyc +0 -0
- data/tools/epydoc/docstringparser.py +0 -1111
- data/tools/epydoc/docstringparser.pyc +0 -0
- data/tools/epydoc/docwriter/__init__.py +0 -12
- data/tools/epydoc/docwriter/__init__.pyc +0 -0
- data/tools/epydoc/docwriter/dotgraph.py +0 -1351
- data/tools/epydoc/docwriter/dotgraph.pyc +0 -0
- data/tools/epydoc/docwriter/html.py +0 -3491
- data/tools/epydoc/docwriter/html.pyc +0 -0
- data/tools/epydoc/docwriter/html_colorize.py +0 -909
- data/tools/epydoc/docwriter/html_colorize.pyc +0 -0
- data/tools/epydoc/docwriter/html_css.py +0 -550
- data/tools/epydoc/docwriter/html_css.pyc +0 -0
- data/tools/epydoc/docwriter/html_help.py +0 -190
- data/tools/epydoc/docwriter/html_help.pyc +0 -0
- data/tools/epydoc/docwriter/latex.py +0 -1187
- data/tools/epydoc/docwriter/latex.pyc +0 -0
- data/tools/epydoc/docwriter/plaintext.py +0 -276
- data/tools/epydoc/docwriter/plaintext.pyc +0 -0
- data/tools/epydoc/docwriter/xlink.py +0 -505
- data/tools/epydoc/docwriter/xlink.pyc +0 -0
- data/tools/epydoc/gui.py +0 -1148
- data/tools/epydoc/gui.pyc +0 -0
- data/tools/epydoc/log.py +0 -204
- data/tools/epydoc/log.pyc +0 -0
- data/tools/epydoc/markup/__init__.py +0 -623
- data/tools/epydoc/markup/__init__.pyc +0 -0
- data/tools/epydoc/markup/doctest.py +0 -311
- data/tools/epydoc/markup/doctest.pyc +0 -0
- data/tools/epydoc/markup/epytext.py +0 -2116
- data/tools/epydoc/markup/epytext.pyc +0 -0
- data/tools/epydoc/markup/javadoc.py +0 -250
- data/tools/epydoc/markup/javadoc.pyc +0 -0
- data/tools/epydoc/markup/plaintext.py +0 -78
- data/tools/epydoc/markup/plaintext.pyc +0 -0
- data/tools/epydoc/markup/pyval_repr.py +0 -532
- data/tools/epydoc/markup/pyval_repr.pyc +0 -0
- data/tools/epydoc/markup/restructuredtext.py +0 -906
- data/tools/epydoc/markup/restructuredtext.pyc +0 -0
- data/tools/epydoc/test/__init__.py +0 -97
- data/tools/epydoc/test/__init__.pyc +0 -0
- data/tools/epydoc/test/util.py +0 -226
- data/tools/epydoc/test/util.pyc +0 -0
- data/tools/epydoc/util.py +0 -289
- data/tools/epydoc/util.pyc +0 -0
- data/tools/logilab/logilab/__init__.py +0 -5
- data/tools/logilab/logilab/astng/__init__.py +0 -82
- data/tools/logilab/logilab/astng/__pkginfo__.py +0 -76
- data/tools/logilab/logilab/astng/_exceptions.py +0 -64
- data/tools/logilab/logilab/astng/_nodes_ast.py +0 -667
- data/tools/logilab/logilab/astng/_nodes_compiler.py +0 -758
- data/tools/logilab/logilab/astng/bases.py +0 -608
- data/tools/logilab/logilab/astng/builder.py +0 -239
- data/tools/logilab/logilab/astng/inference.py +0 -426
- data/tools/logilab/logilab/astng/inspector.py +0 -289
- data/tools/logilab/logilab/astng/manager.py +0 -421
- data/tools/logilab/logilab/astng/mixins.py +0 -165
- data/tools/logilab/logilab/astng/node_classes.py +0 -848
- data/tools/logilab/logilab/astng/nodes.py +0 -85
- data/tools/logilab/logilab/astng/nodes_as_string.py +0 -389
- data/tools/logilab/logilab/astng/patchcomptransformer.py +0 -159
- data/tools/logilab/logilab/astng/protocols.py +0 -333
- data/tools/logilab/logilab/astng/raw_building.py +0 -212
- data/tools/logilab/logilab/astng/rebuilder.py +0 -307
- data/tools/logilab/logilab/astng/scoped_nodes.py +0 -951
- data/tools/logilab/logilab/astng/test/__init__.py +0 -19
- data/tools/logilab/logilab/astng/test/data/MyPyPa-0.1.0-py2.5.egg +0 -0
- data/tools/logilab/logilab/astng/test/data/MyPyPa-0.1.0-py2.5.zip +0 -0
- data/tools/logilab/logilab/astng/test/data/SSL1/Connection1.py +0 -33
- data/tools/logilab/logilab/astng/test/data/SSL1/__init__.py +0 -20
- data/tools/logilab/logilab/astng/test/data/__init__.py +0 -20
- data/tools/logilab/logilab/astng/test/data/all.py +0 -29
- data/tools/logilab/logilab/astng/test/data/appl/__init__.py +0 -23
- data/tools/logilab/logilab/astng/test/data/appl/myConnection.py +0 -30
- data/tools/logilab/logilab/astng/test/data/format.py +0 -34
- data/tools/logilab/logilab/astng/test/data/module.py +0 -90
- data/tools/logilab/logilab/astng/test/data/module2.py +0 -112
- data/tools/logilab/logilab/astng/test/data/noendingnewline.py +0 -57
- data/tools/logilab/logilab/astng/test/data/nonregr.py +0 -76
- data/tools/logilab/logilab/astng/test/data/notall.py +0 -28
- data/tools/logilab/logilab/astng/test/data2/__init__.py +0 -20
- data/tools/logilab/logilab/astng/test/data2/clientmodule_test.py +0 -51
- data/tools/logilab/logilab/astng/test/data2/suppliermodule_test.py +0 -32
- data/tools/logilab/logilab/astng/test/regrtest.py +0 -135
- data/tools/logilab/logilab/astng/test/regrtest_data/absimport.py +0 -22
- data/tools/logilab/logilab/astng/test/regrtest_data/descriptor_crash.py +0 -31
- data/tools/logilab/logilab/astng/test/regrtest_data/import_package_subpackage_module.py +0 -68
- data/tools/logilab/logilab/astng/test/regrtest_data/package/__init__.py +0 -24
- data/tools/logilab/logilab/astng/test/regrtest_data/package/subpackage/__init__.py +0 -20
- data/tools/logilab/logilab/astng/test/regrtest_data/package/subpackage/module.py +0 -20
- data/tools/logilab/logilab/astng/test/unittest_builder.py +0 -684
- data/tools/logilab/logilab/astng/test/unittest_inference.py +0 -1112
- data/tools/logilab/logilab/astng/test/unittest_inspector.py +0 -105
- data/tools/logilab/logilab/astng/test/unittest_lookup.py +0 -302
- data/tools/logilab/logilab/astng/test/unittest_manager.py +0 -98
- data/tools/logilab/logilab/astng/test/unittest_nodes.py +0 -302
- data/tools/logilab/logilab/astng/test/unittest_scoped_nodes.py +0 -501
- data/tools/logilab/logilab/astng/test/unittest_utils.py +0 -104
- data/tools/logilab/logilab/astng/utils.py +0 -342
- data/tools/logilab/logilab/common/__init__.py +0 -140
- data/tools/logilab/logilab/common/__pkginfo__.py +0 -43
- data/tools/logilab/logilab/common/adbh.py +0 -35
- data/tools/logilab/logilab/common/cache.py +0 -114
- data/tools/logilab/logilab/common/changelog.py +0 -234
- data/tools/logilab/logilab/common/clcommands.py +0 -181
- data/tools/logilab/logilab/common/cli.py +0 -212
- data/tools/logilab/logilab/common/compat.py +0 -328
- data/tools/logilab/logilab/common/configuration.py +0 -1087
- data/tools/logilab/logilab/common/contexts.py +0 -58
- data/tools/logilab/logilab/common/corbautils.py +0 -117
- data/tools/logilab/logilab/common/daemon.py +0 -171
- data/tools/logilab/logilab/common/date.py +0 -279
- data/tools/logilab/logilab/common/db.py +0 -49
- data/tools/logilab/logilab/common/dbf.py +0 -229
- data/tools/logilab/logilab/common/debugger.py +0 -208
- data/tools/logilab/logilab/common/decorators.py +0 -190
- data/tools/logilab/logilab/common/deprecation.py +0 -118
- data/tools/logilab/logilab/common/fileutils.py +0 -409
- data/tools/logilab/logilab/common/graph.py +0 -259
- data/tools/logilab/logilab/common/html.py +0 -142
- data/tools/logilab/logilab/common/interface.py +0 -76
- data/tools/logilab/logilab/common/logging_ext.py +0 -166
- data/tools/logilab/logilab/common/modutils.py +0 -670
- data/tools/logilab/logilab/common/optik_ext.py +0 -383
- data/tools/logilab/logilab/common/optparser.py +0 -92
- data/tools/logilab/logilab/common/pdf_ext.py +0 -111
- data/tools/logilab/logilab/common/proc.py +0 -276
- data/tools/logilab/logilab/common/pyro_ext.py +0 -146
- data/tools/logilab/logilab/common/pytest.py +0 -754
- data/tools/logilab/logilab/common/shellutils.py +0 -383
- data/tools/logilab/logilab/common/sphinx_ext.py +0 -87
- data/tools/logilab/logilab/common/sphinxutils.py +0 -122
- data/tools/logilab/logilab/common/sqlgen.py +0 -31
- data/tools/logilab/logilab/common/table.py +0 -930
- data/tools/logilab/logilab/common/tasksqueue.py +0 -97
- data/tools/logilab/logilab/common/test/__init__.py +0 -1
- data/tools/logilab/logilab/common/test/data/ChangeLog +0 -184
- data/tools/logilab/logilab/common/test/data/MyPyPa-0.1.0-py2.5.egg +0 -0
- data/tools/logilab/logilab/common/test/data/__init__.py +0 -1
- data/tools/logilab/logilab/common/test/data/content_differ_dir/NOTHING +0 -0
- data/tools/logilab/logilab/common/test/data/content_differ_dir/README +0 -1
- data/tools/logilab/logilab/common/test/data/content_differ_dir/subdir/coin +0 -1
- data/tools/logilab/logilab/common/test/data/content_differ_dir/subdir/toto.txt +0 -53
- data/tools/logilab/logilab/common/test/data/file_differ_dir/NOTHING +0 -0
- data/tools/logilab/logilab/common/test/data/file_differ_dir/README +0 -1
- data/tools/logilab/logilab/common/test/data/file_differ_dir/subdir/toto.txt +0 -53
- data/tools/logilab/logilab/common/test/data/file_differ_dir/subdirtwo/Hello +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/__init__.py +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/foo.txt +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/module.py +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/module2.py +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/newlines.txt +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/noendingnewline.py +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/nonregr.py +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/normal_file.txt +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/spam.txt +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/sub/doc.txt +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/sub/momo.py +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/test.ini +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/test1.msg +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/test2.msg +0 -0
- data/tools/logilab/logilab/common/test/data/find_test/write_protected_file.txt +0 -0
- data/tools/logilab/logilab/common/test/data/foo.txt +0 -9
- data/tools/logilab/logilab/common/test/data/module.py +0 -88
- data/tools/logilab/logilab/common/test/data/module2.py +0 -77
- data/tools/logilab/logilab/common/test/data/newlines.txt +0 -3
- data/tools/logilab/logilab/common/test/data/noendingnewline.py +0 -36
- data/tools/logilab/logilab/common/test/data/nonregr.py +0 -14
- data/tools/logilab/logilab/common/test/data/normal_file.txt +0 -0
- data/tools/logilab/logilab/common/test/data/reference_dir/NOTHING +0 -0
- data/tools/logilab/logilab/common/test/data/reference_dir/README +0 -1
- data/tools/logilab/logilab/common/test/data/reference_dir/subdir/coin +0 -1
- data/tools/logilab/logilab/common/test/data/reference_dir/subdir/toto.txt +0 -53
- data/tools/logilab/logilab/common/test/data/same_dir/NOTHING +0 -0
- data/tools/logilab/logilab/common/test/data/same_dir/README +0 -1
- data/tools/logilab/logilab/common/test/data/same_dir/subdir/coin +0 -1
- data/tools/logilab/logilab/common/test/data/same_dir/subdir/toto.txt +0 -53
- data/tools/logilab/logilab/common/test/data/spam.txt +0 -9
- data/tools/logilab/logilab/common/test/data/sub/doc.txt +0 -1
- data/tools/logilab/logilab/common/test/data/sub/momo.py +0 -1
- data/tools/logilab/logilab/common/test/data/subdir_differ_dir/NOTHING +0 -0
- data/tools/logilab/logilab/common/test/data/subdir_differ_dir/README +0 -1
- data/tools/logilab/logilab/common/test/data/subdir_differ_dir/subdir/coin +0 -1
- data/tools/logilab/logilab/common/test/data/subdir_differ_dir/subdir/toto.txt +0 -53
- data/tools/logilab/logilab/common/test/data/test.ini +0 -20
- data/tools/logilab/logilab/common/test/data/test1.msg +0 -30
- data/tools/logilab/logilab/common/test/data/test2.msg +0 -42
- data/tools/logilab/logilab/common/test/data/write_protected_file.txt +0 -0
- data/tools/logilab/logilab/common/test/foomod.py +0 -17
- data/tools/logilab/logilab/common/test/unittest_cache.py +0 -129
- data/tools/logilab/logilab/common/test/unittest_changelog.py +0 -37
- data/tools/logilab/logilab/common/test/unittest_compat.py +0 -239
- data/tools/logilab/logilab/common/test/unittest_configuration.py +0 -348
- data/tools/logilab/logilab/common/test/unittest_date.py +0 -154
- data/tools/logilab/logilab/common/test/unittest_decorators.py +0 -62
- data/tools/logilab/logilab/common/test/unittest_deprecation.py +0 -76
- data/tools/logilab/logilab/common/test/unittest_fileutils.py +0 -133
- data/tools/logilab/logilab/common/test/unittest_graph.py +0 -50
- data/tools/logilab/logilab/common/test/unittest_html.py +0 -76
- data/tools/logilab/logilab/common/test/unittest_interface.py +0 -87
- data/tools/logilab/logilab/common/test/unittest_modutils.py +0 -244
- data/tools/logilab/logilab/common/test/unittest_pytest.py +0 -50
- data/tools/logilab/logilab/common/test/unittest_shellutils.py +0 -248
- data/tools/logilab/logilab/common/test/unittest_table.py +0 -448
- data/tools/logilab/logilab/common/test/unittest_taskqueue.py +0 -71
- data/tools/logilab/logilab/common/test/unittest_testlib.py +0 -956
- data/tools/logilab/logilab/common/test/unittest_textutils.py +0 -247
- data/tools/logilab/logilab/common/test/unittest_tree.py +0 -248
- data/tools/logilab/logilab/common/test/unittest_umessage.py +0 -55
- data/tools/logilab/logilab/common/test/unittest_ureports_html.py +0 -64
- data/tools/logilab/logilab/common/test/unittest_ureports_text.py +0 -105
- data/tools/logilab/logilab/common/test/unittest_xmlutils.py +0 -75
- data/tools/logilab/logilab/common/test/utils.py +0 -87
- data/tools/logilab/logilab/common/testlib.py +0 -1927
- data/tools/logilab/logilab/common/textutils.py +0 -476
- data/tools/logilab/logilab/common/tree.py +0 -372
- data/tools/logilab/logilab/common/umessage.py +0 -161
- data/tools/logilab/logilab/common/ureports/__init__.py +0 -174
- data/tools/logilab/logilab/common/ureports/docbook_writer.py +0 -139
- data/tools/logilab/logilab/common/ureports/html_writer.py +0 -131
- data/tools/logilab/logilab/common/ureports/nodes.py +0 -201
- data/tools/logilab/logilab/common/ureports/text_writer.py +0 -140
- data/tools/logilab/logilab/common/vcgutils.py +0 -216
- data/tools/logilab/logilab/common/visitor.py +0 -107
- data/tools/logilab/logilab/common/xmlrpcutils.py +0 -136
- data/tools/logilab/logilab/common/xmlutils.py +0 -61
- data/tools/pychecker/COPYRIGHT +0 -31
- data/tools/pychecker/ChangeLog +0 -349
- data/tools/pychecker/CodeChecks.py +0 -1969
- data/tools/pychecker/CodeChecks.pyc +0 -0
- data/tools/pychecker/CodeChecks.pyo +0 -0
- data/tools/pychecker/Config.py +0 -475
- data/tools/pychecker/Config.pyc +0 -0
- data/tools/pychecker/Config.pyo +0 -0
- data/tools/pychecker/KNOWN_BUGS +0 -100
- data/tools/pychecker/MAINTAINERS +0 -81
- data/tools/pychecker/NEWS +0 -406
- data/tools/pychecker/OP.py +0 -131
- data/tools/pychecker/OP.pyc +0 -0
- data/tools/pychecker/OP.pyo +0 -0
- data/tools/pychecker/OptionTypes.py +0 -117
- data/tools/pychecker/OptionTypes.pyc +0 -0
- data/tools/pychecker/OptionTypes.pyo +0 -0
- data/tools/pychecker/README +0 -152
- data/tools/pychecker/Stack.py +0 -115
- data/tools/pychecker/Stack.pyc +0 -0
- data/tools/pychecker/Stack.pyo +0 -0
- data/tools/pychecker/TODO +0 -101
- data/tools/pychecker/VERSION +0 -1
- data/tools/pychecker/Warning.py +0 -50
- data/tools/pychecker/Warning.pyc +0 -0
- data/tools/pychecker/Warning.pyo +0 -0
- data/tools/pychecker/__init__.py +0 -17
- data/tools/pychecker/__init__.pyc +0 -0
- data/tools/pychecker/__init__.pyo +0 -0
- data/tools/pychecker/checker.py +0 -961
- data/tools/pychecker/checker.pyc +0 -0
- data/tools/pychecker/checker.pyo +0 -0
- data/tools/pychecker/function.py +0 -159
- data/tools/pychecker/function.pyc +0 -0
- data/tools/pychecker/function.pyo +0 -0
- data/tools/pychecker/msgs.py +0 -175
- data/tools/pychecker/msgs.pyc +0 -0
- data/tools/pychecker/msgs.pyo +0 -0
- data/tools/pychecker/options.py +0 -275
- data/tools/pychecker/options.pyc +0 -0
- data/tools/pychecker/options.pyo +0 -0
- data/tools/pychecker/pcmodules.py +0 -19
- data/tools/pychecker/pcmodules.pyc +0 -0
- data/tools/pychecker/pcmodules.pyo +0 -0
- data/tools/pychecker/printer.py +0 -47
- data/tools/pychecker/printer.pyc +0 -0
- data/tools/pychecker/printer.pyo +0 -0
- data/tools/pychecker/python.py +0 -427
- data/tools/pychecker/python.pyc +0 -0
- data/tools/pychecker/python.pyo +0 -0
- data/tools/pychecker/utils.py +0 -102
- data/tools/pychecker/utils.pyc +0 -0
- data/tools/pychecker/utils.pyo +0 -0
- data/tools/pychecker/warn.py +0 -778
- data/tools/pychecker/warn.pyc +0 -0
- data/tools/pychecker/warn.pyo +0 -0
- data/tools/pylint2/pylint/__init__.py +0 -16
- data/tools/pylint2/pylint/__pkginfo__.py +0 -67
- data/tools/pylint2/pylint/checkers/__init__.py +0 -155
- data/tools/pylint2/pylint/checkers/base.py +0 -749
- data/tools/pylint2/pylint/checkers/classes.py +0 -527
- data/tools/pylint2/pylint/checkers/design_analysis.py +0 -344
- data/tools/pylint2/pylint/checkers/exceptions.py +0 -183
- data/tools/pylint2/pylint/checkers/format.py +0 -367
- data/tools/pylint2/pylint/checkers/imports.py +0 -379
- data/tools/pylint2/pylint/checkers/logging.py +0 -98
- data/tools/pylint2/pylint/checkers/misc.py +0 -128
- data/tools/pylint2/pylint/checkers/newstyle.py +0 -107
- data/tools/pylint2/pylint/checkers/raw_metrics.py +0 -125
- data/tools/pylint2/pylint/checkers/similar.py +0 -333
- data/tools/pylint2/pylint/checkers/string_format.py +0 -239
- data/tools/pylint2/pylint/checkers/typecheck.py +0 -364
- data/tools/pylint2/pylint/checkers/utils.py +0 -208
- data/tools/pylint2/pylint/checkers/variables.py +0 -498
- data/tools/pylint2/pylint/config.py +0 -149
- data/tools/pylint2/pylint/epylint.py +0 -149
- data/tools/pylint2/pylint/gui.py +0 -433
- data/tools/pylint2/pylint/interfaces.py +0 -98
- data/tools/pylint2/pylint/lint.py +0 -914
- data/tools/pylint2/pylint/pyreverse/__init__.py +0 -5
- data/tools/pylint2/pylint/pyreverse/diadefslib.py +0 -229
- data/tools/pylint2/pylint/pyreverse/diagrams.py +0 -247
- data/tools/pylint2/pylint/pyreverse/main.py +0 -123
- data/tools/pylint2/pylint/pyreverse/utils.py +0 -131
- data/tools/pylint2/pylint/pyreverse/writer.py +0 -196
- data/tools/pylint2/pylint/reporters/__init__.py +0 -67
- data/tools/pylint2/pylint/reporters/guireporter.py +0 -36
- data/tools/pylint2/pylint/reporters/html.py +0 -69
- data/tools/pylint2/pylint/reporters/text.py +0 -156
- data/tools/pylint2/pylint/utils.py +0 -518
- data/tools/pylint2/pylint.py +0 -16
@@ -1,244 +0,0 @@
|
|
1
|
-
# copyright 2003-2010 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
|
2
|
-
# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
|
3
|
-
#
|
4
|
-
# This file is part of logilab-common.
|
5
|
-
#
|
6
|
-
# logilab-common is free software: you can redistribute it and/or modify it under
|
7
|
-
# the terms of the GNU Lesser General Public License as published by the Free
|
8
|
-
# Software Foundation, either version 2.1 of the License, or (at your option) any
|
9
|
-
# later version.
|
10
|
-
#
|
11
|
-
# logilab-common is distributed in the hope that it will be useful, but WITHOUT
|
12
|
-
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
13
|
-
# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
|
14
|
-
# details.
|
15
|
-
#
|
16
|
-
# You should have received a copy of the GNU Lesser General Public License along
|
17
|
-
# with logilab-common. If not, see <http://www.gnu.org/licenses/>.
|
18
|
-
"""
|
19
|
-
unit tests for module modutils (module manipulation utilities)
|
20
|
-
"""
|
21
|
-
|
22
|
-
import sys
|
23
|
-
try:
|
24
|
-
__file__
|
25
|
-
except NameError:
|
26
|
-
__file__ = sys.argv[0]
|
27
|
-
|
28
|
-
from logilab.common.testlib import TestCase as TLTestCase, unittest_main
|
29
|
-
from logilab.common import modutils
|
30
|
-
from logilab.common.compat import set
|
31
|
-
|
32
|
-
from os import path, getcwd
|
33
|
-
from logilab import common
|
34
|
-
from logilab.common import tree
|
35
|
-
|
36
|
-
sys.path.insert(0, path.dirname(__file__))
|
37
|
-
DATADIR = path.join(path.dirname(__file__), 'data')
|
38
|
-
|
39
|
-
|
40
|
-
class TestCase(TLTestCase):
|
41
|
-
def setUp(self):
|
42
|
-
super(TestCase,self).setUp()
|
43
|
-
self.__common_in_path = common.__path__[0] in sys.path
|
44
|
-
if self.__common_in_path:
|
45
|
-
sys.path.remove(common.__path__[0])
|
46
|
-
|
47
|
-
def tearDown(self):
|
48
|
-
if self.__common_in_path:
|
49
|
-
sys.path.insert(0, common.__path__[0])
|
50
|
-
super(TestCase,self).tearDown()
|
51
|
-
|
52
|
-
class _module_file_tc(TestCase):
|
53
|
-
def test_find_zipped_module(self):
|
54
|
-
mtype, mfile = _module_file('mypypa', [path.join(DATADIR, 'MyPyPa-0.1.0-py2.5.zip')])
|
55
|
-
self.assertEquals(mtype, modutils.ZIPFILE)
|
56
|
-
self.assertEquals(mfile, '')
|
57
|
-
|
58
|
-
def test_find_egg_module(self):
|
59
|
-
mtype, mfile = _module_file('mypypa', [path.join(DATADIR, 'MyPyPa-0.1.0-py2.5.egg')])
|
60
|
-
self.assertEquals(mtype, modutils.ZIPFILE)
|
61
|
-
self.assertEquals(mfile, '')
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
class load_module_from_name_tc(TestCase):
|
66
|
-
""" load a python module from it's name """
|
67
|
-
|
68
|
-
def test_knownValues_load_module_from_name_1(self):
|
69
|
-
self.assertEqual(modutils.load_module_from_name('sys'), sys)
|
70
|
-
|
71
|
-
def test_knownValues_load_module_from_name_2(self):
|
72
|
-
self.assertEqual(modutils.load_module_from_name('os.path'), path)
|
73
|
-
|
74
|
-
def test_raise_load_module_from_name_1(self):
|
75
|
-
self.assertRaises(ImportError,
|
76
|
-
modutils.load_module_from_name, 'os.path', use_sys=0)
|
77
|
-
|
78
|
-
|
79
|
-
class get_module_part_tc(TestCase):
|
80
|
-
"""given a dotted name return the module part of the name"""
|
81
|
-
|
82
|
-
def test_knownValues_get_module_part_1(self):
|
83
|
-
self.assertEqual(modutils.get_module_part('logilab.common.modutils'),
|
84
|
-
'logilab.common.modutils')
|
85
|
-
|
86
|
-
def test_knownValues_get_module_part_2(self):
|
87
|
-
self.assertEqual(modutils.get_module_part('logilab.common.modutils.get_module_part'),
|
88
|
-
'logilab.common.modutils')
|
89
|
-
|
90
|
-
def test_knownValues_get_module_part_3(self):
|
91
|
-
self.assertEqual(modutils.get_module_part('db.get_connexion', modutils.__file__),
|
92
|
-
'db')
|
93
|
-
|
94
|
-
def test_knownValues_get_compiled_module_part(self):
|
95
|
-
self.assertEqual(modutils.get_module_part('math.log10'), 'math')
|
96
|
-
self.assertEqual(modutils.get_module_part('math.log10', __file__), 'math')
|
97
|
-
|
98
|
-
def test_knownValues_get_builtin_module_part(self):
|
99
|
-
self.assertEqual(modutils.get_module_part('sys.path'), 'sys')
|
100
|
-
self.assertEqual(modutils.get_module_part('sys.path', '__file__'), 'sys')
|
101
|
-
|
102
|
-
|
103
|
-
class modpath_from_file_tc(TestCase):
|
104
|
-
""" given an absolute file path return the python module's path as a list """
|
105
|
-
|
106
|
-
def test_knownValues_modpath_from_file_1(self):
|
107
|
-
self.assertEqual(modutils.modpath_from_file(modutils.__file__),
|
108
|
-
['logilab', 'common', 'modutils'])
|
109
|
-
|
110
|
-
def test_knownValues_modpath_from_file_2(self):
|
111
|
-
self.assertEqual(modutils.modpath_from_file('unittest_modutils.py',
|
112
|
-
{getcwd(): 'arbitrary.pkg'}),
|
113
|
-
['arbitrary', 'pkg', 'unittest_modutils'])
|
114
|
-
|
115
|
-
def test_raise_modpath_from_file_Exception(self):
|
116
|
-
self.assertRaises(Exception, modutils.modpath_from_file, '/turlututu')
|
117
|
-
|
118
|
-
|
119
|
-
class file_from_modpath_tc(TestCase):
|
120
|
-
"""given a mod path (i.e. splited module / package name), return the
|
121
|
-
corresponding file, giving priority to source file over precompiled file
|
122
|
-
if it exists"""
|
123
|
-
|
124
|
-
def test_knownValues_file_from_modpath_1(self):
|
125
|
-
self.assertEqual(path.realpath(modutils.file_from_modpath(['logilab', 'common', 'modutils'])),
|
126
|
-
path.realpath(modutils.__file__.replace('.pyc', '.py')))
|
127
|
-
|
128
|
-
def test_knownValues_file_from_modpath_2(self):
|
129
|
-
from os import path
|
130
|
-
self.assertEqual(path.realpath(modutils.file_from_modpath(['os', 'path']).replace('.pyc', '.py')),
|
131
|
-
path.realpath(path.__file__.replace('.pyc', '.py')))
|
132
|
-
|
133
|
-
def test_knownValues_file_from_modpath_3(self):
|
134
|
-
try:
|
135
|
-
# don't fail if pyxml isn't installed
|
136
|
-
from xml.dom import ext
|
137
|
-
except ImportError:
|
138
|
-
pass
|
139
|
-
else:
|
140
|
-
self.assertEqual(path.realpath(modutils.file_from_modpath(['xml', 'dom', 'ext']).replace('.pyc', '.py')),
|
141
|
-
path.realpath(ext.__file__.replace('.pyc', '.py')))
|
142
|
-
|
143
|
-
def test_knownValues_file_from_modpath_4(self):
|
144
|
-
self.assertEqual(modutils.file_from_modpath(['sys']),
|
145
|
-
None)
|
146
|
-
|
147
|
-
def test_raise_file_from_modpath_Exception(self):
|
148
|
-
self.assertRaises(ImportError, modutils.file_from_modpath, ['turlututu'])
|
149
|
-
|
150
|
-
class get_source_file_tc(TestCase):
|
151
|
-
|
152
|
-
def test(self):
|
153
|
-
from os import path
|
154
|
-
self.assertEqual(modutils.get_source_file(path.__file__),
|
155
|
-
path.__file__.replace('.pyc', '.py'))
|
156
|
-
|
157
|
-
def test_raise(self):
|
158
|
-
self.assertRaises(modutils.NoSourceFile, modutils.get_source_file,'whatever')
|
159
|
-
|
160
|
-
class is_standard_module_tc(TestCase):
|
161
|
-
"""
|
162
|
-
return true if the module may be considered as a module from the standard
|
163
|
-
library
|
164
|
-
"""
|
165
|
-
|
166
|
-
def test_knownValues_is_standard_module_0(self):
|
167
|
-
self.assertEqual(modutils.is_standard_module('__builtin__'), True)
|
168
|
-
|
169
|
-
def test_knownValues_is_standard_module_1(self):
|
170
|
-
self.assertEqual(modutils.is_standard_module('sys'), True)
|
171
|
-
|
172
|
-
def test_knownValues_is_standard_module_2(self):
|
173
|
-
self.assertEqual(modutils.is_standard_module('logilab'), False)
|
174
|
-
|
175
|
-
def test_knownValues_is_standard_module_3(self):
|
176
|
-
self.assertEqual(modutils.is_standard_module('unknown'), False)
|
177
|
-
|
178
|
-
def test_knownValues_is_standard_module_4(self):
|
179
|
-
self.assertEqual(modutils.is_standard_module('StringIO'), True)
|
180
|
-
|
181
|
-
def test_knownValues_is_standard_module_5(self):
|
182
|
-
self.assertEqual(modutils.is_standard_module('data.module', (DATADIR,)), True)
|
183
|
-
self.assertEqual(modutils.is_standard_module('data.module', (path.abspath(DATADIR),)), True)
|
184
|
-
|
185
|
-
|
186
|
-
class is_relative_tc(TestCase):
|
187
|
-
|
188
|
-
|
189
|
-
def test_knownValues_is_relative_1(self):
|
190
|
-
self.assertEqual(modutils.is_relative('modutils', common.__path__[0]), True)
|
191
|
-
|
192
|
-
def test_knownValues_is_relative_2(self):
|
193
|
-
self.assertEqual(modutils.is_relative('modutils', tree.__file__), True)
|
194
|
-
|
195
|
-
def test_knownValues_is_relative_3(self):
|
196
|
-
self.assertEqual(modutils.is_relative('logilab.common.modutils',
|
197
|
-
common.__path__[0]), False)
|
198
|
-
|
199
|
-
class get_modules_tc(TestCase):
|
200
|
-
|
201
|
-
def test_knownValues_get_modules_1(self): # XXXFIXME: TOWRITE
|
202
|
-
"""given a directory return a list of all available python modules, even
|
203
|
-
in subdirectories
|
204
|
-
"""
|
205
|
-
import data.find_test as data
|
206
|
-
mod_path = ("data", 'find_test')
|
207
|
-
modules = modutils.get_modules(path.join(*mod_path), data.__path__[0])
|
208
|
-
modules.sort()
|
209
|
-
self.assertSetEquals(set(modules),
|
210
|
-
set([ '.'.join(mod_path + (mod, )) for mod in 'module', 'module2',
|
211
|
-
'noendingnewline', 'nonregr']))
|
212
|
-
|
213
|
-
|
214
|
-
class get_modules_files_tc(TestCase):
|
215
|
-
|
216
|
-
def test_knownValues_get_module_files_1(self): # XXXFIXME: TOWRITE
|
217
|
-
"""given a directory return a list of all available python module's files, even
|
218
|
-
in subdirectories
|
219
|
-
"""
|
220
|
-
import data
|
221
|
-
modules = modutils.get_module_files(path.join(DATADIR,'find_test'), data.__path__[0])
|
222
|
-
modules.sort()
|
223
|
-
self.assertEqual(modules,
|
224
|
-
[path.join(DATADIR, 'find_test', x) for x in ['__init__.py', 'module.py', 'module2.py', 'noendingnewline.py', 'nonregr.py']])
|
225
|
-
|
226
|
-
def test_load_module_set_attribute(self):
|
227
|
-
import logilab.common.fileutils
|
228
|
-
import logilab
|
229
|
-
del logilab.common.fileutils
|
230
|
-
del sys.modules['logilab.common.fileutils']
|
231
|
-
m = modutils.load_module_from_modpath(['logilab','common', 'fileutils'])
|
232
|
-
self.assert_( hasattr(logilab, 'common') )
|
233
|
-
self.assert_( hasattr(logilab.common, 'fileutils') )
|
234
|
-
self.assert_( m is logilab.common.fileutils )
|
235
|
-
|
236
|
-
from logilab.common.testlib import DocTest
|
237
|
-
class ModuleDocTest(DocTest):
|
238
|
-
"""test doc test in this module"""
|
239
|
-
from logilab.common import modutils as module
|
240
|
-
del DocTest # necessary if we don't want it to be executed (we don't...)
|
241
|
-
|
242
|
-
|
243
|
-
if __name__ == '__main__':
|
244
|
-
unittest_main()
|
@@ -1,50 +0,0 @@
|
|
1
|
-
# copyright 2003-2010 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
|
2
|
-
# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
|
3
|
-
#
|
4
|
-
# This file is part of logilab-common.
|
5
|
-
#
|
6
|
-
# logilab-common is free software: you can redistribute it and/or modify it under
|
7
|
-
# the terms of the GNU Lesser General Public License as published by the Free
|
8
|
-
# Software Foundation, either version 2.1 of the License, or (at your option) any
|
9
|
-
# later version.
|
10
|
-
#
|
11
|
-
# logilab-common is distributed in the hope that it will be useful, but WITHOUT
|
12
|
-
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
13
|
-
# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
|
14
|
-
# details.
|
15
|
-
#
|
16
|
-
# You should have received a copy of the GNU Lesser General Public License along
|
17
|
-
# with logilab-common. If not, see <http://www.gnu.org/licenses/>.
|
18
|
-
from os.path import join
|
19
|
-
from logilab.common.testlib import TestCase, unittest_main
|
20
|
-
from logilab.common.pytest import *
|
21
|
-
|
22
|
-
class ModuleFunctionTC(TestCase):
|
23
|
-
def test_this_is_testdir(self):
|
24
|
-
self.assertTrue(this_is_a_testdir("test"))
|
25
|
-
self.assertTrue(this_is_a_testdir("tests"))
|
26
|
-
self.assertTrue(this_is_a_testdir("unittests"))
|
27
|
-
self.assertTrue(this_is_a_testdir("unittest"))
|
28
|
-
self.assertFalse(this_is_a_testdir("unit"))
|
29
|
-
self.assertFalse(this_is_a_testdir("units"))
|
30
|
-
self.assertFalse(this_is_a_testdir("undksjhqfl"))
|
31
|
-
self.assertFalse(this_is_a_testdir("this_is_not_a_dir_test"))
|
32
|
-
self.assertFalse(this_is_a_testdir("this_is_not_a_testdir"))
|
33
|
-
self.assertFalse(this_is_a_testdir("unittestsarenothere"))
|
34
|
-
self.assertTrue(this_is_a_testdir(join("coincoin","unittests")))
|
35
|
-
self.assertFalse(this_is_a_testdir(join("unittests","spongebob")))
|
36
|
-
|
37
|
-
def test_this_is_testfile(self):
|
38
|
-
self.assertTrue(this_is_a_testfile("test.py"))
|
39
|
-
self.assertTrue(this_is_a_testfile("testbabar.py"))
|
40
|
-
self.assertTrue(this_is_a_testfile("unittest_celestine.py"))
|
41
|
-
self.assertTrue(this_is_a_testfile("smoketest.py"))
|
42
|
-
self.assertFalse(this_is_a_testfile("test.pyc"))
|
43
|
-
self.assertFalse(this_is_a_testfile("zephir_test.py"))
|
44
|
-
self.assertFalse(this_is_a_testfile("smoketest.pl"))
|
45
|
-
self.assertFalse(this_is_a_testfile("unittest"))
|
46
|
-
self.assertTrue(this_is_a_testfile(join("coincoin","unittest_bibi.py")))
|
47
|
-
self.assertFalse(this_is_a_testfile(join("unittest","spongebob.py")))
|
48
|
-
|
49
|
-
if __name__ == '__main__':
|
50
|
-
unittest_main()
|
@@ -1,248 +0,0 @@
|
|
1
|
-
# copyright 2003-2010 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
|
2
|
-
# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
|
3
|
-
#
|
4
|
-
# This file is part of logilab-common.
|
5
|
-
#
|
6
|
-
# logilab-common is free software: you can redistribute it and/or modify it under
|
7
|
-
# the terms of the GNU Lesser General Public License as published by the Free
|
8
|
-
# Software Foundation, either version 2.1 of the License, or (at your option) any
|
9
|
-
# later version.
|
10
|
-
#
|
11
|
-
# logilab-common is distributed in the hope that it will be useful, but WITHOUT
|
12
|
-
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
13
|
-
# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
|
14
|
-
# details.
|
15
|
-
#
|
16
|
-
# You should have received a copy of the GNU Lesser General Public License along
|
17
|
-
# with logilab-common. If not, see <http://www.gnu.org/licenses/>.
|
18
|
-
"""unit tests for logilab.common.shellutils"""
|
19
|
-
|
20
|
-
import sys, os, tempfile, shutil
|
21
|
-
from os.path import join
|
22
|
-
import datetime, time
|
23
|
-
|
24
|
-
from logilab.common.testlib import TestCase, unittest_main
|
25
|
-
|
26
|
-
from logilab.common.shellutils import (globfind, find, ProgressBar,
|
27
|
-
acquire_lock, release_lock,
|
28
|
-
RawInput, confirm)
|
29
|
-
|
30
|
-
from logilab.common.proc import NoSuchProcess
|
31
|
-
from StringIO import StringIO
|
32
|
-
|
33
|
-
DATA_DIR = join('data','find_test')
|
34
|
-
|
35
|
-
class FindTC(TestCase):
|
36
|
-
def test_include(self):
|
37
|
-
files = set(find(DATA_DIR, '.py'))
|
38
|
-
self.assertSetEqual(files,
|
39
|
-
set([join(DATA_DIR, f) for f in ['__init__.py', 'module.py',
|
40
|
-
'module2.py', 'noendingnewline.py',
|
41
|
-
'nonregr.py', join('sub', 'momo.py')]]))
|
42
|
-
files = set(find(DATA_DIR, ('.py',), blacklist=('sub',)))
|
43
|
-
self.assertSetEqual(files,
|
44
|
-
set([join(DATA_DIR, f) for f in ['__init__.py', 'module.py',
|
45
|
-
'module2.py', 'noendingnewline.py',
|
46
|
-
'nonregr.py']]))
|
47
|
-
|
48
|
-
def test_exclude(self):
|
49
|
-
files = set(find(DATA_DIR, ('.py', '.pyc'), exclude=True))
|
50
|
-
self.assertSetEqual(files,
|
51
|
-
set([join(DATA_DIR, f) for f in ['foo.txt',
|
52
|
-
'newlines.txt',
|
53
|
-
'normal_file.txt',
|
54
|
-
'test.ini',
|
55
|
-
'test1.msg',
|
56
|
-
'test2.msg',
|
57
|
-
'spam.txt',
|
58
|
-
join('sub', 'doc.txt'),
|
59
|
-
'write_protected_file.txt',
|
60
|
-
]]))
|
61
|
-
|
62
|
-
def test_globfind(self):
|
63
|
-
files = set(globfind(DATA_DIR, '*.py'))
|
64
|
-
self.assertSetEqual(files,
|
65
|
-
set([join(DATA_DIR, f) for f in ['__init__.py', 'module.py',
|
66
|
-
'module2.py', 'noendingnewline.py',
|
67
|
-
'nonregr.py', join('sub', 'momo.py')]]))
|
68
|
-
files = set(globfind(DATA_DIR, 'mo*.py'))
|
69
|
-
self.assertSetEqual(files,
|
70
|
-
set([join(DATA_DIR, f) for f in ['module.py', 'module2.py',
|
71
|
-
join('sub', 'momo.py')]]))
|
72
|
-
files = set(globfind(DATA_DIR, 'mo*.py', blacklist=('sub',)))
|
73
|
-
self.assertSetEqual(files,
|
74
|
-
set([join(DATA_DIR, f) for f in ['module.py', 'module2.py']]))
|
75
|
-
|
76
|
-
|
77
|
-
class ProgressBarTC(TestCase):
|
78
|
-
def test_refresh(self):
|
79
|
-
pgb_stream = StringIO()
|
80
|
-
expected_stream = StringIO()
|
81
|
-
pgb = ProgressBar(20,stream=pgb_stream)
|
82
|
-
self.assertEquals(pgb_stream.getvalue(), expected_stream.getvalue()) # nothing print before refresh
|
83
|
-
pgb.refresh()
|
84
|
-
expected_stream.write("\r["+' '*20+"]")
|
85
|
-
self.assertEquals(pgb_stream.getvalue(), expected_stream.getvalue())
|
86
|
-
|
87
|
-
def test_refresh_g_size(self):
|
88
|
-
pgb_stream = StringIO()
|
89
|
-
expected_stream = StringIO()
|
90
|
-
pgb = ProgressBar(20,35,stream=pgb_stream)
|
91
|
-
pgb.refresh()
|
92
|
-
expected_stream.write("\r["+' '*35+"]")
|
93
|
-
self.assertEquals(pgb_stream.getvalue(), expected_stream.getvalue())
|
94
|
-
|
95
|
-
def test_refresh_l_size(self):
|
96
|
-
pgb_stream = StringIO()
|
97
|
-
expected_stream = StringIO()
|
98
|
-
pgb = ProgressBar(20,3,stream=pgb_stream)
|
99
|
-
pgb.refresh()
|
100
|
-
expected_stream.write("\r["+' '*3+"]")
|
101
|
-
self.assertEquals(pgb_stream.getvalue(), expected_stream.getvalue())
|
102
|
-
|
103
|
-
def _update_test(self, nbops, expected, size = None):
|
104
|
-
pgb_stream = StringIO()
|
105
|
-
expected_stream = StringIO()
|
106
|
-
if size is None:
|
107
|
-
pgb = ProgressBar(nbops, stream=pgb_stream)
|
108
|
-
size=20
|
109
|
-
else:
|
110
|
-
pgb = ProgressBar(nbops, size, stream=pgb_stream)
|
111
|
-
last = 0
|
112
|
-
for round in expected:
|
113
|
-
if not hasattr(round, '__int__'):
|
114
|
-
dots, update = round
|
115
|
-
else:
|
116
|
-
dots, update = round, None
|
117
|
-
pgb.update()
|
118
|
-
if update or (update is None and dots != last):
|
119
|
-
last = dots
|
120
|
-
expected_stream.write("\r["+('.'*dots)+(' '*(size-dots))+"]")
|
121
|
-
self.assertEquals(pgb_stream.getvalue(), expected_stream.getvalue())
|
122
|
-
|
123
|
-
def test_default(self):
|
124
|
-
self._update_test(20, xrange(1,21))
|
125
|
-
|
126
|
-
def test_nbops_gt_size(self):
|
127
|
-
"""Test the progress bar for nbops > size"""
|
128
|
-
def half(total):
|
129
|
-
for counter in range(1,total+1):
|
130
|
-
yield counter / 2
|
131
|
-
self._update_test(40, half(40))
|
132
|
-
|
133
|
-
def test_nbops_lt_size(self):
|
134
|
-
"""Test the progress bar for nbops < size"""
|
135
|
-
def double(total):
|
136
|
-
for counter in range(1,total+1):
|
137
|
-
yield counter * 2
|
138
|
-
self._update_test(10, double(10))
|
139
|
-
|
140
|
-
def test_nbops_nomul_size(self):
|
141
|
-
"""Test the progress bar for size % nbops !=0 (non int number of dots per update)"""
|
142
|
-
self._update_test(3, (6,13,20))
|
143
|
-
|
144
|
-
def test_overflow(self):
|
145
|
-
self._update_test(5, (8, 16, 25, 33, 42, (42, True)), size=42)
|
146
|
-
|
147
|
-
|
148
|
-
class AcquireLockTC(TestCase):
|
149
|
-
|
150
|
-
def setUp(self):
|
151
|
-
self.tmpdir = tempfile.mkdtemp()
|
152
|
-
self.lock = join(self.tmpdir, 'LOCK')
|
153
|
-
|
154
|
-
def tearDown(self):
|
155
|
-
shutil.rmtree(self.tmpdir)
|
156
|
-
|
157
|
-
def test_acquire_normal(self):
|
158
|
-
self.assertTrue(acquire_lock(self.lock, 1, 1))
|
159
|
-
self.assertTrue(os.path.exists(self.lock))
|
160
|
-
release_lock(self.lock)
|
161
|
-
self.assertFalse(os.path.exists(self.lock))
|
162
|
-
|
163
|
-
def test_no_possible_acquire(self):
|
164
|
-
self.assertRaises(Exception, acquire_lock, self.lock, 0)
|
165
|
-
|
166
|
-
def test_wrong_process(self):
|
167
|
-
fd = os.open(self.lock, os.O_EXCL | os.O_RDWR | os.O_CREAT)
|
168
|
-
os.write(fd, '1111111111')
|
169
|
-
os.close(fd)
|
170
|
-
self.assertTrue(os.path.exists(self.lock))
|
171
|
-
self.assertRaises(Exception, acquire_lock, self.lock, 1, 1)
|
172
|
-
|
173
|
-
def test_wrong_process_and_continue(self):
|
174
|
-
fd = os.open(self.lock, os.O_EXCL | os.O_RDWR | os.O_CREAT)
|
175
|
-
os.write(fd, '1111111111')
|
176
|
-
os.close(fd)
|
177
|
-
self.assertTrue(os.path.exists(self.lock))
|
178
|
-
self.assertTrue(acquire_lock(self.lock))
|
179
|
-
|
180
|
-
def test_locked_for_one_hour(self):
|
181
|
-
self.assertTrue(acquire_lock(self.lock))
|
182
|
-
touch = datetime.datetime.fromtimestamp(time.time() - 3601).strftime("%m%d%H%M")
|
183
|
-
os.system("touch -t %s %s" % (touch, self.lock))
|
184
|
-
self.assertRaises(UserWarning, acquire_lock, self.lock, max_try=2, delay=1)
|
185
|
-
|
186
|
-
class RawInputTC(TestCase):
|
187
|
-
|
188
|
-
def auto_input(self, *args):
|
189
|
-
self.input_args = args
|
190
|
-
return self.input_answer
|
191
|
-
|
192
|
-
def setUp(self):
|
193
|
-
null_printer = lambda x: None
|
194
|
-
self.qa = RawInput(self.auto_input, null_printer)
|
195
|
-
|
196
|
-
def test_ask_default(self):
|
197
|
-
self.input_answer = ''
|
198
|
-
answer = self.qa.ask('text', ('yes','no'), 'yes')
|
199
|
-
self.assertEquals(answer, 'yes')
|
200
|
-
self.input_answer = ' '
|
201
|
-
answer = self.qa.ask('text', ('yes','no'), 'yes')
|
202
|
-
self.assertEquals(answer, 'yes')
|
203
|
-
|
204
|
-
def test_ask_case(self):
|
205
|
-
self.input_answer = 'no'
|
206
|
-
answer = self.qa.ask('text', ('yes','no'), 'yes')
|
207
|
-
self.assertEquals(answer, 'no')
|
208
|
-
self.input_answer = 'No'
|
209
|
-
answer = self.qa.ask('text', ('yes','no'), 'yes')
|
210
|
-
self.assertEquals(answer, 'no')
|
211
|
-
self.input_answer = 'NO'
|
212
|
-
answer = self.qa.ask('text', ('yes','no'), 'yes')
|
213
|
-
self.assertEquals(answer, 'no')
|
214
|
-
self.input_answer = 'nO'
|
215
|
-
answer = self.qa.ask('text', ('yes','no'), 'yes')
|
216
|
-
self.assertEquals(answer, 'no')
|
217
|
-
self.input_answer = 'YES'
|
218
|
-
answer = self.qa.ask('text', ('yes','no'), 'yes')
|
219
|
-
self.assertEquals(answer, 'yes')
|
220
|
-
|
221
|
-
def test_ask_prompt(self):
|
222
|
-
self.input_answer = ''
|
223
|
-
answer = self.qa.ask('text', ('yes','no'), 'yes')
|
224
|
-
self.assertEquals(self.input_args[0], 'text [Y(es)/n(o)]: ')
|
225
|
-
answer = self.qa.ask('text', ('y','n'), 'y')
|
226
|
-
self.assertEquals(self.input_args[0], 'text [Y/n]: ')
|
227
|
-
answer = self.qa.ask('text', ('n','y'), 'y')
|
228
|
-
self.assertEquals(self.input_args[0], 'text [n/Y]: ')
|
229
|
-
answer = self.qa.ask('text', ('yes','no','maybe','1'), 'yes')
|
230
|
-
self.assertEquals(self.input_args[0], 'text [Y(es)/n(o)/m(aybe)/1]: ')
|
231
|
-
|
232
|
-
def test_ask_ambiguous(self):
|
233
|
-
self.input_answer = 'y'
|
234
|
-
self.assertRaises(Exception, self.qa.ask, 'text', ('yes','yep'), 'yes')
|
235
|
-
|
236
|
-
def test_confirm(self):
|
237
|
-
self.input_answer = 'y'
|
238
|
-
self.assertEquals(self.qa.confirm('Say yes'), True)
|
239
|
-
self.assertEquals(self.qa.confirm('Say yes', default_is_yes=False), True)
|
240
|
-
self.input_answer = 'n'
|
241
|
-
self.assertEquals(self.qa.confirm('Say yes'), False)
|
242
|
-
self.assertEquals(self.qa.confirm('Say yes', default_is_yes=False), False)
|
243
|
-
self.input_answer = ''
|
244
|
-
self.assertEquals(self.qa.confirm('Say default'), True)
|
245
|
-
self.assertEquals(self.qa.confirm('Say default', default_is_yes=False), False)
|
246
|
-
|
247
|
-
if __name__ == '__main__':
|
248
|
-
unittest_main()
|