[pypy-svn] pypy pytest2: remove py/bin/py.test script because we neccessarily have pytest.py at root level anyway.

hpk42 commits-noreply at bitbucket.org
Sun Mar 6 19:37:35 CET 2011


Author: holger krekel <holger at merlinux.eu>
Branch: pytest2
Changeset: r42446:cc8117bbdad0
Date: 2011-03-06 19:36 +0100
http://bitbucket.org/pypy/pypy/changeset/cc8117bbdad0/

Log:	remove py/bin/py.test script because we neccessarily have pytest.py
	at root level anyway. the root pytest.py is now a modified version
	of the file from the pytest distribution because I want to disable
	warnings for people who have installed py.test indepedently from
	PyPy. Also fix up the docs a bit more to hint / move towards this
	possibility.

	also fix the docs to point to "pytest.py" instead of
	"pypy/test_all.py" which should die at some point.

diff --git a/py/bin/py.test b/py/bin/py.test
deleted file mode 100755
--- a/py/bin/py.test
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env python
-
-# XXX integrate into pypy/test_all.py
-# somewhat PYPY specific hack:
-# let's make sure setuptools does show a warning when our inlined 'py'
-# version shadows a properly installed one.
-import warnings
-warnings.filterwarnings("ignore", 
-    "Module py was already imported", category=UserWarning)
-warnings.filterwarnings("ignore", 
-    "Module _pytest was already imported",
-    category=UserWarning)
-warnings.filterwarnings("ignore", 
-    "Module pytest was already imported",
-    category=UserWarning)
-from _findpy import py
-import pytest
-pytest.main()

diff --git a/pypy/doc/project-ideas.txt b/pypy/doc/project-ideas.txt
--- a/pypy/doc/project-ideas.txt
+++ b/pypy/doc/project-ideas.txt
@@ -81,8 +81,6 @@
 
 
 .. _`efficient propagators for specialized finite domains`: http://codespeak.net/svn/pypy/extradoc/soc-2006/constraints.txt
-.. _`py.test`: http://codespeak.net/py/current/doc/test.html
-.. _`py.execnet`: http://codespeak.net/py/current/doc/execnet.html
 .. _`object spaces`: objspace.html
 .. _`code templating solution`: http://codespeak.net/svn/pypy/extradoc/soc-2006/code-templating.txt
 

diff --git a/py/bin/_findpy.py b/py/bin/_findpy.py
deleted file mode 100644
--- a/py/bin/_findpy.py
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env python 
-
-#
-# find and import a version of 'py'
-#
-import sys
-import os
-from os.path import dirname as opd, exists, join, basename, abspath
-
-def searchpy(current):
-    while 1:
-        last = current
-        initpy = join(current, '__init__.py')
-        if not exists(initpy):
-            pydir = join(current, 'py')
-            # recognize py-package and ensure it is importable
-            if exists(pydir) and exists(join(pydir, '__init__.py')):
-                #for p in sys.path:
-                #    if p == current:
-                #        return True
-                if current != sys.path[0]:  # if we are already first, then ok
-                    sys.stderr.write("inserting into sys.path: %s\n" % current)
-                    sys.path.insert(0, current)
-                return True
-        current = opd(current)
-        if last == current:
-            return False
-
-if not searchpy(abspath(os.curdir)):
-    if not searchpy(opd(abspath(sys.argv[0]))):
-        if not searchpy(opd(__file__)):
-            pass # let's hope it is just on sys.path 
-
-import py
-
-if __name__ == '__main__': 
-    print ("py lib is at %s" % py.__file__)

diff --git a/pypy/doc/getting-started-dev.txt b/pypy/doc/getting-started-dev.txt
--- a/pypy/doc/getting-started-dev.txt
+++ b/pypy/doc/getting-started-dev.txt
@@ -207,32 +207,52 @@
 Running PyPy's unit tests
 -------------------------
 
-The PyPy project uses test-driven-development.  Right now, there are
-a couple of different categories of tests which you can run.
-To run all the unit tests::
+PyPy development always was and is still thorougly test-driven. 
+We use the flexible `py.test testing tool`_ which you can `install independently
+<http://pytest.org/getting-started.html>`_ and use indepedently
+from PyPy for other projects.
 
-    cd pypy
-    python test_all.py
+The PyPy source tree comes with an inlined version of ``py.test``
+which you can invoke by typing::
 
-(this is not recommended, since it takes hours and uses huge amounts of RAM).
-Alternatively, you may run subtests by going to the correct subdirectory
-and running them individually::
+    python pytest.py -h
 
-    python test_all.py interpreter/test/test_pyframe.py
+This is usually equivalent to using an installed version::
 
-``test_all.py`` is actually just a synonym for `py.test`_ which is 
-our external testing tool. If you have installed that you 
-can as well just issue ``py.test DIRECTORY_OR_FILE`` in order 
-to perform test runs or simply start it without arguments to 
-run all tests below the current directory. 
+    py.test -h
 
-Finally, there are the CPython regression tests which you can 
-run like this (this will take hours and hours and hours)::
+If you encounter problems with the installed version
+make sure you have the correct version installed which
+you can find out with the ``--version`` switch.
 
-    cd lib-python/2.5.2/test 
-    python ../../../pypy/test_all.py
+Now on to running some tests.  PyPy has many different test directories
+and you can use shell completion to point at directories or files::
 
-.. _`installed py.test`: https://codespeak.net/py/current/doc/download.html
+    py.test pypy/interpreter/test/test_pyframe.py
+
+    # or for running tests of a whole subdirectory
+    py.test pypy/interpreter/
+
+See `py.test usage and invocations`_ for some more generic info 
+on how you can run tests.
+
+Beware trying to run "all" pypy tests by pointing to the root
+directory or even the top level subdirectory ``pypy``.  It takes
+hours and uses huge amounts of RAM and is not recommended.
+
+To run CPython regression tests you can point to the ``lib-python``
+directory::
+
+    py.test lib-python/2.7.0/test/test_datetime.py
+
+This will usually take a long time because this will run
+the PyPy Python interpreter on top of CPython.  On the plus
+side, it's usually still faster than doing a full translation
+and running the regression test with the translated PyPy Python
+interpreter.
+
+.. _`py.test testing tool`: http://pytest.org
+.. _`py.test usage and invocations`: http://pytest.org/usage.html#usage
 
 Special Introspection Features of the Untranslated Python Interpreter
 ---------------------------------------------------------------------
@@ -345,14 +365,13 @@
 py.test and the py lib 
 +++++++++++++++++++++++
 
-The `py library`_ is used for supporting PyPy development and 
-running our tests against code and documentation as well as
-compliance tests.  You don't need to install the py library because 
-it ships with PyPy and `pypy/test_all.py`_ is an alias for ``py.test``
-but if you want to have the ``py.test`` tool generally in your 
-path, you might like to visit: 
+The `py.test testing tool`_ drives all our testing needs.
 
-    http://codespeak.net/py/dist/download.html
+We use the `py library`_ for filesystem path manipulations, terminal
+writing, logging and some other support  functionality.
+
+You don't neccessarily need to install these two libraries because 
+we also ship them inlined in the PyPy source tree.
 
 Getting involved 
 -----------------
@@ -370,7 +389,7 @@
 .. _`pypy-dev mailing list`: http://codespeak.net/mailman/listinfo/pypy-dev
 .. _`contact possibilities`: index.html
 
-.. _`py library`: http://codespeak.net/py 
+.. _`py library`: http://pylib.org
 
 .. _`Spidermonkey`: http://www.mozilla.org/js/spidermonkey/
 

diff --git a/pytest.py b/pytest.py
--- a/pytest.py
+++ b/pytest.py
@@ -1,12 +1,30 @@
 """
 unit and functional testing with Python.
+(pypy version of startup script)
 """
-__version__ = '2.0.2.dev4'
+__version__ = '2.0.2.dev5' # base pytest version
 __all__ = ['main']
 
 from _pytest.core import main, UsageError, _preloadplugins
 from _pytest import core as cmdline
 
+# This pytest.py script is located in the pypy source tree
+# which has a copy of pytest and py within its source tree.
+# If the environment also has an installed version of pytest/py
+# we are bound to get warnings so we disable them.
+# XXX eventually pytest and py should not be inlined shipped
+# with the pypy source code but become a requirement for installation.
+
+import warnings
+warnings.filterwarnings("ignore",
+    "Module py was already imported", category=UserWarning)
+warnings.filterwarnings("ignore",
+    "Module _pytest was already imported",
+    category=UserWarning)
+warnings.filterwarnings("ignore",
+    "Module pytest was already imported",
+    category=UserWarning)
+
 if __name__ == '__main__': # if run as a script or by 'python -m pytest'
     raise SystemExit(main())
 else:


More information about the Pypy-commit mailing list