From commits-noreply at bitbucket.org Sun Aug 1 15:19:51 2010 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Sun, 1 Aug 2010 13:19:51 +0000 (UTC) Subject: [py-svn] apipkg commit e31678d39e27: Added tag 1.0b6 for changeset 6cb3976c8d8a Message-ID: <20100801131951.3A6895D624@bitbucket.org> # HG changeset patch -- Bitbucket.org # Project apipkg # URL http://bitbucket.org/hpk42/apipkg/overview # User holger krekel # Date 1280233374 -7200 # Node ID e31678d39e272aabc016355eda6aab0149518eb1 # Parent 6cb3976c8d8aac3d332ed8f507cfdad34b4279a1 Added tag 1.0b6 for changeset 6cb3976c8d8a --- a/.hgtags +++ b/.hgtags @@ -1,2 +1,3 @@ 4e25c6a58cb618bdcd061289dd66b3ceb11a495a 1.0.0b5 976aa691cfaeeb9793057d09ae9f9e6fd162be69 1.0b5 +6cb3976c8d8aac3d332ed8f507cfdad34b4279a1 1.0b6 From commits-noreply at bitbucket.org Sun Aug 1 15:19:51 2010 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Sun, 1 Aug 2010 13:19:51 +0000 (UTC) Subject: [py-svn] apipkg commit 031b6257823a: rewire the chdir insensibility test from execnet to subprocess Message-ID: <20100801131951.70CAC5D61B@bitbucket.org> # HG changeset patch -- Bitbucket.org # Project apipkg # URL http://bitbucket.org/hpk42/apipkg/overview # User Ronny Pfannschmidt # Date 1280667851 -7200 # Node ID 031b6257823acbd6bfbd49ff67065413ab38921a # Parent ef6f2e4e8c1b97edfd8a946ee1fe84d719b99482 rewire the chdir insensibility test from execnet to subprocess --- a/test_apipkg.py +++ b/test_apipkg.py @@ -2,6 +2,7 @@ import types import sys import py import apipkg +import subprocess # # test support for importing modules # @@ -305,7 +306,6 @@ def test_bpython_getattr_override(tmpdir def test_chdir_with_relative_imports_shouldnt_break_lazy_loading(tmpdir): - execnet = py.test.importorskip('execnet') pkg = tmpdir.mkdir('pkg') messy = tmpdir.mkdir('messy') pkg.join('__init__.py').write(py.code.Source(""" @@ -315,21 +315,22 @@ def test_chdir_with_relative_imports_sho }) """)) pkg.join('sub.py').write('def test(): pass') - gw = execnet.makegateway() - def remote(channel, pkg, mess): + tmpdir.join('main.py').write(py.code.Source(""" import os import sys sys.path.insert(0, '') - os.chdir(pkg) import pkg import py py.builtin.print_(pkg.__path__, file=sys.stderr) py.builtin.print_(pkg.__file__, file=sys.stderr) py.builtin.print_(pkg, file=sys.stderr) - os.chdir(mess) + os.chdir('messy') pkg.test() - ch = gw.remote_exec(remote, pkg=str(tmpdir), mess=str(messy)) - ch.waitclose() + """)) + res = subprocess.call( + ['python', 'main.py'], + cwd=str(tmpdir), + ) + assert res == 0 - From commits-noreply at bitbucket.org Sun Aug 1 15:19:51 2010 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Sun, 1 Aug 2010 13:19:51 +0000 (UTC) Subject: [py-svn] apipkg commit ef6f2e4e8c1b: turn package paths absolute, so we dont get surprised via chdir Message-ID: <20100801131951.56DF45D627@bitbucket.org> # HG changeset patch -- Bitbucket.org # Project apipkg # URL http://bitbucket.org/hpk42/apipkg/overview # User Ronny Pfannschmidt # Date 1280667205 -7200 # Node ID ef6f2e4e8c1b97edfd8a946ee1fe84d719b99482 # Parent 6cb3976c8d8aac3d332ed8f507cfdad34b4279a1 turn package paths absolute, so we dont get surprised via chdir --- a/test_apipkg.py +++ b/test_apipkg.py @@ -192,7 +192,7 @@ def test_initpkg_transfers_attrs(monkeyp apipkg.initpkg('hello', {}) newmod = sys.modules['hello'] assert newmod != mod - assert newmod.__file__ == mod.__file__ + assert newmod.__file__ == py.path.local(mod.__file__) assert newmod.__version__ == mod.__version__ assert newmod.__loader__ == mod.__loader__ @@ -203,7 +203,7 @@ def test_initpkg_not_transfers_not_exist apipkg.initpkg('hello', {}) newmod = sys.modules['hello'] assert newmod != mod - assert newmod.__file__ == mod.__file__ + assert newmod.__file__ == py.path.local(mod.__file__) assert not hasattr(newmod, '__loader__') assert not hasattr(newmod, '__path__') @@ -300,4 +300,36 @@ def test_bpython_getattr_override(tmpdir }) d = api.__dict__ assert 'abspath' in d - + + + + +def test_chdir_with_relative_imports_shouldnt_break_lazy_loading(tmpdir): + execnet = py.test.importorskip('execnet') + pkg = tmpdir.mkdir('pkg') + messy = tmpdir.mkdir('messy') + pkg.join('__init__.py').write(py.code.Source(""" + import apipkg + apipkg.initpkg(__name__, { + 'test': '.sub:test', + }) + """)) + pkg.join('sub.py').write('def test(): pass') + gw = execnet.makegateway() + + def remote(channel, pkg, mess): + import os + import sys + sys.path.insert(0, '') + os.chdir(pkg) + import pkg + import py + py.builtin.print_(pkg.__path__, file=sys.stderr) + py.builtin.print_(pkg.__file__, file=sys.stderr) + py.builtin.print_(pkg, file=sys.stderr) + os.chdir(mess) + pkg.test() + ch = gw.remote_exec(remote, pkg=str(tmpdir), mess=str(messy)) + ch.waitclose() + + --- a/apipkg.py +++ b/apipkg.py @@ -5,6 +5,7 @@ see http://pypi.python.org/pypi/apipkg (c) holger krekel, 2009 - MIT license """ +import os import sys from types import ModuleType @@ -14,11 +15,16 @@ def initpkg(pkgname, exportdefs): """ initialize given package from the export definitions. """ mod = ApiModule(pkgname, exportdefs, implprefix=pkgname) oldmod = sys.modules[pkgname] - mod.__file__ = getattr(oldmod, '__file__', None) + file = getattr(oldmod, '__file__', None) + if file: + file = os.path.abspath(file) + mod.__file__ = file mod.__version__ = getattr(oldmod, '__version__', '0') - for name in ('__path__', '__loader__'): - if hasattr(oldmod, name): - setattr(mod, name, getattr(oldmod, name)) + if hasattr(oldmod, '__loader__'): + mod.__loader__ = oldmod.__loader__ + if hasattr(oldmod, '__path__'): + mod.__path__ = [os.path.abspath(p) for p in oldmod.__path__] + sys.modules[pkgname] = mod def importobj(modpath, attrname): From commits-noreply at bitbucket.org Sun Aug 1 15:19:51 2010 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Sun, 1 Aug 2010 13:19:51 +0000 (UTC) Subject: [py-svn] apipkg commit 69b6f42e005c: merge ronny's changes, fix for py3 and added a tox.ini Message-ID: <20100801131951.8A0945D62A@bitbucket.org> # HG changeset patch -- Bitbucket.org # Project apipkg # URL http://bitbucket.org/hpk42/apipkg/overview # User holger krekel # Date 1280668765 -7200 # Node ID 69b6f42e005c7ab969722dc79dc1123e424888f0 # Parent e31678d39e272aabc016355eda6aab0149518eb1 # Parent 031b6257823acbd6bfbd49ff67065413ab38921a merge ronny's changes, fix for py3 and added a tox.ini bump version to 1.0b7 --- a/test_apipkg.py +++ b/test_apipkg.py @@ -2,6 +2,7 @@ import types import sys import py import apipkg +import subprocess # # test support for importing modules # @@ -192,7 +193,7 @@ def test_initpkg_transfers_attrs(monkeyp apipkg.initpkg('hello', {}) newmod = sys.modules['hello'] assert newmod != mod - assert newmod.__file__ == mod.__file__ + assert newmod.__file__ == py.path.local(mod.__file__) assert newmod.__version__ == mod.__version__ assert newmod.__loader__ == mod.__loader__ @@ -203,7 +204,7 @@ def test_initpkg_not_transfers_not_exist apipkg.initpkg('hello', {}) newmod = sys.modules['hello'] assert newmod != mod - assert newmod.__file__ == mod.__file__ + assert newmod.__file__ == py.path.local(mod.__file__) assert not hasattr(newmod, '__loader__') assert not hasattr(newmod, '__path__') @@ -284,7 +285,7 @@ def test_onfirstaccess_setsnewattr(tmpdi if mode == 'attr': assert mod.newattr == 42 elif mode == "dict": - print mod.__dict__.keys() + print (list(mod.__dict__.keys())) assert 'newattr' in mod.__dict__ elif mode == "onfirst": assert not hasattr(mod, '__onfirstaccess__') @@ -300,4 +301,36 @@ def test_bpython_getattr_override(tmpdir }) d = api.__dict__ assert 'abspath' in d - + + + + +def test_chdir_with_relative_imports_shouldnt_break_lazy_loading(tmpdir): + pkg = tmpdir.mkdir('pkg') + messy = tmpdir.mkdir('messy') + pkg.join('__init__.py').write(py.code.Source(""" + import apipkg + apipkg.initpkg(__name__, { + 'test': '.sub:test', + }) + """)) + pkg.join('sub.py').write('def test(): pass') + + tmpdir.join('main.py').write(py.code.Source(""" + import os + import sys + sys.path.insert(0, '') + import pkg + import py + py.builtin.print_(pkg.__path__, file=sys.stderr) + py.builtin.print_(pkg.__file__, file=sys.stderr) + py.builtin.print_(pkg, file=sys.stderr) + os.chdir('messy') + pkg.test() + """)) + res = subprocess.call( + ['python', 'main.py'], + cwd=str(tmpdir), + ) + assert res == 0 + --- a/apipkg.py +++ b/apipkg.py @@ -5,20 +5,26 @@ see http://pypi.python.org/pypi/apipkg (c) holger krekel, 2009 - MIT license """ +import os import sys from types import ModuleType -__version__ = "1.0b6" +__version__ = "1.0b7" def initpkg(pkgname, exportdefs): """ initialize given package from the export definitions. """ mod = ApiModule(pkgname, exportdefs, implprefix=pkgname) oldmod = sys.modules[pkgname] - mod.__file__ = getattr(oldmod, '__file__', None) + file = getattr(oldmod, '__file__', None) + if file: + file = os.path.abspath(file) + mod.__file__ = file mod.__version__ = getattr(oldmod, '__version__', '0') - for name in ('__path__', '__loader__'): - if hasattr(oldmod, name): - setattr(mod, name, getattr(oldmod, name)) + if hasattr(oldmod, '__loader__'): + mod.__loader__ = oldmod.__loader__ + if hasattr(oldmod, '__path__'): + mod.__path__ = [os.path.abspath(p) for p in oldmod.__path__] + sys.modules[pkgname] = mod def importobj(modpath, attrname): --- /dev/null +++ b/tox.ini @@ -0,0 +1,12 @@ +[tox] +envlist=py27,py26,py25,py24,py31 + +[tox:hudson] +sdistsrc={distshare}/apipkg-* + +[testenv] +commands= + py.test --junitxml={envlogdir}/junit-{envname}.xml [] +deps= + {distshare}/py-* + --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,9 @@ +1.0.0b7 +---------------------------------------- + +- make apipkg memorize the absolute path where a package starts + importing so that subsequent chdir + imports won't break. + 1.0.0b6 ---------------------------------------- From commits-noreply at bitbucket.org Sun Aug 1 20:42:39 2010 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Sun, 1 Aug 2010 18:42:39 +0000 (UTC) Subject: [py-svn] apipkg commit b3d10fd5ae0b: changing apipkg.py - test is in py-trunk, i did not succeed extracting Message-ID: <20100801184239.C43F85D5F1@bitbucket.org> # HG changeset patch -- Bitbucket.org # Project apipkg # URL http://bitbucket.org/hpk42/apipkg/overview # User holger krekel # Date 1280688134 -7200 # Node ID b3d10fd5ae0b3669eed0f7eb0701dc19ac12858c # Parent 69b6f42e005c7ab969722dc79dc1123e424888f0 changing apipkg.py - test is in py-trunk, i did not succeed extracting a test for apipkg.py :( --- a/.hgignore +++ b/.hgignore @@ -8,6 +8,8 @@ syntax:glob *.html *.class +.tox + build dist apipkg.egg-info --- a/apipkg.py +++ b/apipkg.py @@ -13,18 +13,19 @@ __version__ = "1.0b7" def initpkg(pkgname, exportdefs): """ initialize given package from the export definitions. """ - mod = ApiModule(pkgname, exportdefs, implprefix=pkgname) oldmod = sys.modules[pkgname] - file = getattr(oldmod, '__file__', None) - if file: - file = os.path.abspath(file) - mod.__file__ = file - mod.__version__ = getattr(oldmod, '__version__', '0') + d = {} + f = getattr(oldmod, '__file__', None) + if f: + f = os.path.abspath(f) + d['__file__'] = f + d['__version__'] = getattr(oldmod, '__version__', '0') if hasattr(oldmod, '__loader__'): - mod.__loader__ = oldmod.__loader__ + d['__loader__'] = oldmod.__loader__ if hasattr(oldmod, '__path__'): - mod.__path__ = [os.path.abspath(p) for p in oldmod.__path__] - + d['__path__'] = [os.path.abspath(p) for p in oldmod.__path__] + oldmod.__dict__.update(d) + mod = ApiModule(pkgname, exportdefs, implprefix=pkgname, attr=d) sys.modules[pkgname] = mod def importobj(modpath, attrname): @@ -32,11 +33,15 @@ def importobj(modpath, attrname): return getattr(module, attrname) class ApiModule(ModuleType): - def __init__(self, name, importspec, implprefix=None): + def __init__(self, name, importspec, implprefix=None, attr=None): self.__name__ = name self.__all__ = [x for x in importspec if x != '__onfirstaccess__'] self.__map__ = {} self.__implprefix__ = implprefix or name + if attr: + for name, val in attr.items(): + #print "setting", self.__name__, name, val + setattr(self, name, val) for name, importspec in importspec.items(): if isinstance(importspec, dict): subname = '%s.%s'%(self.__name__, name) @@ -64,6 +69,7 @@ class ApiModule(ModuleType): def __makeattr(self, name): """lazily compute value for name or raise AttributeError if unknown.""" + #print "makeattr", self.__name__, name target = None if '__onfirstaccess__' in self.__map__: target = self.__map__.pop('__onfirstaccess__') From commits-noreply at bitbucket.org Sun Aug 1 20:43:57 2010 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Sun, 1 Aug 2010 18:43:57 +0000 (UTC) Subject: [py-svn] py-trunk commit f37b61032c11: add 1.3.3 release "announcement" Message-ID: <20100801184357.7B86E47831@bitbucket.org> # HG changeset patch -- Bitbucket.org # Project py-trunk # URL http://bitbucket.org/hpk42/py-trunk/overview # User holger krekel # Date 1280668919 -7200 # Node ID f37b61032c119cfa7b9c7ccd6bd875038d6d917d # Parent cfc1fd2ebd1679e3aca6c8bc1054f5d3a8cbacc7 add 1.3.3 release "announcement" --- /dev/null +++ b/doc/announce/release-1.3.3.txt @@ -0,0 +1,26 @@ +py.test/pylib 1.3.3: windows and other fixes +=========================================================================== + +pylib/py.test 1.3.3 is a minor bugfix release featuring some improvements +and fixes. See changelog_ for full history. + +have fun, +holger krekel + +.. _changelog: ../changelog.html + +Changes between 1.3.2 and 1.3.3 +================================================== + +- fix issue113: assertion representation problem with triple-quoted strings + (and possibly other cases) +- make conftest loading detect that a conftest file with the same + content was already loaded, avoids surprises in nested directory structures + which can be produced e.g. by Hudson. It probably removes the need to use + --confcutdir in most cases. +- fix terminal coloring for win32 + (thanks Michael Foord for reporting) +- fix weirdness: make terminal width detection work on stdout instead of stdin + (thanks Armin Ronacher for reporting) +- remove trailing whitespace in all py/text distribution files + From commits-noreply at bitbucket.org Sun Aug 1 20:43:57 2010 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Sun, 1 Aug 2010 18:43:57 +0000 (UTC) Subject: [py-svn] py-trunk commit 59d0e0018fd7: test and fix for apipkg (also available in apipkg default branch) Message-ID: <20100801184357.B42BB47834@bitbucket.org> # HG changeset patch -- Bitbucket.org # Project py-trunk # URL http://bitbucket.org/hpk42/py-trunk/overview # User holger krekel # Date 1280688182 -7200 # Node ID 59d0e0018fd75ad6a5af19cbac2ef56a9cae601a # Parent f37b61032c119cfa7b9c7ccd6bd875038d6d917d test and fix for apipkg (also available in apipkg default branch) --- a/testing/acceptance_test.py +++ b/testing/acceptance_test.py @@ -147,3 +147,19 @@ class TestGeneralUsage: result = testdir.runpytest() assert result.ret == 0 assert "should not be seen" not in result.stdout.str() + + @py.test.mark.skipif("not hasattr(os, 'symlink')") + def test_chdir(self, testdir): + testdir.tmpdir.join("py").mksymlinkto(py._pydir) + p = testdir.tmpdir.join("main.py") + p.write(py.code.Source(""" + import sys, os + sys.path.insert(0, '') + import py + print (py.__file__) + print (py.__path__) + os.chdir(os.path.dirname(os.getcwd())) + print (py.log.Producer) + """)) + result = testdir.runpython(p, prepend=False) + assert not result.ret --- a/py/_plugin/pytest_pytester.py +++ b/py/_plugin/pytest_pytester.py @@ -326,10 +326,11 @@ class TmpTestdir: (str(py._pydir.dirpath()), cmdlinename)) return (sys.executable, "-c", source,) - def runpython(self, script): - s = self._getsysprepend() - if s: - script.write(s + "\n" + script.read()) + def runpython(self, script, prepend=True): + if prepend: + s = self._getsysprepend() + if s: + script.write(s + "\n" + script.read()) return self.run(sys.executable, script) def _getsysprepend(self): --- a/py/apipkg.py +++ b/py/apipkg.py @@ -5,20 +5,27 @@ see http://pypi.python.org/pypi/apipkg (c) holger krekel, 2009 - MIT license """ +import os import sys from types import ModuleType -__version__ = "1.0b6" +__version__ = "1.0b7" def initpkg(pkgname, exportdefs): """ initialize given package from the export definitions. """ - mod = ApiModule(pkgname, exportdefs, implprefix=pkgname) oldmod = sys.modules[pkgname] - mod.__file__ = getattr(oldmod, '__file__', None) - mod.__version__ = getattr(oldmod, '__version__', '0') - for name in ('__path__', '__loader__'): - if hasattr(oldmod, name): - setattr(mod, name, getattr(oldmod, name)) + d = {} + f = getattr(oldmod, '__file__', None) + if f: + f = os.path.abspath(f) + d['__file__'] = f + d['__version__'] = getattr(oldmod, '__version__', '0') + if hasattr(oldmod, '__loader__'): + d['__loader__'] = oldmod.__loader__ + if hasattr(oldmod, '__path__'): + d['__path__'] = [os.path.abspath(p) for p in oldmod.__path__] + oldmod.__dict__.update(d) + mod = ApiModule(pkgname, exportdefs, implprefix=pkgname, attr=d) sys.modules[pkgname] = mod def importobj(modpath, attrname): @@ -26,11 +33,15 @@ def importobj(modpath, attrname): return getattr(module, attrname) class ApiModule(ModuleType): - def __init__(self, name, importspec, implprefix=None): + def __init__(self, name, importspec, implprefix=None, attr=None): self.__name__ = name self.__all__ = [x for x in importspec if x != '__onfirstaccess__'] self.__map__ = {} self.__implprefix__ = implprefix or name + if attr: + for name, val in attr.items(): + #print "setting", self.__name__, name, val + setattr(self, name, val) for name, importspec in importspec.items(): if isinstance(importspec, dict): subname = '%s.%s'%(self.__name__, name) @@ -58,6 +69,7 @@ class ApiModule(ModuleType): def __makeattr(self, name): """lazily compute value for name or raise AttributeError if unknown.""" + #print "makeattr", self.__name__, name target = None if '__onfirstaccess__' in self.__map__: target = self.__map__.pop('__onfirstaccess__') From commits-noreply at bitbucket.org Sun Aug 1 20:44:37 2010 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Sun, 1 Aug 2010 18:44:37 +0000 (UTC) Subject: [py-svn] py-trunk commit a62793ba63d1: bumping version number to 1.3.4a1 Message-ID: <20100801184437.7FB477EE7D@bitbucket.org> # HG changeset patch -- Bitbucket.org # Project py-trunk # URL http://bitbucket.org/hpk42/py-trunk/overview # User holger krekel # Date 1280688251 -7200 # Node ID a62793ba63d19cbecfaaf5c1b94f04477fa0a8b2 # Parent 59d0e0018fd75ad6a5af19cbac2ef56a9cae601a bumping version number to 1.3.4a1 --- a/setup.py +++ b/setup.py @@ -26,7 +26,7 @@ def main(): name='py', description='py.test and pylib: rapid testing and development utils.', long_description = long_description, - version= '1.3.3', + version= '1.3.4a1', url='http://pylib.org', license='MIT license', platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'], --- a/py/__init__.py +++ b/py/__init__.py @@ -8,7 +8,7 @@ dictionary or an import path. (c) Holger Krekel and others, 2004-2010 """ -__version__ = version = "1.3.3" +__version__ = version = "1.3.4a1" import py.apipkg From commits-noreply at bitbucket.org Mon Aug 2 16:42:25 2010 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Mon, 2 Aug 2010 14:42:25 +0000 (UTC) Subject: [py-svn] py-trunk commit 971cc7cb03bb: committed a xfailing test for sibling conftests Message-ID: <20100802144225.11FD547831@bitbucket.org> # HG changeset patch -- Bitbucket.org # Project py-trunk # URL http://bitbucket.org/hpk42/py-trunk/overview # User holger krekel # Date 1280759976 -7200 # Node ID 971cc7cb03bb49131642fb6ab06a7ca38a2f5094 # Parent a62793ba63d19cbecfaaf5c1b94f04477fa0a8b2 committed a xfailing test for sibling conftests --- a/testing/test_collect.py +++ b/testing/test_collect.py @@ -266,6 +266,35 @@ class TestRootCol: col2 = config._rootcol.fromtrail(trail) assert col2 == col + @py.test.mark.xfail(reason="http://bitbucket.org/hpk42/py-trunk/issue/109") + def test_sibling_conftest_issue109(self, testdir): + """ + This test is to make sure that the conftest.py of sibling directories is not loaded + if py.test is run for/in one of the siblings directory and those sibling directories + are not packaged together with an __init__.py. See bitbucket issue #109. + """ + for dirname in ['a', 'b']: + testdir.tmpdir.ensure(dirname, dir=True) + testdir.tmpdir.ensure(dirname, '__init__.py') + + # To create the conftest.py I would like to use testdir.make*-methods + # but as far as I have seen they can only create files in testdir.tempdir + # Maybe there is a way to explicitly specifiy the directory on which those + # methods work or a completely better way to do that? + backupTmpDir = testdir.tmpdir + testdir.tmpdir = testdir.tmpdir.join(dirname) + testdir.makeconftest(""" + _DIR_NAME = '%s' + def pytest_configure(config): + if config.args and config.args[0] != _DIR_NAME: + raise Exception("py.test run for '" + config.args[0] + "', but '" + _DIR_NAME + "/conftest.py' loaded.") + """ % dirname) + testdir.tmpdir = backupTmpDir + + for dirname, other_dirname in [('a', 'b'), ('b', 'a')]: + result = testdir.runpytest(dirname) + assert result.ret == 0, "test_sibling_conftest: py.test run for '%s', but '%s/conftest.py' loaded." % (dirname, other_dirname) + def test_totrail_topdir_and_beyond(self, testdir, tmpdir): config = testdir.reparseconfig() col = config.getnode(config.topdir) From py-svn at codespeak.net Tue Aug 10 14:12:26 2010 From: py-svn at codespeak.net (py-svn at codespeak.net) Date: Tue, 10 Aug 2010 14:12:26 +0200 (CEST) Subject: [py-svn] py-svn@codespeak.net, Best prices on mojo tabs Message-ID: <20100810121226.CFBF9282BDB@codespeak.net> An HTML attachment was scrubbed... URL: From py-svn at codespeak.net Tue Aug 17 21:39:49 2010 From: py-svn at codespeak.net (py-svn at codespeak.net) Date: Tue, 17 Aug 2010 21:39:49 +0200 (CEST) Subject: py-svn@codespeak.net VIAGRA ® Official Seller -71% Message-ID: <20100817193945.2996.qmail@line173-87.adsl.kirov.ru> Dear py-svn at codespeak.net Get ready to make her happy. Discount price store: ID3995240 http://groups.yahoo.com/group/ncggrzbqvgq/message We do guarantee high-quality medications, instant worldwide delivery and friendly support. ? 2001-2010 Pfizer Inc. All rights reserved. From py-svn at codespeak.net Mon Aug 30 00:26:02 2010 From: py-svn at codespeak.net (py-svn at codespeak.net) Date: Mon, 30 Aug 2010 00:26:02 +0200 (CEST) Subject: py-svn@codespeak.net V|AGRA ® Official Seller -03% Message-ID: <20100829222602.ED467282B9E@codespeak.net> An HTML attachment was scrubbed... URL: