diff --git a/.hgtags b/.hgtags
index e7d4c2504..b62d8e610 100644
--- a/.hgtags
+++ b/.hgtags
@@ -13,3 +13,6 @@ c63f35c266cbb26dad6b87b5e115d65685adf448 1.0.0b8
c63f35c266cbb26dad6b87b5e115d65685adf448 1.0.0b8
0eaa0fdf2ba0163cf534dc2eff4ba2e5fc66c261 1.0.0b8
e2a60653cb490aeed81bbbd83c070b99401c211c 1.0.0b9
+5ea0cdf7854c3d4278d36eda94a2b68483a0e211 1.0.0
+5ea0cdf7854c3d4278d36eda94a2b68483a0e211 1.0.0
+7acde360d94b6a2690ce3d03ff39301da84c0a2b 1.0.0
diff --git a/CHANGELOG b/CHANGELOG
index f8bfbf540..b63730885 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,9 @@
+Changes between 1.0.0b9 and 1.0.0
+=====================================
+
+* more terse reporting try to show filesystem path relatively to current dir
+* improve xfail output a bit
+
Changes between 1.0.0b8 and 1.0.0b9
=====================================
diff --git a/MANIFEST b/MANIFEST
index 90fa7a29f..b0d3f21f5 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -28,17 +28,18 @@ doc/test/examples.txt
doc/test/extend.txt
doc/test/features.txt
doc/test/funcargs.txt
+doc/test/plugin/capture.txt
doc/test/plugin/doctest.txt
doc/test/plugin/figleaf.txt
doc/test/plugin/hooklog.txt
doc/test/plugin/hookspec.txt
doc/test/plugin/index.txt
-doc/test/plugin/iocapture.txt
doc/test/plugin/keyword.txt
+doc/test/plugin/links.txt
doc/test/plugin/monkeypatch.txt
doc/test/plugin/oejskit.txt
+doc/test/plugin/pastebin.txt
doc/test/plugin/pdb.txt
-doc/test/plugin/pocoo.txt
doc/test/plugin/recwarn.txt
doc/test/plugin/restdoc.txt
doc/test/plugin/resultlog.txt
@@ -59,7 +60,9 @@ example/execnet/svn-sync-repo.py
example/execnet/sysinfo.py
example/funcarg/conftest.py
example/funcarg/costlysetup/conftest.py
+example/funcarg/costlysetup/sub1/__init__.py
example/funcarg/costlysetup/sub1/test_quick.py
+example/funcarg/costlysetup/sub2/__init__.py
example/funcarg/costlysetup/sub2/test_two.py
example/funcarg/mysetup/__init__.py
example/funcarg/mysetup/conftest.py
@@ -315,6 +318,7 @@ py/test/dist/dsession.py
py/test/dist/mypickle.py
py/test/dist/nodemanage.py
py/test/dist/testing/__init__.py
+py/test/dist/testing/acceptance_test.py
py/test/dist/testing/test_dsession.py
py/test/dist/testing/test_mypickle.py
py/test/dist/testing/test_nodemanage.py
@@ -333,28 +337,27 @@ py/test/plugin/__init__.py
py/test/plugin/conftest.py
py/test/plugin/hookspec.py
py/test/plugin/pytest__pytest.py
+py/test/plugin/pytest_capture.py
py/test/plugin/pytest_default.py
py/test/plugin/pytest_doctest.py
py/test/plugin/pytest_execnetcleanup.py
py/test/plugin/pytest_figleaf.py
py/test/plugin/pytest_hooklog.py
-py/test/plugin/pytest_iocapture.py
py/test/plugin/pytest_keyword.py
py/test/plugin/pytest_monkeypatch.py
+py/test/plugin/pytest_pastebin.py
py/test/plugin/pytest_pdb.py
-py/test/plugin/pytest_pocoo.py
py/test/plugin/pytest_pylint.py
py/test/plugin/pytest_pytester.py
py/test/plugin/pytest_recwarn.py
py/test/plugin/pytest_restdoc.py
-py/test/plugin/pytest_resultdb.py
py/test/plugin/pytest_resultlog.py
py/test/plugin/pytest_runner.py
py/test/plugin/pytest_terminal.py
py/test/plugin/pytest_tmpdir.py
py/test/plugin/pytest_unittest.py
py/test/plugin/pytest_xfail.py
-py/test/plugin/test_pytest_iocapture.py
+py/test/plugin/test_pytest_capture.py
py/test/plugin/test_pytest_runner.py
py/test/plugin/test_pytest_runner_xunit.py
py/test/plugin/test_pytest_terminal.py
diff --git a/py/test/plugin/pytest_resultdb.py b/contrib/pytest_resultdb.py
similarity index 100%
rename from py/test/plugin/pytest_resultdb.py
rename to contrib/pytest_resultdb.py
diff --git a/doc/announce/release-1.0.0.txt b/doc/announce/release-1.0.0.txt
index ee0e662ec..fd7b9c7e1 100644
--- a/doc/announce/release-1.0.0.txt
+++ b/doc/announce/release-1.0.0.txt
@@ -1,54 +1,63 @@
-py.test / py lib 1.0.0: new test plugins, funcargs and cleanups
-============================================================================
-Welcome to the 1.0 release bringing new flexibility and
-power to testing with Python. Main news:
+pylib 1.0.0 released: testing-with-python innovations continue
+--------------------------------------------------------------------
-* funcargs - new flexibilty and zero-boilerplate fixtures for Python testing:
+Took a few betas but finally i uploaded a `1.0.0 py lib release`_,
+featuring the mature and powerful py.test tool and "execnet-style"
+*elastic* distributed programming. With the new release, there are
+many new advanced automated testing features - here is a quick summary:
- - separate test code, configuration and setup
+* funcargs_ - pythonic zero-boilerplate fixtures for Python test functions :
+
+ - totally separates test code, test configuration and test setup
- ideal for integration and functional tests
- - more powerful dynamic generation of tests
+ - allows for flexible and natural test parametrization schemes
-* new plugin architecture, allowing project-specific and
- cross-project single-file plugins. Many useful examples
- shipped by default:
+* new `plugin architecture`_, allowing easy-to-write project-specific and cross-project single-file plugins. The most notable new external plugin is `oejskit`_ which naturally enables **running and reporting of javascript-unittests in real-life browsers**.
- * pytest_unittest.py: run and integrate traditional unittest.py tests
- * pytest_xfail.py: mark tests as "expected to fail" and report separately.
- * pytest_pocoo.py: automatically send tracebacks to pocoo paste service
- * pytest_monkeypatch.py: safely monkeypatch from tests
- * pytest_figleaf.py: generate html coverage reports
- * pytest_resultlog.py: generate buildbot-friendly reporting output
+* many new features done in easy-to-improve `default plugins`_, highlights:
- and many more!
+ * xfail: mark tests as "expected to fail" and report separately.
+ * pastebin: automatically send tracebacks to pocoo paste service
+ * capture: flexibly capture stdout/stderr of subprocesses, per-test ...
+ * monkeypatch: safely monkeypatch modules/classes from within tests
+ * unittest: run and integrate traditional unittest.py tests
+ * figleaf: generate html coverage reports with the figleaf module
+ * resultlog: generate buildbot-friendly reporting output
+ * ...
-* distributed testing and distributed execution (py.execnet):
+* `distributed testing`_ and `elastic distributed execution`_:
- - new unified "TX" URL scheme for specifying remote resources
- - new sync/async ways to handle multiple remote processes
+ - new unified "TX" URL scheme for specifying remote processes
+ - new distribution modes "--dist=each" and "--dist=load"
+ - new sync/async ways to handle 1:N communication
- improved documentation
-See the py.test and py lib documentation for more info:
+The py lib continues to offer most of the functionality used by
+the testing tool in `independent namespaces`_.
+
+Some non-test related code, notably greenlets/co-routines and
+api-generation now live as their own projects which simplifies the
+installation procedure because no C-Extensions are required anymore.
+
+The whole package should work well with Linux, Win32 and OSX, on Python
+2.3, 2.4, 2.5 and 2.6. (Expect Python3 compatibility soon!)
+
+For more info, see the py.test and py lib documentation:
http://pytest.org
+
http://pylib.org
-The py lib now is smaller and focuses more on offering
-functionality used by the py.test tool in independent
-namespaces:
-
-* py.execnet: elastic code deployment to SSH, Socket and local sub processes
-* py.code: higher-level introspection and dynamic generation of python code
-* py.path: path abstractions over local and subversion files
-
-Some non-strictly-test related code, notably greenlets/co-routines
-and apigen now live on their own and have been removed, also simplifying
-the installation procedures.
-
-The whole package works well with Linux, OSX and Win32, on
-Python 2.3, 2.4, 2.5 and 2.6. (Expect Python3 compatibility soon!)
-
-best,
+have fun,
holger
+.. _`independent namespaces`: http://pylib.org
+.. _`funcargs`: http://codespeak.net/py/dist/test/funcargs.html
+.. _`plugin architecture`: http://codespeak.net/py/dist/test/extend.html
+.. _`default plugins`: http://codespeak.net/py/dist/test/plugin/index.html
+.. _`distributed testing`: http://codespeak.net/py/dist/test/dist.html
+.. _`elastic distributed execution`: http://codespeak.net/py/dist/execnet.html
+.. _`1.0.0 py lib release`: http://pypi.python.org/pypi/py
+.. _`oejskit`: http://codespeak.net/py/dist/test/plugin/oejskit.html
+
diff --git a/doc/confrest.py b/doc/confrest.py
index 941b85fcc..c47621a74 100644
--- a/doc/confrest.py
+++ b/doc/confrest.py
@@ -14,6 +14,17 @@ class css:
class Page(object):
doctype = ('\n')
+ googlefragment = """
+
+
+"""
def __init__(self, project, title, targetpath, stylesheeturl=None,
type="text/html", encoding="ISO-8859-1"):
@@ -47,8 +58,10 @@ class Page(object):
def fill_menubar(self):
items = [
self.a_docref("pylib index", "index.html"),
- self.a_docref("py.test index", "test/test.html"),
- self.a_docref("py.test plugins", "test/plugin/index.html"),
+ self.a_docref("test doc-index", "test/test.html"),
+ self.a_docref("test quickstart", "test/quickstart.html"),
+ self.a_docref("test features", "test/features.html"),
+ self.a_docref("test plugins", "test/plugin/index.html"),
self.a_docref("py.execnet", "execnet.html"),
#self.a_docref("py.code", "code.html"),
#self.a_apigenref("api", "api/index.html"),
@@ -91,6 +104,7 @@ class Page(object):
def unicode(self, doctype=True):
page = self._root.unicode()
+ page = page.replace("