create version/interpreter differentiated py.test$VER for cpython, jython, pypy-c's, prepare 1.1.2 release
--HG-- branch : trunk
This commit is contained in:
		
							parent
							
								
									4b1db63b35
								
							
						
					
					
						commit
						1580b2c8da
					
				|  | @ -1,7 +1,11 @@ | ||||||
| Changes between 1.1.2 and 1.1.1 | Changes between 1.1.2 and 1.1.1 | ||||||
| ===================================== | ===================================== | ||||||
| 
 | 
 | ||||||
|  | - install 'py.test' and `py.which` with a ``-$VERSION`` suffix to | ||||||
|  |   disambiguate between Python3, python2.X, Jython and PyPy installed versions.  | ||||||
|  | 
 | ||||||
| - fix assert reinterpreation that sees a call containing "keyword=..." | - fix assert reinterpreation that sees a call containing "keyword=..." | ||||||
|  | 
 | ||||||
| - skip some install-tests if no execnet is available | - skip some install-tests if no execnet is available | ||||||
| 
 | 
 | ||||||
| Changes between 1.1.1 and 1.1.0 | Changes between 1.1.1 and 1.1.0 | ||||||
|  |  | ||||||
|  | @ -143,3 +143,29 @@ def test_plugin_setuptools_entry_point_integration(py_setup, venv, tmpdir): | ||||||
|     venv.setup_develop() |     venv.setup_develop() | ||||||
|     out = venv.pytest_getouterr("-h") |     out = venv.pytest_getouterr("-h") | ||||||
|     assert "testpluginopt" in out |     assert "testpluginopt" in out | ||||||
|  | 
 | ||||||
|  | def test_cmdline_entrypoints(): | ||||||
|  |     from setup import cmdline_entrypoints | ||||||
|  |     versioned_scripts = ['py.test', 'py.which'] | ||||||
|  |     unversioned_scripts = versioned_scripts + [ 'py.cleanup',  | ||||||
|  |         'py.convert_unittest', 'py.countloc', 'py.lookup', 'py.svnwcrevert'] | ||||||
|  |     for ver in [(2,4,0), (2,5,0), (2,6,0), (2,7,0), (3,0,1), (3,1,1)]: | ||||||
|  |         for platform in ('posix', 'win32'): | ||||||
|  |             points = cmdline_entrypoints(ver, "posix", 'python') | ||||||
|  |             for script in versioned_scripts: | ||||||
|  |                 script_ver = script + "-%s.%s" % ver[:2] | ||||||
|  |                 assert script_ver in points | ||||||
|  |             for script in unversioned_scripts: | ||||||
|  |                 assert script in points | ||||||
|  |     points = cmdline_entrypoints((2,5,1), "java1.6.123", 'jython') | ||||||
|  |     for script in versioned_scripts: | ||||||
|  |         expected = "%s-jython" % script | ||||||
|  |         assert expected in points | ||||||
|  |     for script in unversioned_scripts: | ||||||
|  |         assert script in points | ||||||
|  |     points = cmdline_entrypoints((2,5,1), "xyz", 'pypy-c-XYZ') | ||||||
|  |     for script in versioned_scripts: | ||||||
|  |         expected = "%s-pypy-c-XYZ" % script | ||||||
|  |         assert expected in points | ||||||
|  |     for script in unversioned_scripts: | ||||||
|  |         assert script in points | ||||||
|  |  | ||||||
							
								
								
									
										63
									
								
								doc/bin.txt
								
								
								
								
							
							
						
						
									
										63
									
								
								doc/bin.txt
								
								
								
								
							|  | @ -1,22 +1,40 @@ | ||||||
| ====================== | ====================== | ||||||
| ``py/bin/`` scripts  | pylib scripts  | ||||||
| ====================== | ====================== | ||||||
| 
 | 
 | ||||||
| The py-lib contains some scripts, most of which are  | The pylib installs several scripts to support testing and (python) | ||||||
| small ones (apart from ``py.test``) that help during | development.  If working from a checkout you may also add ``bin`` to | ||||||
| the python development process.  If working | your ``PATH`` environment variable which makes the scripts available on | ||||||
| from a svn-checkout of py lib you may add ``py/bin``  | your shell prompt.  | ||||||
| to your shell ``PATH`` which should make the scripts |  | ||||||
| available on your command prompt.  |  | ||||||
| 
 | 
 | ||||||
| ``py.test`` | ``py.test`` and ``py.test-$VERSION`` | ||||||
| =========== | ============================================ | ||||||
| 
 | 
 | ||||||
| The ``py.test`` executable is the main entry point into the py-lib testing tool, | The ``py.test`` executable is the main tool that the py lib offers; | ||||||
| see the `py.test documentation`_. | in fact most code in the py lib is geared towards supporting the | ||||||
|  | testing process.  See the `py.test documentation`_ for extensive | ||||||
|  | documentation.  The ``py.test-$VERSION`` is the same script with | ||||||
|  | an interpreter specific suffix appended to make  | ||||||
|  | several versions of py.test for using specific interpreters | ||||||
|  | accessible: | ||||||
|  | 
 | ||||||
|  | * CPython2.4: py.test-2.4  | ||||||
|  | * CPython2.5: py.test-2.5 | ||||||
|  | * ...  | ||||||
|  | * CPython3.1: py.test-3.1 | ||||||
|  | * Jython-2.5.1: py.test-jython | ||||||
|  | * pypy-$SUFFIX: py.test-pypy-$SUFFIX  | ||||||
| 
 | 
 | ||||||
| .. _`py.test documentation`: test/index.html | .. _`py.test documentation`: test/index.html | ||||||
| 
 | 
 | ||||||
|  | ``py.which`` and ``py.which-$VERSION`` | ||||||
|  | ========================================= | ||||||
|  | 
 | ||||||
|  | Usage: ``py.which modulename`` | ||||||
|  | 
 | ||||||
|  | Print the ``__file__`` of the module that is imported via ``import modulename``. | ||||||
|  | The version-suffix is the same as with ``py.test`` above.  | ||||||
|  | 
 | ||||||
| ``py.cleanup`` | ``py.cleanup`` | ||||||
| ============== | ============== | ||||||
| 
 | 
 | ||||||
|  | @ -26,7 +44,6 @@ Delete pyc file recursively, starting from ``PATH`` (which defaults to the | ||||||
| current working directory). Don't follow links and don't recurse into | current working directory). Don't follow links and don't recurse into | ||||||
| directories with a ".". | directories with a ".". | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| ``py.countloc`` | ``py.countloc`` | ||||||
| =============== | =============== | ||||||
| 
 | 
 | ||||||
|  | @ -46,25 +63,3 @@ Looks recursively at Python files for a ``SEARCH_STRING``, starting from the | ||||||
| present working directory. Prints the line, with the filename and line-number | present working directory. Prints the line, with the filename and line-number | ||||||
| prepended. | prepended. | ||||||
| 
 | 
 | ||||||
| ``py.rest`` |  | ||||||
| =========== |  | ||||||
| 
 |  | ||||||
| Usage: ``py.rest [PATHS] [options]`` |  | ||||||
| 
 |  | ||||||
| [deprecated in 1.0, will likely be separated] |  | ||||||
| Loot recursively for .txt files starting from ``PATHS`` and convert them to |  | ||||||
| html using docutils or to pdf files, if the ``--pdf`` option is used. For |  | ||||||
| conversion to PDF you will need several command line tools, on Ubuntu Linux |  | ||||||
| this is **texlive** and **texlive-extra-utils**.  |  | ||||||
| 
 |  | ||||||
| ``py.rest`` has some extra features over rst2html (which is shipped with |  | ||||||
| docutils). Most of these are still experimental, the one which is most likely |  | ||||||
| not going to change is the `graphviz`_ directive. With that you can embed .dot |  | ||||||
| files into your document and have them be converted to png (when outputting |  | ||||||
| html) and to eps (when outputting pdf). Otherwise the directive works mostly |  | ||||||
| like the image directive:: |  | ||||||
| 
 |  | ||||||
|     .. graphviz:: example.dot |  | ||||||
|        :scale: 90 |  | ||||||
| 
 |  | ||||||
| .. _`graphviz`: http://www.graphviz.org |  | ||||||
|  |  | ||||||
|  | @ -3,19 +3,30 @@ | ||||||
|     Downloading |     Downloading | ||||||
|     ============== |     ============== | ||||||
| 
 | 
 | ||||||
| .. _`PyPI project page`: http://pypi.python.org/pypi/py/ | .. _`index page`: http://pypi.python.org/pypi/py/ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| py.test/pylib compat/install info in a nutshell | py.test/pylib installation info in a nutshell | ||||||
| =================================================== | =================================================== | ||||||
| 
 | 
 | ||||||
| PyPI Pyckage name: "**py**", see `PyPI project page`_ for latest version | **Pythons**: 2.4, 2.5, 2.6, 3.0, 3.1, Jython-2.5.1, PyPy-1.1 | ||||||
| 
 | 
 | ||||||
| Installers: easy_install_ and pip_, setuptools_ or Distribute_ | **Operating systems**: Linux, Windows, OSX, Unix  | ||||||
| 
 | 
 | ||||||
| Pythons: 2.4, 2.5, 2.6, 3.0, 3.1, Jython-2.5.1, PyPy-1.1 | **Requirements**: setuptools_ or Distribute_  | ||||||
| 
 | 
 | ||||||
| Operating systems: Linux, Windows and OSX + probably many others | **Installers**: easy_install_ and pip_ | ||||||
|  | 
 | ||||||
|  | **Distribution names**: | ||||||
|  | 
 | ||||||
|  | * PyPI name: ``py`` (see `index page`_ for versions) | ||||||
|  | * redhat fedora: ``pylib`` | ||||||
|  | * debian: ``python-codespeak-lib`` | ||||||
|  | * gentoo: ``pylib`` | ||||||
|  | 
 | ||||||
|  | **Installed scripts**: see `bin`_ for which scripts are installed.  | ||||||
|  | 
 | ||||||
|  | .. _`bin`: bin.html | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| Best practise: install tool and dependencies virtually | Best practise: install tool and dependencies virtually | ||||||
|  | @ -28,12 +39,6 @@ you need to run your tests.  Local virtual Python environments | ||||||
| (as opposed to system-wide "global" environments) make for a more  | (as opposed to system-wide "global" environments) make for a more  | ||||||
| reproducible and reliable test environment.  | reproducible and reliable test environment.  | ||||||
| 
 | 
 | ||||||
| Note: as of November 2009 pytest/pylib 1.1 RPMs and DEB packages  |  | ||||||
| are not available.  If you want to easy_install the newest py.test |  | ||||||
| and pylib do everyone a favour and uninstall older versions  |  | ||||||
| from the global system e.g. like this on Ubuntu:: |  | ||||||
| 
 |  | ||||||
|     sudo apt-get remove --purge python-codespeak-lib |  | ||||||
| 
 | 
 | ||||||
| .. _`virtualenv`: http://pypi.python.org/pypi/virtualenv | .. _`virtualenv`: http://pypi.python.org/pypi/virtualenv | ||||||
| .. _`buildout`: http://www.buildout.org/ | .. _`buildout`: http://www.buildout.org/ | ||||||
|  |  | ||||||
|  | @ -9,7 +9,7 @@ dictionary or an import path. | ||||||
| 
 | 
 | ||||||
| (c) Holger Krekel and others, 2009 | (c) Holger Krekel and others, 2009 | ||||||
| """ | """ | ||||||
| version = "1.1.1" | version = "1.1.2" | ||||||
| 
 | 
 | ||||||
| __version__ = version = version or "1.1.x" | __version__ = version = version or "1.1.x" | ||||||
| import py.apipkg | import py.apipkg | ||||||
|  |  | ||||||
							
								
								
									
										36
									
								
								setup.py
								
								
								
								
							
							
						
						
									
										36
									
								
								setup.py
								
								
								
								
							|  | @ -28,20 +28,13 @@ def main(): | ||||||
|         name='py', |         name='py', | ||||||
|         description='py.test and pylib: rapid testing and development utils.', |         description='py.test and pylib: rapid testing and development utils.', | ||||||
|         long_description = long_description, |         long_description = long_description, | ||||||
|         version= trunk or '1.1.1', |         version= trunk or '1.1.2', | ||||||
|         url='http://pylib.org', |         url='http://pylib.org', | ||||||
|         license='MIT license', |         license='MIT license', | ||||||
|         platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'], |         platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'], | ||||||
|         author='holger krekel, Guido Wesdorp, Carl Friedrich Bolz, Armin Rigo, Maciej Fijalkowski & others', |         author='holger krekel, Guido Wesdorp, Carl Friedrich Bolz, Armin Rigo, Maciej Fijalkowski & others', | ||||||
|         author_email='holger at merlinux.eu', |         author_email='holger at merlinux.eu', | ||||||
|         entry_points={'console_scripts': [ |         entry_points= make_entry_points(), | ||||||
|             'py.cleanup = py.cmdline:pycleanup', |  | ||||||
|             'py.convert_unittest = py.cmdline:pyconvert_unittest', |  | ||||||
|             'py.countloc = py.cmdline:pycountloc', |  | ||||||
|             'py.lookup = py.cmdline:pylookup', |  | ||||||
|             'py.svnwcrevert = py.cmdline:pysvnwcrevert', |  | ||||||
|             'py.test = py.cmdline:pytest', |  | ||||||
|             'py.which = py.cmdline:pywhich']}, |  | ||||||
|         classifiers=['Development Status :: 5 - Production/Stable', |         classifiers=['Development Status :: 5 - Production/Stable', | ||||||
|                      'Intended Audience :: Developers', |                      'Intended Audience :: Developers', | ||||||
|                      'License :: OSI Approved :: MIT License', |                      'License :: OSI Approved :: MIT License', | ||||||
|  | @ -69,6 +62,31 @@ def main(): | ||||||
|         zip_safe=False, |         zip_safe=False, | ||||||
|     ) |     ) | ||||||
| 
 | 
 | ||||||
|  | def cmdline_entrypoints(versioninfo, platform, basename): | ||||||
|  |     if basename.startswith("pypy"): | ||||||
|  |         points = {'py.test-%s' % basename: 'py.cmdline:pytest',  | ||||||
|  |                   'py.which-%s' % basename: 'py.cmdline:pywhich',} | ||||||
|  |     elif platform.startswith('java'): | ||||||
|  |         points = {'py.test-jython': 'py.cmdline:pytest',  | ||||||
|  |                   'py.which-jython': 'py.cmdline:pywhich'} | ||||||
|  |     else: # cpython | ||||||
|  |         points = { | ||||||
|  |           'py.test-%s.%s' % versioninfo[:2] : 'py.cmdline:pytest', | ||||||
|  |           'py.which-%s.%s' % versioninfo[:2] : 'py.cmdline:pywhich' | ||||||
|  |         } | ||||||
|  |     for x in ['py.cleanup', 'py.convert_unittest', 'py.countloc',  | ||||||
|  |               'py.lookup', 'py.svnwcrevert', 'py.which', 'py.test']: | ||||||
|  |         points[x] = "py.cmdline:%s" % x.replace('.','') | ||||||
|  |     return points | ||||||
|  | 
 | ||||||
|  | def make_entry_points(): | ||||||
|  |     basename = os.path.basename(sys.executable) | ||||||
|  |     points = cmdline_entrypoints(sys.version_info, sys.platform, basename) | ||||||
|  |     keys = list(points.keys()) | ||||||
|  |     keys.sort() | ||||||
|  |     l = ["%s = %s" % (x, points[x]) for x in keys] | ||||||
|  |     return {'console_scripts': l} | ||||||
|  | 
 | ||||||
| if __name__ == '__main__': | if __name__ == '__main__': | ||||||
|     main() |     main() | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue