tox-2.5.0: little fixes and improvements

2016-11-16 Thread holger krekel
hi all,

tox-2.5.0 was just released to pypi, see

https://tox.readthedocs.org

for docs and the changelog below for details.

Many thanks to 

Oliver Bestwalter, 
Ronny Pfannschmidt, 
Bruno Oliveira, 
Lukasz Rogalski, 
John Vandenberg, 
Florian Bruhin 

and all others who submitted issues and helped resolve them.

best,
holger krekel

2.5.0
--

- slightly backward incompatible: fix issue310: the {posargs} substitution 
  now properly preserves the tox command line positional arguments. Positional 
  arguments with spaces are now properly handled.
  NOTE: if your tox invocation previously used extra quoting for positional 
arguments to
  work around issue310, you need to remove the quoting. Example:
  tox -- "'some string'"  # has to now be written simply as 
  tox -- "some string"
  thanks holger krekel.  You can set ``minversion = 2.5.0`` in the ``[tox]`` 
  section of ``tox.ini`` to make sure people using your tox.ini use the correct 
version.

- fix #359: add COMSPEC to default passenv on windows.  Thanks
  @anthrotype.

- add support for py36 and py37 and add py36-dev and py37(nightly) to
  travis builds of tox. Thanks John Vandenberg.

- fix #348: add py2 and py3 as default environments pointing to
  "python2" and "python3" basepython executables.  Also fix #347 by 
  updating the list of default envs in the tox basic example.
  Thanks Tobias McNulty.

- make "-h" and "--help-ini" options work even if there is no tox.ini,
  thanks holger krekel.

- add {:} substitution, which is replaced with os-specific path
  separator, thanks Lukasz Rogalski.

- fix #305: ``downloadcache`` test env config is now ignored as pip-8
  does caching by default. Thanks holger krekel.

- output from install command in verbose (-vv) mode is now printed to console 
instead of
  being redirected to file, thanks Lukasz Rogalski

- fix #399.  Make sure {envtmpdir} is created if it doesn't exist at the
  start of a testenvironment run. Thanks Manuel Jacob.

- fix #316: Lack of commands key in ini file is now treated as an error.
  Reported virtualenv status is 'nothing to do' instead of 'commands
  succeeded', with relevant error message displayed. Thanks Lukasz Rogalski.
-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


tox-2.4.0 released, moved to github, docs on readthedocs now

2016-10-17 Thread holger krekel

tox-2.4.0 brings some fixes and new features, see the changelog below.  Docs 
are now at:

https://tox.readthedocs.org

and, thanks to Ronny Pfannschmidt, the tox repository is now on github:

https://github.com/tox-dev/tox

also many thanks to Oliver Bestwalter, Alex Grönholm, Stefan Obermann, Danielle 
Jenkins, Ted Shaw, Andrzej Ostrowski and Florian Bruhin who helped with the 
release particularly during the crowd-funded testing sprint we had in Freiburg, 
June 2016.

have testing fun,
holger krekel


2.4.0
-

- remove PYTHONPATH from environment during the install phase because a
  tox-run should not have hidden dependencies and the test commands will also
  not see a PYTHONPATH.  If this causes unforeseen problems it may be
  reverted in a bugfix release.  Thanks Jason R. Coombs.

- fix issue352: prevent a configuration where envdir==toxinidir and
  refine docs to warn people about changing "envdir". Thanks Oliver Bestwalter 
and holger krekel.

- fix issue375, fix issue330: warn against tox-setup.py integration as
  "setup.py test" should really just test with the current interpreter. Thanks 
Ronny Pfannschmidt.

- fix issue302: allow cross-testenv substitution where we substitute
  with ``{x,y}`` generative syntax.  Thanks Andrew Pashkin.

- fix issue212: allow escaping curly brace chars "\{" and "\}" if you need the
  chars "{" and "}" to appear in your commands or other ini values.
  Thanks John Vandenberg.

- addresses issue66: add --workdir option to override where tox stores its 
".tox" directory
  and all of the virtualenv environment.  Thanks Danring.

- introduce per-venv list_dependencies_command which defaults
  to "pip freeze" to obtain the list of installed packages.
  Thanks Ted Shaw, Holger Krekel.

- close issue66: add documentation to jenkins page on how to avoid
  "too long shebang" lines when calling pip from tox.  Note that we
  can not use "python -m pip install X" by default because the latter
  adds the CWD and pip will think X is installed if it is there.
  "pip install X" does not do that.

- new list_dependencies_command to influence how tox determines
  which dependencies are installed in a testenv.

- (experimental) New feature: When a search for a config file fails, tox tries 
loading
  setup.cfg with a section prefix of "tox".

- fix issue275: Introduce hooks ``tox_runtest_pre``` and
  ``tox_runtest_post`` which run before and after the tests of a venv,
  respectively. Thanks to Matthew Schinckel and itxaka serrano.

- fix issue317: evaluate minversion before tox config is parsed completely.
  Thanks Sachi King for the PR.

- added the "extras" environment option to specify the extras to use when doing 
the
  sdist or develop install. Contributed by Alex Grönholm.

- use pytest-catchlog instead of pytest-capturelog (latter is not
  maintained, uses deprecated pytest API)
-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


devpi-server-4.0: fixing the pip-8.1.2 issue / pep 503 compliance

2016-05-13 Thread holger krekel
devpi-server-4.0: fixing the pip-8.1.2 problem / PEP503 compliance


We've made available critically important releases of the devpi private 
packaging
available.  If you are not using "devpi" yet then you can may just read
http://doc.devpi.net  and forget about the rest of this announcement.

This is for the many who experienced the "pip doesn't install packages
anymore with devpi" problem.  First of all, you may temporarily pin "pip" 
to avoid the problem on the client side:
 
pip install pip==8.1.1

This is obviously a crutch but gives you some time to perform the
export/import cycle required for hosting private packages via
devpi-server-4.0 and being compatible with pip-8.1.2.

If you are using devpi-server as a pure pypi.python.org cache you don't 
need to perform export/import and can just delete your server directory 
($HOME/.devpi/server by default) before you install and start up 
devpi-server-4.0.

If you are hosting private packages on devpi you will need to perform an
export/import cycle of your server state in order to run devpi-server-4.0.
The "4.0" in this case only signals this export/import need -- no other
big changes are coming with 4.0.  At the end of this announcement we explain 
some details of why we needed to go for a 4.0 and not just a micro bugfix 
release.


To export from devpi-server-3.X


upgrade to the new devpi-server-3.1.2 before you export, like this:

pip install "devpi-server<4.0" 

Now stop your server and run:

devpi-server --export EXPORTDIR --serverdir SERVERDIR

where EXPORTDIR should be a fresh new directory and SERVERDIR
should be the server state directory ($HOME/.devpi/server by default).


To export from devpi-server-2.X


Upgrade to the latest devpi-server-2.X release:

pip install "devpi-server<3.0" devpi-common>=2.0.10

Here we force the devpi-common dependency to not accidentally
be "devpi-common==2.0.9" which could lead to problems.

Now stop your server and run:

devpi-server --export EXPORTDIR --serverdir SERVERDIR

where EXPORTDIR should be a fresh new directory and SERVERDIR
should be the server state directory ($HOME/.devpi/server by default).


to import state into devpi-server-4.0


Upgrade to the latest devpi-server-4.X release:

pip install "devpi-server<5.0" devpi-web

If you don't use "devpi-web" you can leave it out from the pip command.
Check you have the right version:

devpi-server --version

Now import from your previously created EXPORTDIR:

devpi-server --serverdir SERVERDIR_NEW --import EXPORTDIR

This will take a while if you have many indexes or lots of documentation --
devpi-web will create a search index over all of it during import.

You are now good to go -- pip works again!


devpi-client also has a 2.6.3


We also published a minor bugfix "devpi-client-2.6.3" release which
should work with both devpi-server-2.6 and devpi-server-4.0 as we
are generally trying to keep devpi-client forward/backward compatible.
You only need to install devpi-client-2.6.3 if you also install
devpi-server into the same virtual environment.  Otherwise using
devpi-client-2.6.2 with both devpi-server-2.6 and devpi-server-4.0
probably works fine as well.

background on the pip/devpi bug for the curious
---

Besides devpi, also artifactory and other private index servers
have experienced failures with pip-8.1.2.  The change from 8.1.1
was that pip now asks for PEP503-normalized names when requesting
the simple page from an index.  Previously "-" and "." would be
allowed but with the new normalization "." is substituted with "-".
Now "pip install zope.interface" triggers a request to 
"+simple/zope-interface" and devpi in turns asks 
pypi.python.org/simple/zope-interface and gets an answer
with lots of "zope.interface-*.tar.gz" release links. But those
are not matched because without PEP503 "zope.interface" and "zope-interface"
are different things.  Moreover, pypi.python.org used to redirect 
to the "true" name but does not do this anymore which contributed
to the eventual problem.

We decided to go for 4.0 because since 3.0 we base database
keys on normalized project names -- and this normalization is
used in like 20-30 code places across the devpi system and plugins.
Trying to be clever and avoid the export/import and trick "pip-8.1.2"
into working looked like a can of worms.  Now with devpi-server-4.0
we are using proper PEP503 specified normalization so should be safe.

best,
holger and florian

P.S.: we offer support contracts btw and thank in particular
Dolby Laboratories, YouGov Inc and BlueYonder GmbH who funded a lot of
the last year's devpi work and now agreed to be named in public - and
no, we didn't get around to make a flashy web site yet.  For now,
just mail 

devpi-server/web-3.0: generalized mirroring, speed, new backends

2016-02-12 Thread holger krekel

The 3.0 releases of devpi-server and devpi-web, the python packaging and 
work flow system for handling release files, documentation, testing and staging,
bring several major improvements:

- Due to popular demand we now support generalized mirroring, i.e. you can 
  create mirror indexes which proxy and cache release files from other pypi 
  servers.  Even if the mirror goes down, pip-installing will continue to work
  with your devpi-server instance.  Previously we only supported mirroring 
  of pypi.python.org.  Using it is simple:
  http://doc.devpi.net/3.0/userman/devpi_indices.html#mirror-index

- For our enterprise clients we majorly worked on improving the speed
  of serving simple pages which is now several times faster with
  private indexes.  We now also support multiple worker processes
  both on master and replica sites.
  http://doc.devpi.net/3.0/adminman/server.html#multiple-server-instances

- For our enterprise clients we also introduced a new backend
  architecture which allows to store server state in sqlite or
  postgres (which is supported through a separately released plugin).
  The default remains to use the "sqlite" backend and store files
  on the filesystem. See
  http://doc.devpi.net/3.0/adminman/server.html#storage-backend-selection

- we started a new "admin" manual for devpi-server which describes
  features relating to server configuration, replication and security
  aspects.  It's a bit work-in-progress but should already be helpful.
  http://doc.devpi.net/3.0/adminman/

- A few option names changed and we also released devpi-client-2.5 
  where we took great care to keep it forward and backward compatible
  so it should run against devpi-server-2.1 and upwards all the way
  to 3.0.

- The "3.0" major release number increase means that you will need to run 
  through an export/import cycle to upgrade your devpi-2.X installation.

For more details, see the changelog and the referenced documentation
with the main entry point here:

http://doc.devpi.net

Many thanks to my partner Florian Schulze and to the several companies
who funded parts of the work on 3.0.  We are especially grateful for
their support to not only cover their own direct issues but also support
community driven demands.  I'd also like to express my gratitude to
Rackspace and Jesse Noller who provide VMs for our open source work and
which help a lot with the testing of our releases.

We are open towards entering more support contracts to make sure you get
what you need out of devpi, tox and pytest which together provide a
mature tool chain for professional python development.  And speaking of
showing support, if you or your company is interested to donate to or
attend the largest python testing sprint in history with a particular
focus to pytest or tox, please see

https://www.indiegogo.com/projects/python-testing-sprint-mid-2016/

have fun,

holger krekel, http://merlinux.eu



server-3.0.0 (2016-02-12)
-

- dropped support for python2.6

- block most ascii symbols for user and index names except ``-.@_``.
  unicode characters are fine.

- add ``--no-root-pypi`` option which prevents the creation of the
  ``root/pypi`` mirror instance on first startup.

- added optional ``title`` and ``description`` options to users and indexes.

- new indexes have no bases by default anymore. If you want to be able to
  install pypi packages, then you have to explicitly add ``root/pypi`` to
  the ``bases`` option of your index.

- added optional ``custom_data`` option to users.

- generalized mirroring to allow adding mirror indexes other than only PyPI

- renamed ``pypi_whitelist`` to ``mirror_whitelist``

- speed up simple-page serving for private indexes. A private index
  with 200 release files should now be some 5 times faster.

- internally use normalized project names everywhere, simplifying
  code and slightly speeding up some operations.

- change {name} in route_urls to {project} to disambiguate.
  This is potentially incompatible for plugins which have registered
  on existing route_urls.

- use "project" variable naming consistently in APIs

- drop calling of devpi_pypi_initial hook in favor of
  the new "devpi_mirror_initialnames(stage, projectnames)" hook
  which is called when a mirror is initialized.

- introduce new "devpiserver_stage_created(stage)" hook which is
  called for each index which is created.

- simplify and unify internal mirroring code some more
  with "normal" stage handling.

- don't persist the list of mirrored project names anymore
  but rely on a per-process RAM cache and the fact
  that neither the UI nor pip/easy_install typically
  need the projectnames list, anyway.

- introduce new "devpiserver_storage_backend" hook which allows plugins to
  provide custom storage backends. When there is more than one backend
  available, the "--storage" option becomes required

new devpi releases (2.6.0) with pip-search/offline mode support

2016-01-29 Thread holger krekel
This trinity release of devpi, the private packaging and workflow
system, is drop-in compatible to earlier releases and comes with these
improvements:

- support for pip search on the server side which is also configured
  when "devpi use" writes to pip configuration files.

- explicit --offline-mode for devpi-server to avoid trying
  unneccessary and potentially laggy network requests and to
  streamline simple pages to only contain releases that are locally
  cached. thanks Daniel Panteleit for the PR.

- push from root/pypi to other indexes works now.

Docs are to be found as usual at:

http://doc.devpi.net

This release brought to you mainly by Florian Schulze and me
and a few still unnamed sponsoring companies.  Speaking of which,
if you need support, training, adjustments wrt packaging and
professional testing you may contact us through http://merlinux.eu.

You can also expect devpi-server-3.0 soon, a major new release which
is to bring improvements like generalized mirroring, storage 
backends, speed and internal code cleanups.

best,
holger 


devpi-server-2.6.0 (2016-1-29)
--

- fix issue262: new experimental option --offline-mode will prevent
  devpi-server from even trying to perform network requests and it
  also strip all non-local release files from the simple index.
  Thanks Daniel Panteleit for the PR.

- fix issue304: mark devpi-server versions older than 2.2.x as incompatible
  and requiring an import/export cycle.

- fix issue296: try to fetch files from master again when requested, if there
  were checksum errors during replication.

- if a user can't be found during authentication (with ``setup.py upload`` for
  example), then the http return code is now 401 instead of 404.

- fix issue293: push from root/pypi to another index is now supported

- fix issue265: ignore HTTP(S) proxies when checking if the server is
already running.

- Add ``content_type`` route predicate for use by plugins.


devpi-web-2.6.0 (2016-1-29)
---

- fix issue305: read documentation html files in binary and let BeautifulSoup
detect the encoding.

- require devpi-server >= 2.6.0

- support for ``pip search`` command on indexes

devpi-client-2.4.0 (2016-1-29)
--

- fix issue291: transfer file modes with vcs exports.  Thanks Sergey
  Vasilyev for the report.

- new option "--index" for "install", "list", "push", "remove", "upload" and
  "test" which allows to use a different than the current index without using
  "devpi use" before

- set ``index`` in ``[search]`` section of ``pip.cfg`` when writing cfgs, to
  support ``pip search``
-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


tox-2.3.1: fix cross-section substitution for setenv

2015-12-14 Thread holger krekel

just did a quick bugfix release, tox-2.3.1, which re-allows cross-section
substitution for setenv.  Thanks all for the patience and the reporting.

For docs, as always see http://testrun.org/tox

have fun,
holger
-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


tox-2.3.0: bug fixes, new plugin hooks

2015-12-11 Thread holger krekel

Just released tox-2.3.0, the python test configuration and automation tool.
It brings some important bug fixes and more hooks related to testenvironment
creation and installation, allowing upcoming plugins like tox-debian to add
extra steps during installation.

I'd like to send special thanks to the Tryton foundation who organized
some funding in order to tackle the proper fixing of a serious
regression of tox-2.2 (see changelog below).  thanks also to David Stanek,
Julien Castets, Nelfin for their contributions.

You'll find the current docs for tox here:

https://testrun.org/tox/latest/

and have fun,
holger krekel

-- 
about me:http://holgerkrekel.net/about-me/
contracting: http://merlinux.eu


2.3.0
-

- DEPRECATE use of "indexservers" in tox.ini.  It complicates
  the internal code and it is recommended to rather use the
  devpi system for managing indexes for pip.

- fix issue285: make setenv processing fully lazy to fix regressions
  of tox-2.2.X and so that we can now have testenv attributes like 
  "basepython" depend on environment variables that are set in 
  a setenv section. Thanks Nelfin for some tests and initial
  work on a PR.

- allow "#" in commands.  This is slightly incompatible with commands
  sections that used a comment after a "\" line continuation.
  Thanks David Stanek for the PR.

- fix issue289: fix build_sphinx target, thanks Barry Warsaw.

- fix issue252: allow environment names with special characters.
  Thanks Julien Castets for initial PR and patience.

- introduce experimental tox_testenv_create(venv, action) and 
  tox_testenv_install_deps(venv, action) hooks to allow
  plugins to do additional work on creation or installing
  deps.  These hooks are experimental mainly because of
  the involved "venv" and session objects whose current public 
  API is not fully guranteed.

- internal: push some optional object creation into tests because
  tox core doesn't need it.

-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


devpi-server-2.5.1: fix of replica simple-page serving bug

2015-11-20 Thread holger krekel
Hi again,

we just did a hotfix release, devpi-server-2.5.1, which fixes
a regression with replicas, thanks to Stephan Erb for reporting
and Florian Schulze for fixing.

holger

2.5.1 (2015-11-20)
--

- fix issue289: fix simple page serving on replicas

-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


devpi-{server,web}-2.5.0 perf/bug fix releases

2015-11-19 Thread holger krekel

We just released devpi-{server,web}-2.5.0 to pypi, see changelogs below
for more details.  While it's not required to do an export/import cycle
for this release it's recommended especially if you are running with replicas.

Docs for the private pypi packaging server at: http://doc.devpi.net

Thanks to Florian Schulze, Jason R. Coombs and all issue reporters.

For your information, we are now starting work for devpi-server-3.0 
which will introduce further speedups, internal code simplifications
and new features (like mirroring from arbitrary pypi-servers).

cheers,
holger krekel



server-2.5.0 (2015-11-19)
-

- fix a regression of 2.3.0 which would cause many write-transactions
  for mirrored simple-page entries that didn't change.  Previous to the fix,
  accesses to mirrored simple pages will result in a new
  write-transaction every 30 minutes if the page is accessed which
  is likely on a somewhat busy site.  If you running with replicas
  it is recommended to do an an export/import cycle to remove all 
  the unneccessary writes that were produced since devpi-server-2.3.0.
  They delay the setup of new replicas considerably.

- add info about pypi_whitelist on simple page when root/pypi is blocked for
  a project.

- replica simple-page serving will not unneccessarily wait for new 
  simple-page entries to arrive at the replication side if the master 
  does not return any changes in the initial simple-page request.
  Previously a replica would wait for the replication-thread to catch
  up even if no links changed.

- fix setup.py to work on py34 and with LANG="C" environments.
  Thanks Jason R. Coombs.

- fix issue284: allow users who are listed in acl_upload to delete packages


web-2.5.0 (2015-11-19)
--

- fix issue288: classifiers rendering wrong with read only data views

- index.pt, project.pt, version.pt: added info about pypi_whitelist. This
  requires devpi-server > 2.4.0 to work.

- fix issue286: indexing of most data failed due to new read only views

-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


devpi-server-2.4.0 and friends: speedup, fixes, profiling

2015-11-12 Thread holger krekel

We just pushed devpi-{server,web,client,common} release files out to pypi.
Most notably, the private pypi package server allows much faster installs
due to much improved simple-page serving speed.  See the changelog
below for a host of other changes and fixes as well as for compatibility
warnings.

Docs about the devpi system are to be found here:

http://doc.devpi.net

Many thanks to my co-maintainer Florian Schulze and particularly
to Stephan Erb and Chad Wagner for their contributions.

cheers,
holger

--
about me:http://holgerkrekel.net/about-me/
contracting: http://merlinux.eu


devpi-server 2.4.0 (2015-11-11)
---

- NOTE: devpi-server-2.4 is compatible to data from devpi-server-2.3 but
  not the other way round.  Once you run devpi-server-2.4 you can not go
  back. It's always a good idea to make a backup before trying a new version :)

- NOTE: if you use "--logger-cfg" with .yaml files you will need to
  install pyyaml yourself as devpi-server-2.4 dropped it as a direct
  dependency as it does not install for win32/python3.5 and is 
  not needed for devpi-server operations except for logging configuration.
  Specifying a *.json file always works.

- add timeout to replica requests

- fix issue275: improve error message when a serverdir exists but has no
  version

- improve testing mechanics and name normalization related to storing doczips

- refine keyfs to provide lazy deep readonly-views for
  dict/set/list/tuple types by default.  This introduces safety because
  users (including plugins) of keyfs-values can only write/modify a value
  by explicitly getting it with readonly=False (thereby deep copying it)
  and setting it with the transaction.  It also allows to avoid unnecessary
  copy-operations when just reading values.

- fix issue283: pypi cache didn't work for replicas.

- performance improvements for simple pages with lots of releases.
  this also changed the db layout of the caching from pypi.python.org mirrors
  but will seamlessly work on older data, see NOTE at top.

- add "--profile-requests=NUM" option which turns on per-request
  profiling and will print out after NUM requests are executed
  and then restart profiling.

- fix tests for pypy. We officially support pypy now.

devpi-client-2.3.2 (2015-11-11)
---

- fix git submodules for devpi upload. ``.git`` is a file not a folder for
  submodules. Before this fix the repository which contains the submodule was
  found instead, which caused a failure, because the files aren't tracked there.

- new option "devpi upload --setupdir-only" which will only
  vcs-export the directory containing setup.py. You can also
  set "setupdirs-only = 1" in the "[devpi:upload]" section
  of setup.cfg for the same effect.  Thanks Chad Wagner for the PR.


devpi-web 2.4.2 (2015-11-11)


- log exceptions during search index updates.

- adapted tests/code to work with devpi-server-2.4

devpi-common 2.0.8 (2015-11-11)
---

- fix URL.joinpath to not add double slashes
-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


tox-2.2.0: fixes and new ignore_outcome setting

2015-11-12 Thread holger krekel

I just released tox-2.2.0, see changelog below.

More about tox here:

http://tox.testrun.org

have fun,
holger

-- 
about me:http://holgerkrekel.net/about-me/
contracting: http://merlinux.eu


2.2.0
-

- fix issue265 and add LD_LIBRARY_PATH to passenv on linux by default
  because otherwise the python interpreter might not start up in
  certain configurations (redhat software collections).  Thanks David Riddle.

- fix issue246: fix regression in config parsing by reordering 
  such that {envbindir} can be used again in tox.ini. Thanks Olli Walsh.

- fix issue99: the {env:...} substitution now properly uses environment
  settings from the ``setenv`` section. Thanks Itxaka Serrano.

- fix issue281: make --force-deps work when urls are present in
  dependency configs.  Thanks Glyph Lefkowitz for reporting.

- fix issue174: add new ``ignore_outcome`` testenv attribute which
  can be set to True in which case it will produce a warning instead
  of an error on a failed testenv command outcome.  
  Thanks Rebecka Gulliksson for the PR.

- fix issue280: properly skip missing interpreter if
  {envsitepackagesdir} is present in commands. Thanks BB:ceridwenv
-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-2.8.1: fixes and more fixes

2015-09-29 Thread holger krekel

Just 11 days after 2.8 hit PyPI we published pytest-2.8.1 which fixes a
host of regressions and bugs, see the changelog excerpt below.  Docs are
also freshly generated at http://pytest.org including a streamlined PDF.

Note that the pytest team now follows more SEMVER style versioning
which currently means that you can expect bugfixes with 2.8.X and new
features with 2.9.0 and planned incompatibilities with 3.0.

Many thanks to the PR contributors and mergers of 2.8.1:

Bruno Oliveira
Ronny Pfannschmidt
Florian Bruhin
Floris Bruynooghe
Eric Hunsberger
Tim Staley
Simon Gomizelj
Russel Winder
Oleg Alexandrov
Michael Howitz
Michael Birtwell
Ben Webb
Andy Freeland
Abhijeet Kasurde

cheers,
holger krekel

2.8.1
-

- fix #1034: Add missing nodeid on pytest_logwarning call in
  addhook.  Thanks Simon Gomizelj for the PR.

- 'deprecated_call' is now only satisfied with a DeprecationWarning or
  PendingDeprecationWarning. Before 2.8.0, it accepted any warning, and 2.8.0
  made it accept only DeprecationWarning (but not PendingDeprecationWarning).
  Thanks Alex Gaynor for the issue and Eric Hunsberger for the PR.

- fix issue #1073: avoid calling __getattr__ on potential plugin objects.
  This fixes an incompatibility with pytest-django.  Thanks Andreas Pelme,
  Bruno Oliveira and Ronny Pfannschmidt for contributing and Holger Krekel
  for the fix.

- Fix issue #704: handle versionconflict during plugin loading more
  gracefully.  Thanks Bruno Oliveira for the PR.

- Fix issue #1064: ""--junitxml" regression when used with the
  "pytest-xdist" plugin, with test reports being assigned to the wrong tests.
  Thanks Daniel Grunwald for the report and Bruno Oliveira for the PR.

- (experimental) adapt more SEMVER style versioning and change meaning of 
  master branch in git repo: "master" branch now keeps the bugfixes, changes 
  aimed for micro releases.  "features" branch will only be be released 
  with minor or major pytest releases.

- Fix issue #766 by removing documentation references to distutils.
  Thanks Russel Winder.

- Fix issue #1030: now byte-strings are escaped to produce item node ids
  to make them always serializable.
  Thanks Andy Freeland for the report and Bruno Oliveira for the PR.

- Python 2: if unicode parametrized values are convertible to ascii, their
  ascii representation is used for the node id.

- Fix issue #411: Add __eq__ method to assertion comparison example.
  Thanks Ben Webb.

- fix issue 877: properly handle assertion explanations with non-ascii repr
  Thanks Mathieu Agopian for the report and Ronny Pfannschmidt for the PR.

- fix issue 1029: transform errors when writing cache values into 
pytest-warnings

-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-2.7.3: fixes and py35 compat

2015-09-15 Thread holger krekel
Hi all,

I just pushed pytest-2.7.3 to pypi which contains bugfixes including
compatibility to python3.5 which was released yesterday.

In case you wonder, pytest is a widely used mature test runner both for
unit and functional test purposes in python.  See http://pytest.org for
documentation and examples.

Thanks to contributors for this release, among them:

Bruno Oliveira, Florian Bruhin, Floris Bruynooghe, Ronny Pfannschmidt,
Eric Hunsberg, Barney Gale, Guido van Rossum, Matthias Matthias
Bussonier, Stefan Zimmermann, Thomas Kluyver, Pieter Mulder, Raphael
Pierzina.

best,
holger krekel 

P.S.: we are also preparing a pytest-2.8 which has a much longer list of
changes/features.


2.7.3 (compared to 2.7.2)
-

- Allow 'dev', 'rc', or other non-integer version strings in `importorskip`.
  Thanks to Eric Hunsberger for the PR.

- fix issue856: consider --color parameter in all outputs (for example
  --fixtures). Thanks Barney Gale for the report and Bruno Oliveira for the PR.

- fix issue855: passing str objects as `plugins` argument to pytest.main
  is now interpreted as a module name to be imported and registered as a
  plugin, instead of silently having no effect.
  Thanks xmo-odoo for the report and Bruno Oliveira for the PR.

- fix issue744: fix for ast.Call changes in Python 3.5+.  Thanks
  Guido van Rossum, Matthias Bussonnier, Stefan Zimmermann and
  Thomas Kluyver.

- fix issue842: applying markers in classes no longer propagate this markers
  to superclasses which also have markers.
  Thanks xmo-odoo for the report and Bruno Oliveira for the PR.

- preserve warning functions after call to pytest.deprecated_call. Thanks
  Pieter Mulder for PR.

- fix issue854: autouse yield_fixtures defined as class members of
  unittest.TestCase subclasses now work as expected.
  Thannks xmo-odoo for the report and Bruno Oliveira for the PR.

- fix issue833: --fixtures now shows all fixtures of collected test files, 
instead of just the
  fixtures declared on the first one.
  Thanks Florian Bruhin for reporting and Bruno Oliveira for the PR.

- fix issue863: skipped tests now report the correct reason when a skip/xfail
  condition is met when using multiple markers.
  Thanks Raphael Pierzina for reporting and Bruno Oliveira for the PR.

- optimized tmpdir fixture initialization, which should make test sessions
  faster (specially when using pytest-xdist). The only visible effect
  is that now pytest uses a subdirectory in the $TEMP directory for all
  directories created by this fixture (defaults to $TEMP/pytest-$USER).
  Thanks Bruno Oliveira for the PR.
-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


devpi-server-2.3.0: changed pypi caching, semantic versioning

2015-09-10 Thread holger krekel
devpi-server-2.3: more resilient pypi caching, semantic versioning


The devpi-server-2.3 release brings two important changes:

- We don't use the XMLRPC "changelog" interface of pypi.python.org
  anymore.  Instead devpi-server now re-checks with pypi every 30 minutes
  and will serve cached contents in between.  If pypi is not reachable
  and we still have cached contents we continue serving the cached content
  so that we can survive pypi outages.

- we switched to semantic versioning so that only major version number
  increases signal the need for an export/import cycle.  If you have
  a devpi-server-2.2.X installation you are not required to export/import.
  However, there has been a regression with the execnet-1.4.0 release
  which was fixed with the now current execnet-1.4.1 release.  If you
  have freshly setup devpi-server and used execnet-1.4.0 at that time
  you will need to do an export with execnet-1.4.0 and then import 
  with execnet-1.4.1 installed.

Note also that we released new micro releases of devpi-client and devpi-web
which are pure bugfixing releases.

For many more changes and fixes, please see the respective CHANGELOG of the
respective packages.

For docs and quickstart tutorials see http://doc.devpi.net

many thanks to Florian Schulze who any of the new features.  And special
thanks go to the two still unnamed companies who funded major parts of
the above work.

have fun,

holger krekel, merlinux GmbH


2.3.0 (2015-09-10)
--

- switched to semantic versioning. Only major revisions will ever require an
  export/import cycle.

- fix issue260: Log identical upload message on level "info"

- Log upload trigger message on level "warn"

- The PyPI changelog isn't watched for changes anymore.
  Instead we cache release data for 30 minutes, this can be adjusted with the
  ``--mirror-cache-expiry`` option.

- fix issue251: Require and validate the "X-DEVPI-SERIAL" from master in
  replica thread

- fix issue258: fix FileReplicationError representation for proper logging

- fix issue256: if a project removes all releases from pypi or the project is
  deleted on pypi, we get a 404 back. In that case we now return an empty list
  of releases instead of returning an UpstreamError.

- Change nginx template to serve HEAD in addition to GET requests of files
  directly instead of proxying to devpi-server

- make keyfs cache size configurable via "--keyfs-cache-size" option and
  increase the default size to improve performance for installations with many
  writes
-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


devpi-{server-2.2.2,web-2.4.0,client-2.3.0} releases

2015-07-09 Thread holger krekel

We just released devpi-server-2.2.2, devpi-web-2.4.0 and devpi-client-2.3.0,
core parts of the private pypi package management and testing system.

Among the highlights are support for distributed testing with devpi test 
--detox,
new status pages at /+status for replica and master sites and support for
configuring upload formats when running devpi upload.

None of the changes require an export/import cycle on the server side if
you used devpi-server-2.2.X before.  However, please read the respective
changelog entries below for some notes and potentially
backward-incompatible changes.  See the home page for docs and tutorials:

http://doc.devpi.net

have fun,
Holger Krekel and Florian Schulze

contracting: http://merlinux.eu

server-2.2.2


- make replica thread more robust by catching more exceptions

- Remove duplicates in plugin version info

- track timestamps for event processing and replication and expose in /+status

- implement devpiweb_get_status_info hook for devpi-web = 2.4.0 status messages

- UPGRADE NOTE: if devpi-web is installed, you have to request
  ``application/json`` for ``/+status``, or you might get a html page.

- address issue246: refuse uploading release files if they do not
  contain the version that was transferred with the metadata of
  the upload request.

- fix issue248: prevent change of index type after creation


web-2.4.0
-

- macros.pt: Add autofocus attribute to search field

- macros.pt and style.css: Moved How to search? to the right of the search
  button and adjusted width of search field accordingly.

- fix issue244: server status info

  - added support for status message plugin hook ``devpiweb_get_status_info``
  - macros.pt: added macros ``status`` and ``statusbadge`` and placed them
below the search field.
  - added status.pt: shows server status information

- toxresults.pt: fix missing closing ``div`` tag.


client-2.3.0


- fix issue247: possible password leakage to log in devpi-client

- new experimental -d|--detox option to run tests via the detox distributed 
testing
  tool instead of tox which runs test environments one by one.

- address issue246: make sure we use vcs-export also for building docs (and
  respect --no-vcs for all building activity)

- address issue246: copy VCS repo dir to temporary upload dir to help
  with setuptools_scm. Warn if VCS other than hg/git are used because
  we don't copy the repo in that case for now and thus cause incompatibility
  with setuptools_scm.

- (new,experimental) read a [devpi:upload] section from a setup.cfg file
  with a formats setting that will be taken if no --formats option
  is specified to devpi upload.  This allows to specify the default
  artefacts that should be created along with a project's setup.cfg file.
  Also you can use a ``no-vcs = True`` setting to induce the ``--no-vcs``
  option.

-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-2.7.2: bug fixes

2015-06-24 Thread holger krekel
pytest-2.7.2: bug fixes
===

pytest is a mature Python testing tool with more than a 1100 tests
against itself, passing on many different interpreters and platforms.
This release is supposed to be drop-in compatible to 2.7.1.

See below for the changes and see docs at:

http://pytest.org

As usual, you can upgrade from pypi via::

pip install -U pytest

Thanks to all who contributed to this release, among them:

Bruno Oliveira
Floris Bruynooghe
Punyashloka Biswal
Aron Curzon
Benjamin Peterson
Thomas De Schampheleire
Edison Gustavo Muenz
Holger Krekel

Happy testing,
The py.test Development Team


2.7.2 (compared to 2.7.1)
-

- fix issue767: pytest.raises value attribute does not contain the exception
  instance on Python 2.6. Thanks Eric Siegerman for providing the test
  case and Bruno Oliveira for PR.

- Automatically create directory for junitxml and results log.
  Thanks Aron Curzon.

- fix issue713: JUnit XML reports for doctest failures.
  Thanks Punyashloka Biswal.

- fix issue735: assertion failures on debug versions of Python 3.4+
  Thanks Benjamin Peterson.

- fix issue114: skipif marker reports to internal skipping plugin;
  Thanks Floris Bruynooghe for reporting and Bruno Oliveira for the PR.

- fix issue748: unittest.SkipTest reports to internal pytest unittest plugin.
  Thanks Thomas De Schampheleire for reporting and Bruno Oliveira for the PR.

- fix issue718: failed to create representation of sets containing unsortable
  elements in python 2. Thanks Edison Gustavo Muenz

- fix issue756, fix issue752 (and similar issues): depend on py-1.4.29
  which has a refined algorithm for traceback generation.

-- 
about me:http://holgerkrekel.net/about-me/
contracting: http://merlinux.eu
-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


Re: [TIP] tox-2.1.0: passenv refinements

2015-06-23 Thread holger krekel

FWIW did a tox-2.1.1 fixing some interoperability issues with detox,
the distributed tox runner.

cheers,
holger



On Fri, Jun 19, 2015 at 14:09 +, holger krekel wrote:
 I just released tox-2.1.0 to pypi which streamlines the passenv
 behaviour to accomodate a number of issues, see the changelog below.
 
 You can find docs for the virtualenv based test runner here:
 
 http://tox.testrun.org
 
 have fun,
 
 holger
 
 
 2.1.0
 -
 
 - fix issue258, fix issue248, fix issue253: for non-test commands 
   (installation, venv creation) we pass in the full invocation environment.
 
 - remove experimental --set-home option which was hardly used and
   hackily implemented (if people want home-directory isolation we should
   figure out a better way to do it, possibly through a plugin)
 
 - fix issue259: passenv is now a line-list which allows to intersperse
   comments.  Thanks stefano-m.
 
 - allow envlist to be a multi-line list, to intersperse comments
   and have long envlist settings split more naturally.  Thanks Andre Caron.
 
 - introduce a TOX_TESTENV_PASSENV setting which is honored
   when constructing the set of environment variables for test environments.
   Thanks Marc Abramowitz for pushing in this direction.
 
 
 
 ___
 testing-in-python mailing list
 testing-in-pyt...@lists.idyll.org
 http://lists.idyll.org/listinfo/testing-in-python
 

-- 
about me:http://holgerkrekel.net/about-me/
contracting: http://merlinux.eu
-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


tox-2.1.0: passenv refinements

2015-06-19 Thread holger krekel

I just released tox-2.1.0 to pypi which streamlines the passenv
behaviour to accomodate a number of issues, see the changelog below.

You can find docs for the virtualenv based test runner here:

http://tox.testrun.org

have fun,

holger


2.1.0
-

- fix issue258, fix issue248, fix issue253: for non-test commands 
  (installation, venv creation) we pass in the full invocation environment.

- remove experimental --set-home option which was hardly used and
  hackily implemented (if people want home-directory isolation we should
  figure out a better way to do it, possibly through a plugin)

- fix issue259: passenv is now a line-list which allows to intersperse
  comments.  Thanks stefano-m.

- allow envlist to be a multi-line list, to intersperse comments
  and have long envlist settings split more naturally.  Thanks Andre Caron.

- introduce a TOX_TESTENV_PASSENV setting which is honored
  when constructing the set of environment variables for test environments.
  Thanks Marc Abramowitz for pushing in this direction.


-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


new devpi-server/web/client/common: wheel testing, SHA256, ...

2015-05-14 Thread holger krekel

devpi-{server-2.2,web-2.3,client-2.2}: plugins, wheel support, pypi compat


With devpi-server-2.2, devpi-web-2.3, devpi-client-2.2 you'll get a host of 
fixes 
and improvements as well as some major new features for the private pypi system:

- refined devpi-server plugin architecture based on pluggy, the plugin and 
hook
  mechanism factored out from pytest.

- devpi-client test now support testing of universal wheels IFF you have have 
an sdist
  alongside your wheel.  python-specific wheels are not supported at this point.

- devpi client refresh NAME allows to force a refresh of a pypi package
  from the command line.

- internal refactorings to allow future pypi compatibility (for when it
  changes to SHA256 checksums).  Also we use SHA256 checksumming ourselves now.

For many more changes and fixes, please see the respective CHANGELOG of the
respective packages.

UPGRADE note: devpi-server-2.2 requires to ``--export`` your 2.1
server state and then using ``--import`` with the new version
before you can serve your private packages through devpi-server-2.2.

UPGRADE note: if you use ``updatetrigger_jenkins``, you have to install
the devpi-jenkins plugin. You will get an error during import if you forget it.

For docs and quickstart tutorials see http://doc.devpi.net

many thanks to Florian Schulze who co-implemented many of the new features.
And special thanks go to the two companies who funded major parts of the above 
work.

have fun,

holger krekel, merlinux GmbH
-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


tox-2.0.0: plugin support, platforms, env isolation

2015-05-12 Thread holger krekel
tox-2.0: plugins, platform, env isolation
==

tox-2.0 was released to pypi, a major new release with *mostly*
backward-compatible enhancements and fixes:

- experimental support for plugins, see https://testrun.org/tox/dev/plugins.html
  which includes also a refined internal registration mechanism for new testenv
  ini options.  You can now ask tox which testenv ini parameters exist
  with ``tox --help-ini``.

- ENV isolation: only pass through very few environment variables from the
  tox invocation to the test environments.  This may break test runs that
  previously worked with tox-1.9 -- you need to either use the
  ``setenv`` or ``passenv`` ini variables to set appropriate environment
  variables.

- PLATFORM support: you can set ``platform=REGEX`` in your testenv sections
  which lets tox skip the environment if the REGEX does not match 
``sys.platform``.

- tox now stops execution of test commands if the first of them fails unless
  you set ``ignore_errors=True``.

Thanks to Volodymyr Vitvitski, Daniel Hahler, Marc Abramowitz, Anthon van
der Neuth and others for contributions.

More documentation about tox in general:

http://tox.testrun.org/

Installation:

pip install -U tox

code hosting and issue tracking on bitbucket:

https://bitbucket.org/hpk42/tox

What is tox?


tox standardizes and automates tedious test activities driven from a
simple ``tox.ini`` file, including:

* creation and management of different virtualenv environments
  with different Python interpreters
* packaging and installing your package into each of them
* running your test tool of choice, be it nose, py.test or unittest2 or other 
tools such as sphinx doc checks
* testing dev packages against each other without needing to upload to PyPI

best,
Holger Krekel, merlinux GmbH

--
about me:http://holgerkrekel.net/about-me/
contracting: http://merlinux.eu

2.0.0
---

- (new) introduce environment variable isolation:
  tox now only passes the PATH and PIP_INDEX_URL variable from the tox
  invocation environment to the test environment and on Windows
  also ``SYSTEMROOT``, ``PATHEXT``, ``TEMP`` and ``TMP`` whereas
  on unix additionally ``TMPDIR`` is passed.  If you need to pass
  through further environment variables you can use the new ``passenv`` setting,
  a space-separated list of environment variable names.  Each name
  can make use of fnmatch-style glob patterns.  All environment
  variables which exist in the tox-invocation environment will be copied
  to the test environment.

- a new ``--help-ini`` option shows all possible testenv settings and
  their defaults.

- (new) introduce a way to specify on which platform a testenvironment is to
  execute: the new per-venv platform setting allows to specify
  a regular expression which is matched against sys.platform.
  If platform is set and doesn't match the platform spec in the test
  environment the test environment is ignored, no setup or tests are attempted.

- (new) add per-venv ignore_errors setting, which defaults to False.
   If ``True``, a non-zero exit code from one command will be ignored and
   further commands will be executed (which was the default behavior in tox 
   2.0).  If ``False`` (the default), then a non-zero exit code from one command
   will abort execution of commands for that environment.

- show and store in json the version dependency information for each venv

- remove the long-deprecated distribute option as it has no effect these days.

- fix issue233: avoid hanging with tox-setuptools integration example. Thanks 
simonb.

- fix issue120: allow substitution for the commands section.  Thanks
  Volodymyr Vitvitski.

- fix issue235: fix AttributeError with --installpkg.  Thanks
  Volodymyr Vitvitski.

- tox has now somewhat pep8 clean code, thanks to Volodymyr Vitvitski.

- fix issue240: allow to specify empty argument list without it being
  rewritten to ..  Thanks Daniel Hahler.

- introduce experimental (not much documented yet) plugin system
  based on pytest's externalized pluggy system.
  See tox/hookspecs.py for the current hooks.

- introduce parser.add_testenv_attribute() to register an ini-variable
  for testenv sections.  Can be used from plugins through the
  tox_add_option hook.

- rename internal files -- tox offers no external API except for the
  experimental plugin hooks, use tox internals at your own risk.

- DEPRECATE distshare in documentation

-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


devpi-client-2.1.0/devpi-server-2.1.5: maintenance releases

2015-03-16 Thread holger krekel

We just released devpi-server-2.1.5 and devpi-client-2.1.0 as maintenance
and minor improvement releases.  devpi is a system for managing packaging, 
documentation, test and installation workflows for private Python packages.

See http://doc.devpi.net for documentation and tutorials
and below for the changelog.

many thanks to Florian Schulze who did most of the heavy-lifting for
this release and of course to the issue/PR creators!

best,
holger krekel


changelogs
--

devpi-server-2.1.5 (compared to 2.1.4):

- fix devpi-ldap issue17: the push command directly used the username
  instead of using a general permission check, that caused groups in
  acl_upload to not be honored. 
- fix issue171: devpi push of an existing package fails on non
  volatile index and overwrites on volatile.
- before devpi-server 2.1.5 it was possible to upload multiple
  documentation zip files for the same package version if the filename
  differed in case, this broke export and replication of server state and
  the documentation view.  Now the newest upload will be used and older
  ones ignored.

devpi-client-2.1.0 (compared to 2.0.5):

- fix issue199: devpi upload and devpi test can now handle packages
  with dashes in their name.
- change: the following fixes change behavior if used in scripts
- fix issue174: ask for confirmation when deleting an index or user.
- fix issue156 and issue199: devpi push now uses pkgname==version
  like list and test. This also fixes usage with packages containing
  dashes in their name.


-- 
about me:http://holgerkrekel.net/about-me/
contracting: http://merlinux.eu

-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


Re: [Distutils] Call for information - What assumptions can I make about Unix users' access to Windows?

2014-11-20 Thread holger krekel
On Sat, Nov 15, 2014 at 10:45 +, Paul Moore wrote:
 On 7 November 2014 15:46, Paul Moore p.f.mo...@gmail.com wrote:
  To that end, I'd like to get an idea of what sort of access to Windows
  a typical Unix developer would have.
 
 Thanks to all who contributed to this thread.
 
 Based on the feedback, I think it's going to be useful to provide two
 options. First of all, an EC2 AMI that can be used by people without
 access to a local Windows system. While other cloud providers are a
 possibility, EC2 provides a free tier (for the first year) and is
 well-known, so it's probably the easiest to get started with (at least
 it was for me!) Also, I will provide a script that can be used to
 automatically build the environment on a newly-installed machine. The
 idea is that you can use this on a Windows VM (something that a number
 of people have said they have access to).
 
 The script may be usable on an existing machine, but it's hard to make
 it robust, as there are too many failure modes to consider (software
 already installed, configuration and/or permission differences, etc).
 So while such use may be possible, I probably won't consider it as
 supported.

Thanks Paul for going through this!  Looking forward to the link/code.

holger

 Thanks again,
 Paul
 ___
 Distutils-SIG maillist  -  distutils-...@python.org
 https://mail.python.org/mailman/listinfo/distutils-sig
 
-- 
https://mail.python.org/mailman/listinfo/python-list


pytest-2.6.4: bugfix release

2014-10-24 Thread holger krekel
Hi all,

just pushed pytest-2.6.4 to pypi, a small bug fix release.  pytest is a
popular and mature Python testing tool with more than a 1100 tests
against itself, passing on many different interpreters and platforms.
This release is drop-in compatible to 2.5.2 and 2.6.X.  See below for
the changes and see docs at:

http://pytest.org

Thanks to all who contributed, among them:

Bruno Oliveira
Floris Bruynooghe
Dinu Gherman
Anatoly Bubenkoff

best,
holger krekel, merlinux GmbH


2.6.4
--

- Improve assertion failure reporting on iterables, by using ndiff and pprint.

- removed outdated japanese docs from source tree.

- docs for pytest_addhooks hook.  Thanks Bruno Oliveira.

- updated plugin index docs.  Thanks Bruno Oliveira.

- fix issue557: with -k we only allow the old style - for negation
  at the beginning of strings and even that is deprecated.  Use not instead.
  This should allow to pick parametrized tests where - appeared in the 
parameter.

- fix issue604: Escape % character in the assertion message.

- fix issue620: add explanation in the --genscript target about what
  the binary blob means. Thanks Dinu Gherman.

- fix issue614: fixed pastebin support.

-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


devpi-{server-2.1.2,web-2.2.1}: bugfixes, streamlined web templates

2014-10-24 Thread holger krekel

devpi-server-2.1.2 and devpi-web-2.2.1 bring a host of fixes to
the private pypi server system.  You can upgrade without migrating
your data if you run already with devpi-server-2.1.X. 

Find docs as usual at:

http://doc.devpi.net

Many thanks to Florian Schulze who did most of the changes in devpi-web.

Have fun,

holger krekel, merlinux GmbH

devpi-server-2.1.2
--

- fix issue172: avoid traceback when user/index/name/version is accessed.

- fix issue170: ensure that we parse the prospective pip-6.0 user agent
  string properly so that using the username/index url works with pip.
  Thanks Donald Stufft and Florian Schulze.

- fix issue158: redirect to normalized projectname for all GET views.

- fix issue169: change /+status to expose event_serial as the last
  event serial that was processed.  document serial and
  event-serial and also refine internals wrt to event-serial so that
  it means the last serial for which events have been processed


devpi-web-2.2.1
---

- require devpi-server=2.1.2

- fix issue175: use normalized name of projects, so redirects from unnormalized
  names works.  NOTE that if you had issues with documentation uploads
  not appearing because of normalization issues (- or _ appearing 
  in the name for example) you need to re-upload the docs or 
  do a full export/import cycle.  

- fix view when tox results can not be parsed. 

- version.pt: removed code tag around overwrite count.

- macros.pt: added footer tag around the whole footer part.

- version.pt: moved file type, python version and size info from their own
  columns into the file column.

- version.pt: moved history column from before the tox results column to behind
  the tox results.

- version.pt: removed last modified from history column

- version.pt: removed timestamp from replaced action in history column

- version.pt: add link to PyPI page if applicable.

- fix project page view if there are downloads with filenames which can't be
  parsed as packages with version number

- fix notfound-redirect when serving under an outside URL with a sub path


-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-2.6.3: some fixes

2014-09-25 Thread holger krekel
pytest-2.6.3: fixes and little improvements
===

pytest is a mature Python testing tool with more than a 1100 tests
against itself, passing on many different interpreters and platforms.
This release is drop-in compatible to 2.5.2 and 2.6.X.
See below for the changes and see docs at:

http://pytest.org

As usual, you can upgrade from pypi via::

pip install -U pytest

Thanks to all who contributed, among them:

Floris Bruynooghe
Oleg Sinyavskiy
Uwe Schmitt
Charles Cloud
Wolfgang Schnerring

have fun,
holger krekel

Changes 2.6.3
==

- fix issue575: xunit-xml was reporting collection errors as failures
  instead of errors, thanks Oleg Sinyavskiy.

- fix issue582: fix setuptools example, thanks Laszlo Papp and Ronny
  Pfannschmidt.

- Fix infinite recursion bug when pickling capture.EncodedFile, thanks
  Uwe Schmitt.

- fix issue589: fix bad interaction with numpy and others when showing
  exceptions.  Check for precise maximum recursion depth exceed exception
  instead of presuming any RuntimeError is that one (implemented in py
  dep).  Thanks Charles Cloud for analysing the issue.

- fix conftest related fixture visibility issue: when running with a
  CWD outside a test package pytest would get fixture discovery wrong.
  Thanks to Wolfgang Schnerring for figuring out a reproducable example.

- Introduce pytest_enter_pdb hook (needed e.g. by pytest_timeout to cancel the
  timeout when interactively entering pdb).  Thanks Wolfgang Schnerring.

- check xfail/skip also with non-python function test items. Thanks
  Floris Bruynooghe.

-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


tox-1.8: parametrized/generative environments

2014-09-25 Thread holger krekel
tox 1.8: Generative/combinatorial environments specs
=

I am happy to announce tox 1.8 which implements parametrized environments
and should otherwise be fully backward compatible to tox-1.7.2.

See 
https://tox.testrun.org/latest/config.html#generating-environments-conditional-settings
for examples and the new backward compatible syntax in your tox.ini file.

Many thanks to Alexander Schepanovski for implementing and refining
it based on the specifcation draft.

More documentation about tox in general:

http://tox.testrun.org/

Installation:

pip install -U tox

code hosting and issue tracking on bitbucket:

https://bitbucket.org/hpk42/tox

What is tox?


tox standardizes and automates tedious test activities driven from a
simple ``tox.ini`` file, including:

* creation and management of different virtualenv environments
  with different Python interpreters
* packaging and installing your package into each of them
* running your test tool of choice, be it nose, py.test or unittest2 or other 
tools such as sphinx doc checks
* testing dev packages against each other without needing to upload to PyPI

best,
Holger Krekel, merlinux GmbH


Changes 1.8 (compared to 1.7.2)
---

- new multi-dimensional configuration support.  Many thanks to
  Alexander Schepanovski for the complete PR with docs.
  And to Mike Bayer and others for testing and feedback.

- fix issue148: remove __PYVENV_LAUNCHER__ from os.environ when starting
  subprocesses. Thanks Steven Myint.

- fix issue152: set VIRTUAL_ENV when running test commands,
  thanks Florian Ludwig.

- better report if we can't get version_info from an interpreter
  executable. Thanks Floris Bruynooghe.
-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-xdist-1.11: restarting crash nodes, fixture cache fix

2014-09-22 Thread holger krekel

I just released pytest-xdist-1.11, the distributed testing plugin for pytest.
It introduces automatic restarting of crashed nodes, courtesy of a 
complete PR from Floris Bruynooghe.  This also works well together with
pytest-timeout by the same author: When one or more test functions hang
or crash, the overall test run will still complete and report about the
incidents.  See the changelog below for more changes and the pypi
project page for what pytest-xdist offers in general:

https://pypi.python.org/pypi/pytest-xdist/

Thanks also to an undisclosed company who partly funded the work
and to Andreas Pelme for contributing analysis of a fixture caching
failure including a test.

best,
Holger Krekel


1.11
-

- fix pytest/xdist issue485 (also depends on py-1.4.22):
  attach stdout/stderr on --boxed processes that die.

- fix pytest/xdist issue503: make sure that a node has usually
  two items to execute to avoid scoped fixtures to be torn down
  pre-maturely (fixture teardown/setup is nextitem sensitive).
  Thanks to Andreas Pelme for bug analysis and failing test.

- restart crashed nodes by internally refactoring setup handling
  of nodes.  Also includes better code documentation.  
  Many thanks to Floris Bruynooghe for the complete PR.

-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


devpi-{server-2.1,web-2.2}: upload history, deploy status, groups

2014-09-22 Thread holger krekel

devpi-{server-2.1,web-2.2}: upload history, deploy status, groups 
==

With devpi-server-2.1 and devpi-web-2.2 you'll get a host of fixes and
improvements as well as some major new features for the private pypi
system:

- upload history: release/tests/doc files now carry metadata for 
  by whom, when and to which index something was uploaded

- deployment status: the new json /+status gives detailed information
  about a replica or master's internal state

- a new authentication hook supports arbitrary external authentication 
  systems which can also return group membership information.  An initial
  separately released devpi-ldap plugin implements verification accordingly.
  You can specify groups in ACLs with the :GROUPNAME syntax.  

- a new --restrict-modify=ACL option to start devpi-server such that
  only select accounts can create new or modify users or indexes

For many more changes and fixes, please see the CHANGELOG information below.

UPGRADE note: devpi-server-2.1 requires to ``--export`` your 2.0
server state and then using ``--import`` with the new version
before you can serve your private packages through devpi-server-2.1.

Please checkout the web plugin if you want to have a web interface::

http://doc.devpi.net/2.1/web.html

Here is a Quickstart tutorial for efficient pypi-mirroring 
on your laptop::

http://doc.devpi.net/2.1/quickstart-pypimirror.html 
And if you want to manage your releases or implement staging
as an individual or within an organisation::
http://doc.devpi.net/2.1/quickstart-releaseprocess.html 
If you want to host a devpi-server installation with nginx/supervisor
and access it from clients from different hosts::
http://doc.devpi.net/2.1/quickstart-server.html 
More documentation here::

http://doc.devpi.net/2.1/

many thanks to Florian Schulze who co-implemented many of the new features.
And special thanks go to the two companies who funded major parts 
of the above work.

have fun,

Holger Krekel, merlinux GmbH


devpi-server-2.1.0 (compared to 2.0.6)


- make replication more precise: if a file cannot be replicated,
  fail with an error log and try again in a few seconds.
  This helps to maintain a consistent replica and discover 
  the potential remaining bugs in the replication code.

- add who/when metadata to release files, doczips and test results
  and preserve it during push operations so that any such file provides
  some history which can be visualized via the web-plugin.  The metadata
  is also exposed via the json API (/USER/INDEX/PROJECTNAME[/VERSION])

- fix issue113: provide json status information at /+status including roles 
  and replica polling status, UUIDs of the repository. See new
  server status docs for more info.

- support for external authentication plugins: new devpiserver_auth_user 
  hook which plugins can implement for user/password validation and
  for providing group membership.

- support groups for acl_upload via the :GROUPNAME syntax. This
  requires an external authentication plugin that provides group
  information.

- on replicas return auth status for +api requests 
  by relaying to the master instead of using own key.

- add --restrict-modify option to specify users/groups which can create,
  delete and modify users and indices.

- make master/replica configuration more permanent and a bit safer
  against accidental errors: introduce --role=auto option, defaulting
  to determine the role from a previous invocation or the presence of the
  --master-url option if there was no previous invocation.  Also verify
  that a replica talks to the same master UUID as with previous requests.

- replaced hack from nginx template which abused try_files in location /
  with the recommended error_page/return combo.
  Thanks Jürgen Hermann

- change command line option --master to --master-url

- fix issue97: remove already deprecated --upgrade 
  option in favor of just using --export/--import

- actually store UTC in last_modified attribute of release files instead of
  the local time disguising as UTC.  preserve last_modified when pushing 
  a release.  

- fix exception when a static resource can't be found.

- address issue152: return a proper 400 not registered message instead
  of 500 when a doczip is uploaded without prior registration.

- add OSX/launchd example configuration when --gen-config is issued.
  thanks Sean Fisk.

- fix replica proxying: don't pass original host header when relaying a
  modifying request from replica to master.

- fix export error when a private project doesnt exist on pypi

- fix pushing of a release when it contains multiple tox results.

- fix refresh button on simple pages on replica sites

- fix an internal link code issue

pytest-2.6.2: fixes and freeze support

2014-09-05 Thread holger krekel
pytest-2.6.2: few fixes and cx_freeze support
===

pytest is a mature Python testing tool with more than a 1100 tests
against itself, passing on many different interpreters and platforms.
This release is drop-in compatible to 2.5.2 and 2.6.X.  It also
brings support for including pytest with cx_freeze or similar
freezing tools into your single-file app distribution.  For details
see the CHANGELOG below.

See docs at:

http://pytest.org

As usual, you can upgrade from pypi via::

pip install -U pytest

Thanks to all who contributed, among them:

Floris Bruynooghe
Benjamin Peterson
Bruno Oliveira

have fun,
holger krekel

2.6.2
---

- Added function pytest.freeze_includes(), which makes it easy to embed
  pytest into executables using tools like cx_freeze.
  See docs for examples and rationale. Thanks Bruno Oliveira.

- Improve assertion rewriting cache invalidation precision.

- fixed issue561: adapt autouse fixture example for python3.

- fixed issue453: assertion rewriting issue with __repr__ containing
  \n{, \n} and \n~.

- fix issue560: correctly display code if an else: or finally: is
  followed by statements on the same line.

- Fix example in monkeypatch documentation, thanks t-8ch.

- fix issue572: correct tmpdir doc example for python3.

- Do not mark as universal wheel because Python 2.6 is different from
  other builds due to the extra argparse dependency.  Fixes issue566.
  Thanks sontek.

-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


devpi-server-2.0.3: fix for plain setup.py register

2014-08-10 Thread holger krekel

Florian Schulze and me just released devpi-server-2.0.3 fixing a regression
from the 1.X series preventing a plain python setup.py register -r NAME
to succeed.  

have fun,

holger


On Wed, Aug 06, 2014 at 21:41 +, holger krekel wrote:
 The new devpi releases (devpi-server-2.0.2, devpi-web-2.0.1, 
 devpi-client-2.0.1)
 contain several fixes for the private github-style pypi caching server, 
 see the changelog below for details.  Find all the documentation at
 
 http://doc.devpi.net/latest
 
 with tutorials and quickstart documents for particular scenarios.
 
 Note that no export/import procedure is needed if you are already running
 a 2.X devpi-server.  If upgrading from a 1.2 devpi-server install, you need
 to upgrade using these instructions:
 
 http://doc.devpi.net/latest/quickstart-server.html#versioning-exporting-and-importing-server-state
 
 many thanks to Florian Schulze who again helped a lot with this release.
 
 have fun,
 
 holger krekel
 
 devpi-2.0.1 (metapackage)
 -
 
 devpi-server-2.0.2:

 - fix issue120: link to upgrade section from main index page.
 
 - preserve http reason string for setup.py submit through replica proxying
 
 - proper error message when devpi push X uses an X that comes from 
   a base index or is not existent
 
 - fix issue121: depend on py-1.4.23 to fix python3.4 compatibility
   for a venusian/py34/py interaction import oddity.
 
 - fix issue126: handle deletion of pypi project cache entries correctly 
   (i.e. ones that are triggered by refresh on simple page).
 
 - Add special handling of :ANONYMOUS: user in acl_upload to allow anonymous
   submit.
 
 - fix nginx template so that when used in a replica setting the master
   always answers HEAD requests without nginx short-cirtcuiting it.
 
 - increase internal cache size to improve performance when many indexes
   and projects are served.
 
 devpi-web-2.0.1:
 
 - fix issue125: javascript for embedded doc view didn't work correctly.
 
 - fix issue118: rendering of description with unicode.
 
 devpi-client-2.0.1:
  
 - fix a test to expect a 403 instead of a 401 from devpi server from
   unauthorized access 
 
 - fix error message on API version client/server mismatch
 
 - fix issue124: package name url matching for the devpi test command
 
 
 ___
 Distutils-SIG maillist  -  distutils-...@python.org
 https://mail.python.org/mailman/listinfo/distutils-sig
 
-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


new devpi-2.0.1/2 releases: fixes, new anonymous upload

2014-08-08 Thread holger krekel

The new devpi releases (devpi-server-2.0.2, devpi-web-2.0.1, devpi-client-2.0.1)
contain several fixes for the private github-style pypi caching server, 
see the changelog below for details.  Find all the documentation at

http://doc.devpi.net/latest

with tutorials and quickstart documents for particular scenarios.

Note that no export/import procedure is needed if you are already running
a 2.X devpi-server.  If upgrading from a 1.2 devpi-server install, you need
to upgrade using these instructions:

http://doc.devpi.net/latest/quickstart-server.html#versioning-exporting-and-importing-server-state

many thanks to Florian Schulze who again helped a lot with this release.

have fun,

holger krekel

devpi-2.0.1 (metapackage)
-

devpi-server-2.0.2:
   
- fix issue120: link to upgrade section from main index page.

- preserve http reason string for setup.py submit through replica proxying

- proper error message when devpi push X uses an X that comes from 
  a base index or is not existent

- fix issue121: depend on py-1.4.23 to fix python3.4 compatibility
  for a venusian/py34/py interaction import oddity.

- fix issue126: handle deletion of pypi project cache entries correctly 
  (i.e. ones that are triggered by refresh on simple page).

- Add special handling of :ANONYMOUS: user in acl_upload to allow anonymous
  submit.

- fix nginx template so that when used in a replica setting the master
  always answers HEAD requests without nginx short-cirtcuiting it.

- increase internal cache size to improve performance when many indexes
  and projects are served.

devpi-web-2.0.1:

- fix issue125: javascript for embedded doc view didn't work correctly.

- fix issue118: rendering of description with unicode.

devpi-client-2.0.1:
 
- fix a test to expect a 403 instead of a 401 from devpi server from
  unauthorized access 

- fix error message on API version client/server mismatch

- fix issue124: package name url matching for the devpi test command


-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-2.6.1: fixes and expecting exceptions in xfail

2014-08-08 Thread holger krekel
pytest-2.6.1: fixes and new xfail marker feature
===

pytest is a mature Python testing tool with an extensive self-test test suite,
passing on many different interpreters and platforms.  The 2.6.1 release
is drop-in compatible to 2.5.2 and actually fixes some regressions
introduced with 2.6.0.  It also brings a little feature to the xfail
marker which now recognizes expected exceptions, see the CHANGELOG below.

See docs at:

http://pytest.org

As usual, you can upgrade from pypi via::

pip install -U pytest

Thanks to all who contributed, among them:

Floris Bruynooghe
Bruno Oliveira
Nicolas Delaby

have fun,
holger krekel

Changes 2.6.1
=

- No longer show line numbers in the --verbose output, the output is now
  purely the nodeid.  The line number is still shown in failure reports.
  Thanks Floris Bruynooghe.

- fix issue437 where assertion rewriting could cause pytest-xdist slaves
  to collect different tests. Thanks Bruno Oliveira.

- fix issue555: add errors attribute to capture-streams to satisfy
  some distutils and possibly other code accessing sys.stdout.errors.

- fix issue547 capsys/capfd also work when output capturing (-s) is disabled.

- address issue170: allow pytest.mark.xfail(...) to specify expected exceptions 
via
  an optional raises=EXC argument where EXC can be a single exception
  or a tuple of exception classes.  Thanks David Mohr for the complete
  PR.

- fix integration of pytest with unittest.mock.patch decorator when
  it uses the new argument.  Thanks Nicolas Delaby for test and PR.

- fix issue with detecting conftest files if the arguments contain
  :: node id specifications (copy pasted from -v output)

- fix issue544 by only removing @NUM at the end of :: separated parts
  and if the part has an .py extension

- don't use py.std import helper, rather import things directly.
  Thanks Bruno Oliveira.

-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-2.6: shorter TBs, new warning system, better nose/mock support

2014-07-21 Thread holger krekel
pytest-2.6.0: shorter tracebacks, new warning system, test runner compat
===

pytest is a mature Python testing tool with more than a 1000 tests
against itself, passing on many different interpreters and platforms.

The 2.6.0 release should be drop-in backward compatible to 2.5.2 and
fixes a number of bugs and brings some new features, mainly:

- shorter tracebacks by default: only the first (test function) entry
  and the last (failure location) entry are shown, the ones between
  only in short format.  Use ``--tb=long`` to get back the old
  behaviour of showing long entries everywhere.

- a new warning system which reports oddities during collection
  and execution.  For example, ignoring collecting Test* classes with an
  ``__init__`` now produces a warning.

- various improvements to nose/mock/unittest integration

Note also that 2.6.0 departs with the zero reported bugs policy
because it has been too hard to keep up with it, unfortunately.
Instead we are for now rather bound to work on upvoted issues in
the https://bitbucket.org/hpk42/pytest/issues?status=newstatus=opensort=-votes
issue tracker.

See docs at:

http://pytest.org

As usual, you can upgrade from pypi via::

pip install -U pytest

Thanks to all who contributed, among them:

Benjamin Peterson
Jurko Gospodnetić
Floris Bruynooghe
Marc Abramowitz
Marc Schlaich
Trevor Bekolay
Bruno Oliveira
Alex Groenholm

have fun,
holger krekel

2.6.0
---

- fix issue537: Avoid importing old assertion reinterpretation code by default.
  Thanks Benjamin Peterson.

- fix issue364: shorten and enhance tracebacks representation by default.
  The new --tb=auto option (default) will only display long tracebacks
  for the first and last entry.  You can get the old behaviour of printing
  all entries as long entries with --tb=long.  Also short entries by
  default are now printed very similarly to --tb=native ones.

- fix issue514: teach assertion reinterpretation about private class attributes
  Thanks Benjamin Peterson.

- change -v output to include full node IDs of tests.  Users can copy
  a node ID from a test run, including line number, and use it as a
  positional argument in order to run only a single test.

- fix issue 475: fail early and comprehensible if calling
  pytest.raises with wrong exception type.

- fix issue516: tell in getting-started about current dependencies.

- cleanup setup.py a bit and specify supported versions. Thanks Jurko
  Gospodnetic for the PR.

- change XPASS colour to yellow rather then red when tests are run
  with -v.

- fix issue473: work around mock putting an unbound method into a class
  dict when double-patching.

- fix issue498: if a fixture finalizer fails, make sure that
  the fixture is still invalidated.

- fix issue453: the result of the pytest_assertrepr_compare hook now gets
  it's newlines escaped so that format_exception does not blow up.

- internal new warning system: pytest will now produce warnings when
  it detects oddities in your test collection or execution.
  Warnings are ultimately sent to a new pytest_logwarning hook which is
  currently only implemented by the terminal plugin which displays
  warnings in the summary line and shows more details when -rw (report on
  warnings) is specified.

- change skips into warnings for test classes with an __init__ and
  callables in test modules which look like a test but are not functions.

- fix issue436: improved finding of initial conftest files from command
  line arguments by using the result of parse_known_args rather than
  the previous flaky heuristics.  Thanks Marc Abramowitz for tests
  and initial fixing approaches in this area.

- fix issue #479: properly handle nose/unittest(2) SkipTest exceptions
  during collection/loading of test modules.  Thanks to Marc Schlaich
  for the complete PR.

- fix issue490: include pytest_load_initial_conftests in documentation
  and improve docstring.

- fix issue472: clarify that ``pytest.config.getvalue()`` cannot work
  if it's triggered ahead of command line parsing.

- merge PR123: improved integration with mock.patch decorator on tests.

- fix issue412: messing with stdout/stderr FD-level streams is now
  captured without crashes.

- fix issue483: trial/py33 works now properly.  Thanks Daniel Grana for PR.

- improve example for pytest integration with python setup.py test
  which now has a generic -a or --pytest-args option where you
  can pass additional options as a quoted string.  Thanks Trevor Bekolay.

- simplified internal capturing mechanism and made it more robust
  against tests or setups changing FD1/FD2, also better integrated
  now with pytest.pdb() in single tests.

- improvements to pytest's own test-suite leakage detection, courtesy of PRs
  from Marc Abramowitz

- fix issue492: avoid leak in test_writeorg.  Thanks Marc Abramowitz.

- fix issue493: don't

devpi-server 2.0.1 bugfixes

2014-07-16 Thread holger krekel
Hi again,

a small follow up release of devpi-server is out to fix setup.py
register/upload commands with basic auth.

best,
holger


devpi-server-2.0.1


- fix regression which prevented the basic authentication for the
  setuptools upload/register commands to fail. Thanks Florian Schulze.

- fix issue106: better error messages on upload failures.
  And better allow auto-registration when uploading release files.
-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


tox-1.7.2: few fixes / posargs parsing change

2014-07-15 Thread holger krekel
Hi everybody,

Just released tox-1.7.2 to PYPI, see the changelog below.
Note: if you need bugs fixed or features implemented 
please submit PRs.  Docs about tox:

http://tox.testrun.org

And repos and issues at:

https://bitbucket.org/hpk42/tox

have fun,
holger


1.7.2
---

- fix issue150: parse {posargs} more like we used to do it pre 1.7.0.
  The 1.7.0 behaviour broke a lot of OpenStack projects.
  See PR85 and the issue discussions for (far) more details, hopefully
  resulting in a more refined behaviour in the 1.8 series.
  And thanks to Clark Boylan for the PR.

- fix issue59: add a config variable ``skip-missing-interpreters`` as
  well as command line option ``--skip-missing-interpreters`` which
  won't fail the build if Python interpreters listed in tox.ini are
  missing.  Thanks Alexandre Conrad for PR104.

- fix issue164: better traceback info in case of failing test commands.
  Thanks Marc Abramowitz for PR92.

- support optional env variable substitution, thanks Morgan Fainberg
  for PR86.

- limit python hashseed to 1024 on Windows to prevent possible
  memory errors.  Thanks March Schlaich for the PR90.
-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


devpi-2.0.0: web/search UI, replication, fixes

2014-07-15 Thread holger krekel
devpi-2.0.0: web, search, replication for PyPI indexes
==

The devpi system in version 2.0 brings tons of fixes
and new features for the private github-style pypi caching server, 
most notably:

- a new web interface featuring search of metadata and documentation
  as well as easier navigation and showing of test results per release
  file.

- a new transactional storage system (based on sqlite) supporting 
  real-time replication over http.

- a new (experimental) hook system for extending server-side
  functionality.

- ported to a solid web framework and wsgi-server: pyramid 
  and waitress.

Upgrade note: devpi-server-2.0 requires to ``--export`` your 1.2 
server state and then using ``--import`` with the new version
before you can serve your private packages through devpi-server-2.0.0.  
Also, please checkout the web plugin if you want to have a web interface::

http://doc.devpi.net/2.0/web.html

Here is a Quickstart tutorial for efficient pypi-mirroring 
on your laptop::

http://doc.devpi.net/2.0/quickstart-pypimirror.html 

And if you want to manage your releases or implement staging
as an individual or within an organisation::

http://doc.devpi.net/2.0/quickstart-releaseprocess.html 

If you want to host a devpi-server installation with nginx/supervisor
and access it from clients from different hosts::

http://doc.devpi.net/2.0/quickstart-server.html 

More documentation here::

http://doc.devpi.net/2.0/

many many thanks to Florian Schulze who implemented the new ``devpi-web``
package and helped with many other improvements.

have fun,

Holger Krekel, merlinux GmbH

2.0.0
--

devpi-server:

- major revamp of the internal core of devpi to support
  replication (both master and server code), a plugin architecture
  with the new devpi-web plugin providing a new web interface.
  Mostly done by Florian Schulze and Holger Krekel.

- moved all html views except for files and the simple index to new
  devpi-web package. Thanks to Florian Schulze for the PR.

- implement issue103: By default if you register a package in an index,
  no lookup on pypi is made for that package anymore. You have to add the
  package to the pypi_whitelist of the index to let pypi releases be mixed in.
  This is to prevent malicious uploads on pypi to overwrite private packages.

- change json api to get rid of the different meaning of URLs with and
  without a trailing slash. /{user}/ is now the same as /user and always
  lists indices.  /{user}/{index} and /{user}/{index}/ now always
  lists the index config and the contained per-stage projects
  (not inherited ones).

- switch the wsgi app to use Pyramid and waitress for WSGI serving.

- don't refresh releaselinks from the mirroring thread but rather
  rely on the next access to do it.

- fix issue98: deleting a project config or a project version now accepts
  names which map to the canonical name of a project.

- fix issue82 and fix issue81: root/pypi now provides the same
  attributes as normal indexes and results in a 409 MethodNotAllowed
  http code when trying to change the config.

- fix issue91: make serverport available as well. Thanks David Bonner.

- fix issue100: support large file uploads.  As we switched away from 
  bottle to pyramid, the body-size limit is gone.

- fix issue99: make devpi-server --start etc work when devpi-server
  is not itself on PATH (by using sys.argv[0] for finding the binary)

- fix issue84: uploading of wheels where the registered package name 
  has an underscore works despite a wheel's metadata carrying
  hyphens instead.  At submit-file time we now lookup the registered
  name and use that instead of assuming the one coming with the wheel
  is the correct one.

- add refresh button on root/pypi project simple index pages which clears the
  internal cache to force a refetch from PyPI.

- implement issue75: We use the custom X-Devpi-Auth header for authentication
  now, instead of overwriting the Authentication header.

- added experimental support for using client certificates when running as a
  replica of a server running behind a proxy

devpi-client:

- Compatibility with devpi-server = 2.0.0

- introduce patchjson PATH JSONFILE command which allows to send
  a request containing a json data structure to a specified path 

- fix issue85: devpi list -v now shows package names

devpi client/server 1.2.2 releases

2014-03-31 Thread holger krekel
Hi all,

finally i got around to do 1.2.2 releases of the devpi pypi server tools
with a few fixes and improvements.  See http://doc.devpi.net for docs
and instructions and below for the changelog.

cheers,
holger krekel


1.2.2


devpi-server:

- fix issue78: create less directories for pypi package files by
  splitting the md5 part into two. Avoids TooManyLinks errors in
  large installations.

- fix --stop on windows.  Thanks to Christian Ullrich for the PR.

- fix issue79: interoperate with pip-1.5 by interpreting accept
  header as */* as html_preferred.  Thanks Richard Jones.

- use latest virtualenv-1.11.2 when bootstrapping on jenkins

- fix issue89: adapt for bottle changes in 0.12.1.  Thanks 
  Alexey Sveshnikov.

devpi-client:

- depend on pkginfo1.2b1 for wheel metadata reading support, 
  remove twine dependency. Thanks Tres Seaver.

- new: also write buildout configuration file with --set-cfg.
  Thanks Christian Ullrich for the PR.
-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-xdist-1.10 released (distributed testing plugin)

2014-01-30 Thread holger krekel
Hi all,

also released pytest-xdist-1.11 with some little improvements 
and speedups regarding overheads for distributing tests
(maybe 10%, not too much).

Install it with:

pip install -U pytest-xdist

and checkout the pypi page:

https://pypi.python.org/pypi/pytest-xdist

best,
holger

1.10
-

- add glob support for rsyncignores, add command line option to pass
  additional rsyncignores. Thanks Anatoly Bubenkov.

- fix pytest issue382 - produce pytest_runtest_logstart event again
  in master. Thanks Aron Curzon.

- fix pytest issue419 by sending/receiving indices into the test
  collection instead of node ids (which are not neccessarily unique
  for functions parametrized with duplicate values)

- send multiple to test indices in one network message to a slave
  and improve heuristics for sending chunks where the chunksize
  depends on the number of remaining tests rather than fixed numbers.
  This reduces the number of master - node messages (but not the
  reverse direction)


-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


tox-1.7.0: many bug fixes and little improvements

2014-01-30 Thread holger krekel

Just released tox-1.7.0 (finally), the generic virtualenv-based test runner
for Python.  It contains a lot of fixes and improvements although there 
are some bugs remaining.  While a lot of pull requests are thankfully offered
i could use some more co-maintaining/reviewing to allow for some 
faster progress.

Anyway, to install to 1.7.0 :

pip install -U tox


and to look at the docs:

https://testrun.org/tox/latest/

have fun,
holger

1.7.0
-

- don't lookup pip-script anymore but rather just pip on windows 
  as this is a pip implementation detail and changed with pip-1.5.  
  It might mean that tox-1.7 is not able to install a different pip 
  version into a virtualenv anymore.

- drop Python2.5 compatibility because it became too hard due
  to the setuptools-2.0 dropping support.  tox now has no 
  support for creating python2.5 based environments anymore
  and all internal special-handling has been removed.

- merged PR81: new option --force-dep which allows to 
  override tox.ini specified dependencies in setuptools-style.
  For example --force-dep 'django1.6' will make sure
  that any environment using django as a dependency will 
  get the latest 1.5 release.  Thanks Bruno Oliveria for 
  the complete PR.
  
- merged PR125: tox now sets PYTHONHASHSEED to a random value
  and offers a --hashseed option to repeat a test run with a specific seed.
  You can also use --hashsheed=notset to instruct tox to leave the value
  alone.  Thanks Chris Jerdonek for all the work behind this.

- fix issue132: removing zip_safe setting (so it defaults to false)
  to allow installation of tox
  via easy_install/eggs.  Thanks Jenisys.

- fix issue126: depend on virtualenv=1.11.2 so that we can rely
  (hopefully) on a pip version which supports --pre. (tox by default
  uses to --pre).  also merged in PR84 so that we now call virtualenv
  directly instead of looking up interpreters.  Thanks Ionel Maries Cristian.
  This also fixes issue140.

- fix issue130: you can now set install_command=easy_install {opts} {packages}
  and expect it to work for repeated tox runs (previously it only worked
  when always recreating).  Thanks jenisys for precise reporting. 

- fix issue129: tox now uses Popen(..., universal_newlines=True) to force 
  creation of unicode stdout/stderr streams.  fixes a problem on specific
  platform configs when creating virtualenvs with Python3.3. Thanks
  Jorgen Schäfer or investigation and solution sketch.

- fix issue128: enable full substitution in install_command,
  thanks for the PR to Ronald Evers

- rework and simplify commands parsing and in particular posargs
  substitutions to avoid various win32/posix related quoting issues.

- make sure that the --installpkg option trumps any usedevelop settings
  in tox.ini or

- introduce --no-network to tox's own test suite to skip tests
  requiring networks

- introduce --sitepackages to force sitepackages=True in all
  environments.   

- fix issue105 -- don't depend on an existing HOME directory from tox tests.

-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-2.5.2: fixes, plugin index, contribution guide

2014-01-30 Thread holger krekel
pytest-2.5.2: fixes, plugin page, contribution guide
===

pytest is a mature Python testing tool with more than a 1000 tests 
against itself, passing on many different interpreters and platforms.  

The 2.5.2 release fixes a few bugs with two maybe-bugs remaining and
actively being worked on (and waiting for the bug reporter's input).
We also have a new contribution guide thanks to Piotr Banaszkiewicz
and an improved 3rd party plugin overview (including py2/py3 tests)
page thanks to Bruno Oliveira.

See docs at:

http://pytest.org

As usual, you can upgrade from pypi via::

pip install -U pytest

Thanks to the following people who contributed to this release:

Anatoly Bubenkov 
Ronny Pfannschmidt
Floris Bruynooghe
Bruno Oliveira 
Andreas Pelme 
Jurko Gospodnetić
Piotr Banaszkiewicz 
Simon Liedtke 
lakka 
Lukasz Balcerzak 
Philippe Muller 
Daniel Hahler 

have fun,
holger krekel

2.5.2
---

- fix issue409 -- better interoperate with cx_freeze by not
  trying to import from collections.abc which causes problems 
  for py27/cx_freeze.  Thanks Wolfgang L. for reporting and tracking it down.

- fixed docs and code to use pytest instead of py.test almost everywhere.
  Thanks Jurko Gospodnetic for the complete PR.  

- fix issue425: mention at end of py.test -h that --markers
  and --fixtures work according to specified test path (or current dir)

- fix issue413: exceptions with unicode attributes are now printed
  correctly also on python2 and with pytest-xdist runs. (the fix
  requires py-1.4.20)

- copy, cleanup and integrate py.io capture
  from pylib 1.4.20.dev2 (rev 13d9af95547e)
  
- address issue416: clarify docs as to conftest.py loading semantics

- fix issue429: comparing byte strings with non-ascii chars in assert
  expressions now work better.  Thanks Floris Bruynooghe.

- make capfd/capsys.capture private, its unused and shouldnt be exposed

-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


execnet-1.2 released: gevent/eventlet support, many improvements

2014-01-30 Thread holger krekel
Hi all,

just released execnet-1.2, the tool for writing distributed zero-install
python programs.  The release contains lots of improvements and fixes.  
Most notably execnet now supports to use gevent/eventlet models on each of
the initiating side and the remote side (configurable separately).
See the changelog below for details.

Install it via:

pip install -U execnet

Read the docs here:

http://codespeak.net/execnet/

have fun playing,
holger


1.2


- fix issue22 -- during interpreter shutdown don't throw
  an exception when we can't send a termination sequence
  anymore as we are about to die anyway.

- fix issue24 -- allow concurrent creation of gateways
  by guarding automatic id creation by a look.
  Thanks tlecomte.

- majorly refactor internal thread and IO handling.
  execnet can now operate on different thread models,
  defaults to thread but allows for eventlet and
  gevent if it is installed.

- gateway.remote_exec() will now execute in multiple
  threads on the other side by default.  The previous
  neccessity of running gateway.remote_init_threads()
  to allow for such concurrency is gone.  The latter
  method is now a no-op and will be removed in future
  versions of execnet.

- fix issue20: prevent AttributError at interpreter shutdown
  by not trying to send close/last_message messages if the
  world around is half destroyed.

- fix issue21: allow to create local gateways with sudo aka
  makegateway(popen//python=sudo python).
  Thanks Alfredo Deza for the PR. 

- streamline gateway termination and simplify proxy
  implementation. add more internal tracing.

- if execution hangs in computation, we now try to 
  send a SIGINT to ourselves on Unix platforms
  instead of just calling thread.interrupt_main()
  
- change license from GPL to MIT

- introduce execnet.dump/load variants of dumps/loads
  serializing/unserializing mechanism.

- improve channel.receive() communication latency on python2
  by changing the default timeout of the underlying Queue.get
  to a regular None instead of the previous default -1 
  which caused an internal positive timeout value
  (a hack probably introduced to allow CTRL-C to pass
  through for python2.5 versions).

- extended ssh-syntax to allow passing of command line args, 
  e.g.  ssh= -p 50 hostname. The options are passed to 
  the underlying ssh client binary.  Thanks tundish.

- fix issue15: interoperability with inspect.getstack().
  Thanks Peter Feiner.

- fix issue10 : skip PYTHONDONTWRITEBYTECODE test if 
  it we are running with PYTHONDONTWRITEBYTECODE set.

- dont try the jython pid fixup on a RemoteIO

- avoid accidentally setting exc_info() in gateway_base.py
-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-2.5.1: fixes and new home page styling

2013-12-18 Thread holger krekel
pytest-2.5.1: fixes and new home page styling
===

pytest is a mature Python testing tool with more than a 1000 tests 
against itself, passing on many different interpreters and platforms.  

The 2.5.1 release maintains the zero-reported-bugs promise by fixing
the three bugs reported since the last release a few days ago.  It also
features a new home page styling implemented by Tobias Bieniek, based on
the flask theme from Armin Ronacher:

http://pytest.org

If you have anything more to improve styling and docs, 
we'd be very happy to merge further pull requests.

On the coding side, the release also contains a little enhancement to
fixture decorators allowing to directly influence generation of test
ids, thanks to Floris Bruynooghe.  Other thanks for helping with 
this release go to Anatoly Bubenkoff and Ronny Pfannschmidt.

As usual, you can upgrade from pypi via::

pip install -U pytest

have fun and a nice remaining bug-free time of the year :)
holger krekel

2.5.1
---

- merge new documentation styling PR from Tobias Bieniek.

- fix issue403: allow parametrize of multiple same-name functions within
  a collection node.  Thanks Andreas Kloeckner and Alex Gaynor for reporting
  and analysis.

- Allow parameterized fixtures to specify the ID of the parameters by
  adding an ids argument to pytest.fixture() and pytest.yield_fixture().
  Thanks Floris Bruynooghe. 

- fix issue404 by always using the binary xml escape in the junitxml
  plugin.  Thanks Ronny Pfannschmidt.

- fix issue407: fix addoption docstring to point to argparse instead of
  optparse. Thanks Daniel D. Wright.

-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-2.5.0: many fixes. ZERO reported bugs left.

2013-12-13 Thread holger krekel
pytest-2.5.0: many fixes ... now down to ZERO reported bugs!
===

pytest-2.5.0 is a big bug fixing release, the result of two community bug
fixing days plus numerous additional works from many people and
reporters.  The release should be fully compatible to 2.4.2, existing
plugins and test suites.  

We aim at maintaining this level of ZERO reported bugs because it's no
fun if your testing tool has bugs, is it?  Under a condition, though: 
when submitting a bug report please provide clear information about the
circumstances and a simple example which reproduces the problem.

The issue tracker is of course not empty now.  We have many remaining
enhancement issues which we'll hopefully can tackle in 2014 with your help.

For those who use older Python versions, please note that pytest is itself not
automatically tested anymore on python2.5 due to virtualenv, setuptools and tox
not supporting it anymore.  Manual verification shows that it 
works fine still but that might change in the future.

As usual, current docs are at 

http://pytest.org 

and you can upgrade from pypi via::

pip install -U pytest

Particular thanks for helping with this release go to Anatoly Bubenkoff,
Floris Bruynooghe, Marc Abramowitz, Ralph Schmitt, Ronny Pfannschmidt,
Donald Stufft, James Lan, Rob Dennis, Jason R. Coombs, Mathieu Agopian,
Virgil Dupras, Bruno Oliveira, Alex Gaynor and others.

have fun,
holger krekel


2.5.0
---

- dropped python2.5 from automated release testing of pytest itself 
  which means it's probably going to break soon (but still works 
  with this release we believe).

- simplified and fixed implementation for calling finalizers when
  parametrized fixtures or function arguments are involved.  finalization 
  is now performed lazily at setup time instead of in the teardown phase.
  While this might sound odd at first, it helps to ensure that we are 
  correctly handling setup/teardown even in complex code.  User-level code
  should not be affected unless it's implementing the pytest_runtest_teardown
  hook and expecting certain fixture instances are torn down within (very
  unlikely and would have been unreliable anyway).

- PR90: add --color=yes|no|auto option to force terminal coloring 
  mode (auto is default).  Thanks Marc Abramowitz.

- fix issue319 - correctly show unicode in assertion errors.  Many
  thanks to Floris Bruynooghe for the complete PR.  Also means
  we depend on py=1.4.19 now.

- fix issue396 - correctly sort and finalize class-scoped parametrized 
  tests independently from number of methods on the class.  

- refix issue323 in a better way -- parametrization should now never
  cause Runtime Recursion errors because the underlying algorithm
  for re-ordering tests per-scope/per-fixture is not recursive
  anymore (it was tail-call recursive before which could lead
  to problems for more than 966 non-function scoped parameters).

- fix issue290 - there is preliminary support now for parametrizing
  with repeated same values (sometimes useful to to test if calling 
  a second time works as with the first time).

- close issue240 - document precisely how pytest module importing
  works, discuss the two common test directory layouts, and how it 
  interacts with PEP420-namespace packages.

- fix issue246 fix finalizer order to be LIFO on independent fixtures
  depending on a parametrized higher-than-function scoped fixture. 
  (was quite some effort so please bear with the complexity of this sentence :)
  Thanks Ralph Schmitt for the precise failure example.
 
- fix issue244 by implementing special index for parameters to only use
  indices for paramentrized test ids

- fix issue287 by running all finalizers but saving the exception
  from the first failing finalizer and re-raising it so teardown will
  still have failed.  We reraise the first failing exception because
  it might be the cause for other finalizers to fail.

- fix ordering when mock.patch or other standard decorator-wrappings
  are used with test methods.  This fixues issue346 and should
  help with random xdist collection failures.  Thanks to
  Ronny Pfannschmidt and Donald Stufft for helping to isolate it.

- fix issue357 - special case -k expressions to allow for
  filtering with simple strings that are not valid python expressions.
  Examples: -k 1.3 matches all tests parametrized with 1.3.
  -k None filters all tests that have None in their name
  and conversely -k 'not None'. 
  Previously these examples would raise syntax errors.
  
- fix issue384 by removing the trial support code
  since the unittest compat enhancements allow
  trial to handle it on its own

- don't hide an ImportError when importing a plugin produces one.
  fixes issue375.

- fix issue275 - allow usefixtures and autouse fixtures 
  for running doctest text files.

- fix issue380 by making --resultlog only rely on longrepr instead

devpi-{server,client}-1.2.1: bug fixes + refinement to test

2013-11-18 Thread holger krekel
devpi-1.2.1: bug fixes and improved test command
==

The devpi-{server,client}-1.2.1 releases bring important
bug fixes and refinements.  See Changelog below.

For getting started with deploying your own pypi server
on a laptop or on  company server and for using the 
devpi workflow tool (optional), see:

http://doc.devpi.net

If you want to upgrade an existing installation, you should 
be able to execute::

$ pip install -U devpi
$ devpi-server --upgrade-state [--serverdir YOUR_SERVER_DIR]

Have fun,

holger krekel

Changelog 1.2.1
--

devpi-server:

- fix an import issue for doc files which were wrongly tied to a newer
  version of a base index. now version auto detection for storing
  doc files only works within a stage.  Thanks Laurent Brack for bringing
  it up and providing the repo.

- fix issue66: api endpoints now also respect --outside-url setting
  so that you can serve devpi from a subpath.  Thanks for Fabian
  Snovna for reporting and analysis.

- fix issue63: skip egg links that go to a directory (this requires
  doing a SVN checkout which devpi-server does not do).  Thanks
  Ken Jung for analyzing the problem.

- fix issue68: don't derive metadata from filename but instead
  look it up in metadata or submitted form.

- fix cache-invalidation when normalized_project_name != real_name
  (e.g. for Django but also many others). addresses issue59.

- add newline to simple list output for better human readability of the
  page (thanks Brandon Maister)

- make xmlrpc calls to pypi's changelog API use requests sessions 
  so that http proxies are respected there as well (fixes issue58).
  thanks to riehlm for identifying the problem and testing the fix.

- internally refactor and consolidate mocking against requests library

- --upgrade-state will upgrade now between major.minor/major.minor+1 changes.

devpi-client:

- fix python -m devpi invocation. Thanks Sebastian Ralph.

- fix issue66: devpi use user/index can now switch between URLs
  if user/index is mounted on a subpath.

- fix issue71: allow pip/setuptools like requirements specs
  with the test subcommand, e.g.  devpi test 'pkg=1.0'.
  Thanks Sebastian Rahlf for the PR.


-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


devpi 1.2 releases: many improvements + py33 support

2013-11-03 Thread holger krekel
The devpi-{server,client}-1.2 releases bring a lot of refinements
and improvements for serving and interacting with your own pypi indexes:

- devpi-server serves release files from URLs containing a MD5 hash
  allowing safe serving of those files through nginx

- devpi-server's USER/INDEX urls can now be used directly with 
  pip/easy_install without the previously required (and still valid)
  ``+simple/`` suffix.

- ``devpi use --set-cfg`` reads and writes pip/easy_install 
  configuration files, making those installers pick up the in-use
  index seemlessly.  You can even do ``devpi use --always-set-cfg`` to 
  always set those config files when issuing a devpi use afterwards.

- ``devpi upload`` got many improvements:

  - versioned files (git and hg) will be exported to a clean directory prior to 
the build step
  - distutils/setup.py is now only used for building a package
  - documentation upload is tied to a version now
  - you can directly upload distribution files, including wheel files

- both devpi-server and devpi-client are python3.3 compatible now and 
  depend on a new devpi-common package which consolidates various 
  pypi-interaction aspects to avoid code duplication.  Also,
  global http proxy settings are honoured.

If you have an existing devpi-server-1.1 installation serving
your own packages you can install devpi-server=1.2 and 
migrate the data with::

devpi-server --upgrade-state [--serverdir your_server_dir]

This upgrades your server state in-place.  Please make sure you
backup your serverdir ahead of doing the upgrade (default location 
is ~/.devpi/server).

WARNING: ``devpi-server --gendeploy`` is deprecated and will be removed 
probably in favor of just generating example config files for 
nginx/supervisor/cron. Also ``devpi install`` is deprecated now 
in favor of using pip/easy_install directly (see also the --set-cfg
and --always-set-cfg options).

For more information please refer to the extensive documentation at:

http://doc.devpi.net/

or check the CHANGELOG below.

have fun,

holger krekel


1.2


devpi-server:

- serve links to files on simple pages and index root as relative
  paths so that it works more nicely with proxy-pass server setups.
  fixes issue56.

- make devpi-server and devpi-common python3.3 compatible, addresses
  issue57

- use system http/s proxy settings from devpi-server.  fixes issue58.

- refactor locations to allow nginx serving static files more directly.
  Also updated nginx template accordingly.

- rework --upgrade-state to detect the state version of the server dir
  and create an appropriate virtualenv with a devpi-server install in order
  to export data, and then import that version.

- allow to use /user/index as indexserver url for pip/easy_install by
  redirecting non-json queries to /user/index/PROJ[/] to 
  /user/index/+simple/PROJ/

- fix submission of multi-value fields like classifiers or platform
  (previously they would be wrongly collapsed to become the last value of a 
list)

- fix normalization import/export issue: pypi names take precendence
  for defining the real name of a project.

- always store uploaded documentation with a version.  While 
  devpi upload will make sure to pass in the version, setup.py upload_docs
  will not pass in a version.  In the latter case, devpi-server assumes
  the documentation belongs to the highest yet registered release.
  This change requires exporting with devpi-1.1 and importing with devpi-1.2
  in order to properly store versioned docs internally.

- use types/url/metadata/validation functionality of new depdency devpi_common 

- internal cleanup using pytest-flakes

- make devpi-server use a proper UserAgent string

devpi-client:

- devpi list and devpi remove now accept a pip/setuptools style
  requirement like pkg=1.0 instead of the former for limited pkg-1.0.

- make devpi-client fully work with python3.3 and fix test bugs 

- use system http/s proxy settings.  fixes issue58.

- add devpi test -c tox.ini package to use a particular (external)
  tox.ini for running tox with the unpackaged package.
  also add --fallback-ini tox.ini option which will only 
  be used if the download package has no tox.ini.

- new devpi use --set-cfg option to set pip/easy_install configuration
  files when changing indexes.  Also new devpi use --always-set-cfg=yes
  option if you want to imply --set-cfg on future devpi use invocations
  and devpi use --always-st-cfg=no to disable this implication.

- support git and hg for exporting all versioned files of a directory 
  before performing the build step when uploading

- improve how upload works: setup.py is only used for building docs
  and release files but not for the remote upload part.  This gets rid of a 
  number of hacks that were done trying to get the Python shipped distutils 
  to pick the proper devpi index and allows proper SSL verification on Python2.6
  onwards.

- upload: show response when uploading

pytest-2.4.2: colorama on win32, plugin/tmpdir/other fixes

2013-10-08 Thread holger krekel

pytest-2.4.2 is another bug-fixing release of the 2.4 series
bringing another few fixes and little improvements:

- on Windows require colorama and a newer py lib so that py.io.TerminalWriter()
  now uses colorama instead of its own ctypes hacks. (fixes issue365)
  thanks Paul Moore for bringing it up.

- fix -k matching of tests where repr and attr and other names would
  cause wrong matches because of an internal implementation quirk
  (don't ask) which is now properly implemented. fixes issue345.

- avoid tmpdir fixture to create too long filenames especially
  when parametrization is used (issue354)

- fix pytest-pep8 and pytest-flakes / pytest interactions
  (collection names in mark plugin was assuming an item always
  has a function which is not true for those plugins etc.)
  Thanks Andi Zeidler.

- introduce node.get_marker/node.add_marker API for plugins
  like pytest-pep8 and pytest-flakes to avoid the messy
  details of the node.keywords  pseudo-dicts.  Adapated
  docs.

- remove attempt to dup stdout at startup as it's icky.
  the normal capturing should catch enough possibilities
  of tests messing up standard FDs. 

- add pluginmanager.do_configure(config) as a link to 
  config.do_configure() for plugin-compatibility

as usual, docs at http://pytest.org and upgrades via::

pip install -U pytest

have fun,
holger krekel
-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-2.4.1: fix three regressions (of 2.4 compared to 2.3.5)

2013-10-04 Thread holger krekel

pytest-2.4.1 is a quick follow up release to fix three regressions
compared to 2.3.5 before they hit more people:

- When using parser.addoption() unicode arguments to the
  type keyword should also be converted to the respective types.
  thanks Floris Bruynooghe, @dnozay. (fixes issue360 and issue362)

- fix dotted filename completion when using argcomplete 
  thanks Anthon van der Neuth. (fixes issue361)

- fix regression when a 1-tuple (arg,) is used for specifying
  parametrization (the values of the parametrization were passed
  nested in a tuple).  Thanks Donald Stufft.

- also merge doc typo fixes, thanks Andy Dirnberger

as usual, docs at http://pytest.org and upgrades via::

pip install -U pytest

have fun and keep bug reports coming!
holger krekel
-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-2.4: may better fixtures be with you

2013-10-01 Thread holger krekel
The just released pytest-2.4.0 brings many improvements and numerous 
bug fixes while remaining plugin- and test-suite compatible apart
from a few supposedly very minor incompatibilities.  See below for 
a full list of details.  A few feature highlights:

- new yield-style fixtures `pytest.yield_fixture
  http://pytest.org/latest/yieldfixture.html`_, allowing to use
  existing with-style context managers in fixture functions.

- improved pdb support: ``import pdb ; pdb.set_trace()`` now works
  without requiring prior disabling of stdout/stderr capturing.
  Also the ``--pdb`` options works now on collection and internal errors
  and we introduced a new experimental hook for IDEs/plugins to 
  intercept debugging: ``pytest_exception_interact(node, call, report)``.

- shorter monkeypatch variant to allow specifying an import path as
  a target, for example: ``monkeypatch.setattr(requests.get, myfunc)``

- better unittest/nose compatibility: all teardown methods are now only
  called if the corresponding setup method succeeded.

- integrate tab-completion on command line options if you
  have `argcomplete http://pypi.python.org/pypi/argcomplete`_ 
  configured.

- allow boolean expression directly with skipif/xfail
  if a reason is also specified.

- a new hook ``pytest_load_initial_conftests`` allows plugins like
  `pytest-django http://pypi.python.org/pypi/pytest-django`_ to
  influence the environment before conftest files import ``django``.

- reporting: color the last line red or green depending if
  failures/errors occured or everything passed.

The documentation has been updated to accomodate the changes, 
see `http://pytest.org http://pytest.org`_ 

To install or upgrade pytest::

pip install -U pytest # or
easy_install -U pytest


**Many thanks to all who helped, including Floris Bruynooghe, 
Brianna Laugher, Andreas Pelme, Anthon van der Neut, Anatoly Bubenkoff, 
Vladimir Keleshev, Mathieu Agopian, Ronny Pfannschmidt, Christian
Theunert and many others.**

may passing tests be with you,

holger krekel

Changes between 2.3.5 and 2.4
---

known incompatibilities:

- if calling --genscript from python2.7 or above, you only get a
  standalone script which works on python2.7 or above.  Use Python2.6
  to also get a python2.5 compatible version.

- all xunit-style teardown methods (nose-style, pytest-style,
  unittest-style) will not be called if the corresponding setup method failed,
  see issue322 below.

- the pytest_plugin_unregister hook wasn't ever properly called
  and there is no known implementation of the hook - so it got removed.

- pytest.fixture-decorated functions cannot be generators (i.e. use
  yield) anymore.  This change might be reversed in 2.4.1 if it causes
  unforeseen real-life issues.  However, you can always write and return
  an inner function/generator and change the fixture consumer to iterate
  over the returned generator.  This change was done in lieu of the new
  ``pytest.yield_fixture`` decorator, see below.

new features:

- experimentally introduce a new ``pytest.yield_fixture`` decorator
  which accepts exactly the same parameters as pytest.fixture but
  mandates a ``yield`` statement instead of a ``return statement`` from
  fixture functions.  This allows direct integration with with-style
  context managers in fixture functions and generally avoids registering
  of finalization callbacks in favour of treating the after-yield as
  teardown code.  Thanks Andreas Pelme, Vladimir Keleshev, Floris
  Bruynooghe, Ronny Pfannschmidt and many others for discussions.

- allow boolean expression directly with skipif/xfail
  if a reason is also specified.  Rework skipping documentation
  to recommend condition as booleans because it prevents surprises
  when importing markers between modules.  Specifying conditions
  as strings will remain fully supported.

- reporting: color the last line red or green depending if
  failures/errors occured or everything passed.  thanks Christian
  Theunert.

- make import pdb ; pdb.set_trace() work natively wrt capturing (no
  -s needed anymore), making ``pytest.set_trace()`` a mere shortcut.

- fix issue181: --pdb now also works on collect errors (and 
  on internal errors) .  This was implemented by a slight internal 
  refactoring and the introduction of a new hook 
  ``pytest_exception_interact`` hook (see next item).

- fix issue341: introduce new experimental hook for IDEs/terminals to 
  intercept debugging: ``pytest_exception_interact(node, call, report)``.

- new monkeypatch.setattr() variant to provide a shorter
  invocation for patching out classes/functions from modules:

 monkeypatch.setattr(requests.get, myfunc)

  will replace the get function of the requests module with ``myfunc``.

- fix issue322: tearDownClass is not run if setUpClass failed. Thanks
  Mathieu Agopian for the initial fix.  Also make all of pytest/nose
  finalizer mimick the same generic behaviour: if a setupX exists

devpi-1.1: improved pypi cache, data migration, wheels, ...

2013-09-25 Thread holger krekel
The devpi-{server,client}-1.1 releases bring a lot of refinements
and improvements for serving standalone pypi mirrors or company/private
indexes which seemlessly merge in PyPI releases, mainly:

- improved speed and semantics of pypi cache.  devpi-server
  has been tested to correctly mirror all ~34000 projects
  on pypi.python.org now, and minimizes upstream interactions
  by fully exploiting the existing mirroring protocols.

- data migration: new --upgrade/import/export options.
  versioning of serverstate and API calls so that future
  changes can be detected by clients.

- better support for .whl files and many other little 
  improvements and bug fixes, see the changelog
  below for more info.

Note that devpi-1.1 will require to ``--upgrade`` your 1.0 
server state before you can serve with devpi-server-1.1 release.

Docs also were updated.  Here is a Quickstart tutorial 
for efficient pypi-mirroring on your laptop:: 

http://doc.devpi.net/1.1/quickstart-pypimirror.html

And if you want to manage your releases or implement staging
as an individual or within an organisation::

http://doc.devpi.net/1.1/quickstart-releaseprocess.html

If you want to permanently install devpi-server and potentially
access it from many clients::

http://doc.devpi.net/1.1/quickstart-server.html

More documentation and the beginning of an exhaustive user manual::

http://doc.devpi.net/latest/

have fun,

holger


CHANGELOG 1.1


devpi-server:

- systematically test pypi/mirror code against all 34K pypi projects
  so that we know that all http/https installable archive links that pypi 
offers 
  are correctly recognized by devpi-server's root/pypi index.

- if no pypi mirror state is known, devpi-server now calls
  pypi to obtain names/serials.  It will fail to start
  if no such initial connection is possible.  Once a first mirror
  state is known, subsequent devpi-server starts will
  not perform this initial query.

- speed up and make more reliable all operations on private packages which
  have no pypi.python.org release: we can now determine if a project
  exists on pypi and under which name exactly without
  remote queries or redirects to pypi.python.org.

- fix issue45: register/upload package names are now properly 
  validated and redirects take place if e.g. a project was
  registered as name-sub and +simple/name_sub is queried.

- new --upgrade-state command to allow for easy and safe
  in-place upgrading of server state.  This is not guranteed
  to be possible for all future releases which might require
  using --export with an older version and --import with a newer
  version.

- new --export/--import options to dump and import server contents:
  users, indexes, docs, release files and (test) attachments.
  Note that root/pypi (PyPI-caching information) will not be exported/imported.
  (maybe in the future if there is demand). 

- fix issue49: both push and import/export now support docfiles.  Note,
  however, that docfiles relate to a project as a whole and are not tied
  to a particular version.  This property is inherited from the PyPI
  standard upload_docs action and cannot be changed without interfering
  or replacing the upload_docs protocol of setuptools/sphinx.

- fix issue51: return 200 code if release file is successfully uploaded 
  but jenkins could not be triggered (previously returned 500)

- reject simple/NAME if NAME contains non-ascii characters
  (PEP426 naming rules)

- devpi-server now returns a X-DEVPI-API-VERSION and
  X-DEVPI-SERVER-VERSION header.  For future incompatible changes 
  these versions allow clients to reject interactions.

- also add .serverversion file and write it if it does not
  exist, and make devpi-server use it to verify if
  operating on a compatible server data layout, otherwise bail out.

- address issue43: --gendeploy now uses pip without --pre and
  explicitely instructs pip to install the exact same version 
  of devpi-server with which --gendeploy is issued.

- fix issue46 -- for GET /root/pypi/ only show a link to the
  simple page instead of computing latest in-stage packages
  which is only useful for devpi's user indices.

- fix issue37: upload with expired login causes proper 401


devpi-client:

- detect X-DEVPI-API-VERSION header and check for compatibility.
  devpi-client currently supports version 1 and warns if
  no version is known (defaulting to 1).

- 

tox-1.6.1 / detox-0.9.3: some fixes

2013-09-04 Thread holger krekel

I just pushed tox-1.6.1 to PyPI which fixes a number of issues
Also detox-0.9.3, the parallelizing tox runner, is out.

tox aims to automate and standardize testing in Python, see docs:

http://tox.testrun.org

If you want to support tox development other than through contributions
or feedback, you may send gifts to my gittip account:

https://www.gittip.com/hpk42/

Oh, and a NOTE on Python2.5 support: support for running tox/detox
themselves on python2.5 will be dropped anytime now while _creating_ 
python2.5 environments (through tox.ini) will remain supported still 
for some time (but not indefinitely).

have fun,
holger krekel

tox 1.6.1
---

- fix issue119: {envsitepackagesdir} is now correctly computed and has
  a better test to prevent regression.

- fix issue116: make 1.6 introduced behaviour of changing to a 
  per-env HOME directory during install activities dependent 
  on --set-home for now.  Should re-establish the old behaviour
  when no option is given.

- fix issue118: correctly have two tests use realpath(). Thanks Barry
  Warsaw.

- fix test runs on environments without a home directory
  (in this case we use toxinidir as the homedir)

- fix issue117: python2.5 fix: don't use ``--insecure`` option because 
  its very existence depends on presence of ssl.  If you
  want to support python2.5/pip1.3.1 based test environments you need 
  to install ssl and/or use PIP_INSECURE=1 through ``setenv``. section.

- fix issue102: change to {toxinidir} when installing dependencies.
  this allows to use relative path like in -rrequirements.txt.

detox-0.9.3
---

- fix issue6: quickly make detox work with tox-1.6 again (although not
  all 1.6 features supported, e.g. --develop does not work)

- fix issue3: don't claim a TROVE identifier of python3 because detox
  itself depends on eventlet which does not work on py3 yet. (Nevertheless
  detox will create py3 environments through tox of course)

- fix issue1: support python2.5 again (although we might drop it in the
  future -- it's enough of tox/detox can _create_ and handle py25 environments,
  they don't neccessarily need to support running themselv on py25)

-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


devpi-0.9.2: uploading existing archives files

2013-06-24 Thread holger krekel

devpi, the caching pypi server and its optional upload/test/install helper
tool, just got a devpi-0.9.2 release.  See the full updated docs here:

http://doc.devpi.net

Apart from some streamlining, there is a new upload option::

devpi upload --from-dir path/to/dir [--only-latest]

which uploads existing release files to a devpi index, optionally only
the latest versions.  This is achieved with the help of ``pkginfo``
extracting PKGINFO files and, for the few where it's missing, using the
filename to determine name/version data.  Thanks to Anthon van der Neut 
for his related PRs.

See below for a more detailed changelog.

best,
holger

0.9.2 (compared to 0.9.1)


server:

- fix /USER/INDEXNAME root views to contain only latest in-stage packages

- make +api calls return bases so that devpi use can show them

client:

- introduce devpi upload --fromdir for uploading archives in bulk
  mode, thanks to Anthon van der Neut for helping with this!
  (resolved issue5)

- improve automatic server handling via devpi use

- for devpi server you now need to specify --log to see log lines

- make devpi use also show base indexes by default

- fix issue4: auto-server data stored in non-dot dir
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


devpi-0.9.1: pushing tested releases to pypi

2013-06-18 Thread holger krekel
Hi all,

devpi-0.9.1 is out which fixes bugs and introduces support for pushing a
tested release candidate from a private index to pypi.  See

http://doc.devpi.net

on the ease of doing devpi upload, test and push commands
as well as general information on the devpi-server and devpi tools.

Thanks to all issue reporters and to Andi Albrecht for his pull request.

best,
holger
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


devpi-server-0.8.5: fixes, fewer dependencies for pypi caching server

2013-05-14 Thread holger krekel
Hi all,

just did a quick release of devpi-server 0.8.5, the pypi.python.org
caching server.  This should fix some cases of uninstallable packages 
and removes pip and virtualenv from its dependencies.  See

https://pypi.python.org/pypi/devpi-server

for details.  Thanks to Markus Zapke-Gruendemann for some help
and to everybody for reporting issues.

cheers,
holger

-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


devpi-server-0.8.4: using pip's link parser now

2013-05-07 Thread holger krekel
hi all,

devpi-server, the self-updatding pypi.python.org caching proxy,
just saw a new 0.8.4 release.  Instead of BeautifulSoup it now
uses pip's link parsing.  This should serve as a shortcut to avoid
real life crawling issues.  IOW, whatever pip can install, should
also be installable through the devpi-server cache.

More info, getting started, deployment info  on devpi-server:

http://pypi.python.org/pypi/devpi-server

thanks to Markus Zapke-Gruendemann for cleaning up some internals.

cheers,
holger

-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-2.3.5: bug fixes and little improvements

2013-05-06 Thread holger krekel
pytest-2.3.5: bug fixes and little improvements
===

pytest-2.3.5 is a maintenance release with many bug fixes and little
improvements.  See the changelog below for details.  No backward
compatibility issues are foreseen and all plugins which worked with the
prior version are expected to work unmodified.   Speaking of which, a
few interesting new plugins saw the light last month:

- pytest-instafail: show failure information while tests are running
- pytest-qt: testing of GUI applications written with QT/Pyside
- pytest-xprocess: managing external processes across test runs
- pytest-random: randomize test ordering

And several others like pytest-django saw maintenance releases.
For a more complete list, check out 
https://pypi.python.org/pypi?%3Aaction=searchterm=pytestsubmit=search.

For general information see:

 http://pytest.org/

To install or upgrade pytest:

pip install -U pytest # or
easy_install -U pytest

Particular thanks to Floris, Ronny, Benjamin and the many bug reporters
and fix providers.

may the fixtures be with you,
holger krekel


Changes between 2.3.4 and 2.3.5
---

- never consider a fixture function for test function collection

- allow re-running of test items / helps to fix pytest-reruntests plugin
  and also help to keep less fixture/resource references alive

- put captured stdout/stderr into junitxml output even for passing tests
  (thanks Adam Goucher)

- Issue 265 - integrate nose setup/teardown with setupstate
  so it doesnt try to teardown if it did not setup

- issue 271 - dont write junitxml on slave nodes

- Issue 274 - dont try to show full doctest example
  when doctest does not know the example location

- issue 280 - disable assertion rewriting on buggy CPython 2.6.0

- inject getfixture() helper to retrieve fixtures from doctests,
  thanks Andreas Zeidler

- issue 259 - when assertion rewriting, be consistent with the default
  source encoding of ASCII on Python 2

- issue 251 - report a skip instead of ignoring classes with init

- issue250 unicode/str mixes in parametrization names and values now works

- issue257, assertion-triggered compilation of source ending in a
  comment line doesn't blow up in python2.5 (fixed through py=1.4.13.dev6)

- fix --genscript option to generate standalone scripts that also
  work with python3.3 (importer ordering)

- issue171 - in assertion rewriting, show the repr of some
  global variables

- fix option help for -k

- move long description of distribution into README.rst

- improve docstring for metafunc.parametrize()

- fix bug where using capsys with pytest.set_trace() in a test
  function would break when looking at capsys.readouterr()

- allow to specify prefixes starting with _ when 
  customizing python_functions test discovery. (thanks Graham Horler)

- improve PYTEST_DEBUG tracing output by puting
  extra data on a new lines with additional indent

- ensure OutcomeExceptions like skip/fail have initialized exception attributes

- issue 260 - don't use nose special setup on plain unittest cases

- fix issue134 - print the collect errors that prevent running specified test 
items

- fix issue266 - accept unicode in MarkEvaluator expressions

-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


devpi-server: lightning fast pypi.python.org proxy (0.7 initial release)

2013-05-06 Thread holger krekel
devpi-server: lightning-fast pypi.python.org proxy (0.7 initial)
=

This is the initial release of devpi-server, an easy-to-use caching
proxy server for pypi.python.org, providing fast and reliable installs
when used by pip or easy_install.  devpi-server offers features not
found in other PyPI proxy servers:

- transparent caching of pypi.python.org index and release files 
  on first access, including indexes and files from 3rd party sites.  

- pip/easy_install/buildout are shielded from the typical 
  client-side crawling, thus providing lightning-fast and 
  reliable installation (on second access of a package).

- ``devpi-server`` moreover automatically updates its main index 
  cache using pypi's changelog protocol, making sure you'll always
  see an up-to-date view of what's available.

devpi-server is designed to satisfy all needs arising from 
pip/easy_install installation operations and can thus act
as the sole entry point for all package installation interactions.
It will manage all outbound traffic for installing packages.

Getting started 


Simply install ``devpi-server`` via for example::

pip install devpi-server # or
easy_install devpi-server

Make sure you have the ``redis-server`` binary available and issue::

devpi-server

after which a http server is running on ``localhost:3141`` and you
can use the following index url with pip or easy_install::

pip install -i http://localhost:3141/ext/pypi/simple/ ...
easy_install -i http://localhost:3141/ext/pypi/simple/ ...

To avoid having to re-type the URL, you can configure pip by either
setting the environment variable ``PIP_INDEX_URL`` to 
``http://localhost:3141/ext/pypi/simple/`` or by putting an 
according entry in your ``$HOME/.pip/pip.conf`` (posix) or 
``$HOME/pip/pip.conf`` (windows)::

[global]
index-url == http://localhost:3141/ext/pypi/simple/

Example timing


Here is a little screen session when using a fresh ``devpi-server``
instance, installing itself in a fresh virtualenv::

hpk@teta:~/p/devpi-server$ virtualenv devpi /dev/null
hpk@teta:~/p/devpi-server$ source devpi/bin/activate
(devpi) hpk@teta:~/p/devpi-server$ time pip install -q \
-i http://localhost:3141/ext/pypi/simple/ devpi-server 

real 21.971s
user 1.564s
system 0.420s

So that took 21 seconds.  Now lets remove the virtualenv, recreate
it and install a second time::

(devpi) hpk@teta:~/p/devpi-server$ rm -rf devpi
(devpi) hpk@teta:~/p/devpi-server$ virtualenv devpi  /dev/null
(devpi)hpk@teta:~/p/devpi-server$ time pip install -q -i 
http://localhost:3141/ext/pypi/simple/ devpi-server 

real 1.716s
user 1.152s
system 0.472s

Ok, that was more than 10 times faster.  The install of ``devpi-server``
(0.7) involves five packages btw: ``beautifulsoup4, bottle, py, redis,
requests``.


Compatibility


``devpi-server`` works with python2.6 and python2.7 on both
Linux and Windows environments.  Windows support is somewhat
experimental -- better don't run a company wide server with it.  
OSX is untested as of now but no issues are expected -- please 
report back how things work in reality.

``devpi-server`` requires ``redis-server`` with versions
2.4 or later.  Earlier versions may or may not work (untested).


Deployment notes


By default, devpi-server configures and starts its own redis instance. 
For this it needs to find a ``redis-server`` executable.  On windows it 
will, in addition to the PATH variable, also check for 
``c:\\program files\redis\redis-server.exe`` which is the default
install location for the `windows redis fork installer 
https://github.com/rgl/redis/downloads`_. 

In a consolidated setting you might want to use the ``--redismode=manual``
and ``--redisport NUM`` options to rather control the setup of redis 
yourself.  You might also want to use the ``--datadir`` option to
specify where release files will be cached.

Lastly, if you run ``devpi-server`` in a company network, you can for example
proxy-serve the application through an nginx site configuration like this::

# sample nginx conf
server {
server_name your.server.name;
listen 80;
root /home/devpi/.devpi/httpfiles/;  # arbitrary for now
location / {
proxy_pass http://localhost:3141;
proxy_set_header  X-Real-IP $remote_addr;
}
}


command line options 
-

A list of all devpi-server options::

$ devpi-server -h
Usage: devpi-server [options]

Options:
  -h, --helpshow this help message and exit

  main options:
--version   show devpi_version (0.7)
--datadir=DIR   data directory for devpi-server 
[~/.devpi/serverdata]
--port=PORT port to listen for http requests [3141]

devpi-server-0.8: better deployment, fixes

2013-05-06 Thread holger krekel
devpi-server-0.8: fast'n easy-to-deploy pypi.python.org proxy
===

devpi-server is an easy-to-deploy caching proxy server for
pypi.python.org, providing fast and reliable installs when
used by pip or easy_install.  

devpi-server-0.8 brings three improvements:

- fixed issue4: bug fixed in pypi.python.org to better survive network
  outage.

- a new way to bootstrap a self-contained pre-configured virtualenv 
  directory, guiding you to set it up on your laptop:

devpi-server --gendeploy=TARGETDIR --port=3200 --redisport=3201

  will create all that is neccessary for controled deployment on
  your laptop.

- the project page / README has been reworked a bit:

http://pypi.python.org/pypi/devpi-server

If you have questions or issues, you may also drop by the brand new IRC 
channel #devpi on freenode.

have a nice weekend,

holger

-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


devpi-server 0.8.1: better devpi-ctl behaviour / fixed --gendeploy quirk

2013-05-06 Thread holger krekel
Hi again,

just 12 hours after 0.8, i released devpi-server-0.8.1, a slightly
improved version of the fast pypi caching proxy server.  In particular
after devpi-ctl now works more according to docs.  In particular after a:

devpi-ctl shutdown
   
You won't accidentally start the servers again with:

devpi-ctl help|status|...

which is what 0.8 did (doh!).

Also, --gendeploy now takes more care to create a supervisord.conf
which starts the devpi-server binary installed into the venv.

Keep up the issue reporting! :)

See http://pypi.python.org/pypi/devpi-server for more ...

cheers,
holger

-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


devpi-server-0.8.2: bug fixes for the pypi.python.org caching server

2013-05-06 Thread holger krekel

just did a release of devpi-server-0.8.2, the fast pypi.python.org caching
server.  0.8.2 fixes a bug which prevented the installation of some packages.
If you encounter any such problems, please report it at:

https://bitbucket.org/hpk42/devpi-server/issues

or on #pylib on freenode.  A new release will quickly fix it - we had
four releases in six days now :)

More information on installing and deploying devpi-server here:

http://pypi.python.org/pypi/devpi-server

best,
holger

-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


tox-1.4.3: quickstart command, -l option and fixes

2013-03-01 Thread holger krekel
tox 1.4.3: the Python virtualenv-based testing automatizer
=

tox 1.4.3 fixes some bugs and introduces a new script and two new options:

- tox-quickstart - run this script, answer a few questions, and
  get a tox.ini created for you (thanks Marc Abramowitz)

- tox -l lists configured environment names (thanks Lukasz Balcerzak)

- (experimental) --installpkg=localpath option which will skip the
  sdist-creation of a package and instead install the given localpath package.

- use pip-script.py instead of pip.exe on win32 to avoid windows locking
  the .exe

Note that the sister project detox should continue to work - it's a 
separately released project which drives tox test runs on multiple CPUs
in parallel.

More documentation:

http://tox.testrun.org/

Installation:

pip install -U tox

repository hosting and issue tracking on bitbucket:

https://bitbucket.org/hpk42/tox


What is tox?


tox standardizes and automates tedious python driven test activities
driven from a simple ``tox.ini`` file, including:

* creation and management of different virtualenv environments 
  with different Python interpreters
* packaging and installing your package into each of them
* running your test tool of choice, be it nose, py.test or unittest2 or other 
tools such as sphinx doc checks
* testing dev packages against each other without needing to upload to PyPI

best,
Holger Krekel


CHANGELOG


1.4.3 (compared to 1.4.2)


- introduce -l|--listenv option to list configured environments
  (thanks  Lukasz Balcerzak)

- fix downloadcache determination to work according to docs: Only
  make pip use a download cache if PIP_DOWNLOAD_CACHE or a 
  downloadcache=PATH testenv setting is present. (The ENV setting
  takes precedence)

- fix issue84 - pypy on windows creates a bin not a scripts venv directory
  (thanks Lukasz Balcerzak)

- experimentally introduce --installpkg=PATH option to install a package rather 
than
  create/install an sdist package.  This will still require and use
  tox.ini and tests from the current working dir (and not from the remote
  package).

- substitute {envsitepackagesdir} with the package installation directory 
(closes #72)
  (thanks g2p)

- issue #70 remove PYTHONDONTWRITEBYTECODE workaround now that
  virtualenv behaves properly (thanks g2p)

- merged tox-quickstart command, contributed by Marc Abramowitz, which
  generates a default tox.ini after asking a few questions

- fix #48 - win32 detection of pypy and other interpreters that are on PATH
  (thanks Gustavo Picon)

- fix grouping of index servers, it is now done by name instead of 
  indexserver url, allowing to use it to separate dependencies
  into groups even if using the same default indexserver.

- look for tox.ini files in parent dirs of current dir (closes #34)

- the py environment now by default uses the current interpreter
  (sys.executable) make tox' own setup.py test execute tests with it
  (closes #46)

- change tests to not rely on os.path.expanduser (closes #60),
  also make mock session return args[1:] for more precise checking (closes #61)
  thanks to Barry Warszaw for both.

-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[issue16997] subtests

2013-02-11 Thread holger krekel

holger krekel added the comment:

On Sun, Feb 10, 2013 at 12:41 PM, Antoine Pitrou rep...@bugs.python.orgwrote:


 Antoine Pitrou added the comment:

  Please don't commit I think we still need a discussion as to whether
  subtests or paramaterized tests are a better approach. I certainly
  don't think we need both and there are a lot of people asking for
  parameterized tests.

 I think they don't cater to the same crowd. I see parameterized tests as
 primarily used by people who like adding formal complexity to their
 tests in the name of architectural elegance (decorators, non-intuitive
 constructs and other additional boilerplate). Subtests are meant to not
 get in the way. IMHO, this makes them more suitable for stdlib
 inclusion, while the testing-in-python people can still rely on their
 additional frameworks.


Parametrized testing wasn't introduced because I or others like formal
complexity.  I invented the yield syntax that both pytest and nose still
support and it was enhanced for several years until it was deemed not fit
for a general purpose testing approach.  More specifically, if you have
functional parametrized tests, they each run relatively slow.   People
often want to re-run a single failing test or otherwise select tests which
use a certain fixture, or send tests to different CPUs to speed up
execution.   That's all not possible with subtests or am i missing
something?

That being said, I have plans to support some form of subtests for pytest
as well, as there are indeed cases where a more lightweight approach fits
well, especially for unit- or integration tests where one doesn't care if a
group of tests need to be re-run when working on fixing a failure to a
single subtest.  And where it's usually more about reporting, getting nice
debuggable output on failures.  I suspect the cases which Antoine refers
satisfy this pattern.

best,
holger

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16997
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue16997] subtests

2013-02-11 Thread holger krekel

holger krekel added the comment:

On Sun, Feb 10, 2013 at 12:43 PM, Nick Coghlan rep...@bugs.python.orgwrote:


 Nick Coghlan added the comment:

 You can use subtests to build parameterized tests, you can't use
 parameterized tests to build subtests.

I doubt you can implement parametrized tests via subtests especially for
functional testing and its fixture needs.

The standard library can also
 be converted to using subtests *far* more readily than it could be
 converted to parameterized tests.

I can see that and for this reason and the stdlib's use cases it might make
sense to support it.  The unittest module is also used in many other
contexts so it shouldn't be the only verification criterium.

best,
holger

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16997
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



pytest-2.3.4: bugfixes and extended selection with -k expr

2012-11-20 Thread holger krekel
pytest-2.3.4: stabilization, more flexible selection via -k expr
===

pytest-2.3.4 is a small stabilization release of the py.test tool
which offers uebersimple assertions, scalable fixture mechanisms
and deep customization for testing with Python.  This release
comes with the following fixes and features:

- make -k option accept an expressions the same as with -m so that one
  can write: -k name1 or name2 etc.  This is a slight usage incompatibility
  if you used special syntax like TestClass.test_method which you now
  need to write as -k TestClass and test_method to match a certain
  method in a certain test class.  
- allow to dynamically define markers via
  item.keywords[...]=assignment integrating with -m option
- yielded test functions will now have autouse-fixtures active but 
  cannot accept fixtures as funcargs - it's anyway recommended to
  rather use the post-2.0 parametrize features instead of yield, see:
  http://pytest.org/latest/example/parametrize.html
- fix autouse-issue where autouse-fixtures would not be discovered
  if defined in a a/conftest.py file and tests in a/tests/test_some.py
- fix issue226 - LIFO ordering for fixture teardowns
- fix issue224 - invocations with 256 char arguments now work
- fix issue91 - add/discuss package/directory level setups in example
- fixes related to autouse discovery and calling

Thanks in particular to Thomas Waldmann for spotting and reporting issues.

See

 http://pytest.org/

for general information.  To install or upgrade pytest:

pip install -U pytest # or
easy_install -U pytest

best,
holger krekel
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-2.3.3: integration fixes, py24 suport, */** args shown in traceback

2012-11-06 Thread holger krekel
pytest-2.3.3: integration fixes, py24 suport, *args shown in traceback
===

pytest-2.3.3 is a another stabilization release of the py.test tool
which offers uebersimple assertions, scalable fixture mechanisms
and deep customization for testing with Python.  Particularly,
this release provides:

- integration fixes and improvements related to flask, numpy, nose,
  unittest, mock

- makes pytest work on py24 again (yes, people sometimes still need to use it)

- show *,** args in pytest tracebacks

Thanks to Manuel Jacob, Thomas Waldmann, Ronny Pfannschmidt, Pavel Repin
and Andreas Taumoefolau for providing patches and all for the issues.

See

 http://pytest.org/

for general information.  To install or upgrade pytest:

pip install -U pytest # or
easy_install -U pytest

best,
holger krekel

Changes between 2.3.2 and 2.3.3
---

- fix issue214 - parse modules that contain special objects like e. g.
  flask's request object which blows up on getattr access if no request
  is active. thanks Thomas Waldmann.

- fix issue213 - allow to parametrize with values like numpy arrays that
  do not support an __eq__ operator

- fix issue215 - split test_python.org into multiple files

- fix issue148 - @unittest.skip on classes is now recognized and avoids
  calling setUpClass/tearDownClass, thanks Pavel Repin

- fix issue209 - reintroduce python2.4 support by depending on newer
  pylib which re-introduced statement-finding for pre-AST interpreters

- nose support: only call setup if its a callable, thanks Andrew
  Taumoefolau

- fix issue219 - add py2.4-3.3 classifiers to TROVE list

- in tracebacks *,** arg values are now shown next to normal arguments
  (thanks Manuel Jacob)

- fix issue217 - support mock.patch with pytest's fixtures - note that
  you need either mock-1.0.1 or the python3.3 builtin unittest.mock.

- fix issue127 - improve documentation for pytest_addoption() and
  add a ``config.getoption(name)`` helper function for consistency.

-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-2.3.2: bug fixes, unittest/trial compat, speed

2012-10-25 Thread holger krekel
pytest-2.3.2: some fixes and more traceback-printing speed
===

pytest-2.3.2 is another stabilization release with a few improvements:

- issue 205: fixes a regression with conftest detection
- issue 208/29: fixes traceback-printing speed in some bad cases
- fix teardown-ordering for parametrized setups
- fix unittest and trial compat behaviour with respect  to runTest() methods
- issue 206 and others: some improvements to packaging
- fix issue127 and others: improve some docs

See

 http://pytest.org/

for general information.  To install or upgrade pytest:

pip install -U pytest # or
easy_install -U pytest

best,
holger krekel


Changes between 2.3.1 and 2.3.2
---

- fix issue208 and fix issue29 use new py version to avoid long pauses 
  when printing tracebacks in long modules

- fix issue205 - conftests in subdirs customizing
  pytest_pycollect_makemodule and pytest_pycollect_makeitem
  now work properly

- fix teardown-ordering for parametrized setups

- fix issue127 - better documentation for pytest_addoption
  and related objects.

- fix unittest behaviour: TestCase.runtest only called if there are
  test methods defined

- improve trial support: don't collect its empty
  unittest.TestCase.runTest() method

- python setup.py test now works with pytest itself

- fix/improve internal/packaging related bits:

  - exception message check of test_nose.py now passes on python33 as well

  - issue206 - fix test_assertrewrite.py to work when a global
PYTHONDONTWRITEBYTECODE=1 is present

  - add tox.ini to pytest distribution so that ignore-dirs and others config
bits are properly distributed for maintainers who run pytest-own tests

-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-2.3: improved fixtures/funcargs and unittest support

2012-10-19 Thread holger krekel
pytest-2.3: improved fixtures / better unittest integration
=

pytest-2.3 comes with many major improvements for fixture/funcarg management
and parametrized testing in Python.  It is now easier, more efficient and
more predicatable to re-run the same tests with different fixture
instances.  Also, you can directly declare the caching scope of
fixtures so that dependent tests throughout your whole test suite can
re-use database or other expensive fixture objects with ease.  Lastly,
it's possible for fixture functions (formerly known as funcarg
factories) to use other fixtures, allowing for a completely modular and
re-useable fixture design.

For detailed info and tutorial-style examples, see:

http://pytest.org/latest/fixture.html

Moreover, there is now support for using pytest fixtures/funcargs with
unittest-style suites, see here for examples:

http://pytest.org/latest/unittest.html

Besides, more unittest-test suites are now expected to simply work
with pytest.

All changes are backward compatible and you should be able to continue
to run your test suites and 3rd party plugins that worked with
pytest-2.2.4.

If you are interested in the precise reasoning (including examples) of
the pytest-2.3 fixture evolution, please consult
http://pytest.org/latest/funcarg_compare.html

For general info on installation and getting started:

http://pytest.org/latest/getting-started.html

Docs and PDF access as usual at:

http://pytest.org

and more details for those already in the knowing of pytest can be found
in the CHANGELOG below.

Particular thanks for this release go to Floris Bruynooghe, Alex Okrushko
Carl Meyer, Ronny Pfannschmidt, Benjamin Peterson and Alex Gaynor for helping 
to get the new features right and well integrated.  Ronny and Floris
also helped to fix a number of bugs and yet more people helped by
providing bug reports.

have fun,
holger krekel


Changes between 2.2.4 and 2.3.0
---

- fix issue202 - better automatic names for parametrized test functions
- fix issue139 - introduce @pytest.fixture which allows direct scoping
  and parametrization of funcarg factories.  Introduce new @pytest.setup
  marker to allow the writing of setup functions which accept funcargs.
- fix issue198 - conftest fixtures were not found on windows32 in some
  circumstances with nested directory structures due to path manipulation issues
- fix issue193 skip test functions with were parametrized with empty
  parameter sets
- fix python3.3 compat, mostly reporting bits that previously depended
  on dict ordering
- introduce re-ordering of tests by resource and parametrization setup
  which takes precedence to the usual file-ordering
- fix issue185 monkeypatching time.time does not cause pytest to fail
- fix issue172 duplicate call of pytest.setup-decoratored setup_module
  functions
- fix junitxml=path construction so that if tests change the
  current working directory and the path is a relative path
  it is constructed correctly from the original current working dir.
- fix python setup.py test example to cause a proper errno return
- fix issue165 - fix broken doc links and mention stackoverflow for FAQ
- catch unicode-issues when writing failure representations
  to terminal to prevent the whole session from crashing
- fix xfail/skip confusion: a skip-mark or an imperative pytest.skip
  will now take precedence before xfail-markers because we
  can't determine xfail/xpass status in case of a skip. see also:
  
http://stackoverflow.com/questions/11105828/in-py-test-when-i-explicitly-skip-a-test-that-is-marked-as-xfail-how-can-i-get

- always report installed 3rd party plugins in the header of a test run

- fix issue160: a failing setup of an xfail-marked tests should
  be reported as xfail (not xpass)

- fix issue128: show captured output when capsys/capfd are used

- fix issue179: propperly show the dependency chain of factories

- pluginmanager.register(...) now raises ValueError if the
  plugin has been already registered or the name is taken

- fix issue159: improve http://pytest.org/latest/faq.html 
  especially with respect to the magic history, also mention
  pytest-django, trial and unittest integration.

- make request.keywords and node.keywords writable.  All descendant
  collection nodes will see keyword values.  Keywords are dictionaries
  containing markers and other info.

- fix issue 178: xml binary escapes are now wrapped in py.xml.raw

- fix issue 176: correctly catch the builtin AssertionError
  even when we replaced AssertionError with a subclass on the
  python level

- factory discovery no longer fails with magic global callables
  that provide no sane __code__ object (mock.call for example)

- fix issue 182: testdir.inprocess_run now considers passed plugins

- fix issue 188: ensure sys.exc_info is clear on python2
 before calling into a test

- fix issue 191: add

execnet-1.1: cross-interpreter distributed execution library

2012-06-21 Thread holger krekel

execnet-1.1 is a backward compatible beta release of the popular
(53000 pypi downloads of 1.0.9) cross-interpreter execution library.
If you are in need of connecting Python2 and Python3 and/or want
to throw PyPy in your deployment mix, then you might want to join 
Quora and many others and try out execnet.

execnet provides a share-nothing model with channel-send/receive
communication and distributed execution across many Python interpreters
across version, platform and network barriers.

See below for changes and see here for extensive documentation
and tested examples:

http://codespeak.net/execnet

Particular thanks to Ronny Pfannschmidt for a lot of internal cleanups
and to Alex Gaynor for providing feature patches.

Have fun,
holger


1.1 (compared to 1.0.9)


- introduce execnet.dumps/loads providing serialization between
  python interpreters, see http://codespeak.net/execnet/basics.html#dumps-loads

- group.remote_exec now supports kwargs as well

- support per channel string coercion configuration, helping with
  dealing with mixed Python2/Python3 environments.

- Popen2IO.read now reads correct amounts of bytes from nonblocking fd's

- added a ``dont_write_bytecode`` option to Popen gateways, this sets the
  ``sys.dont_write_bytecode`` flag on the spawned process, this only works on
  CPython 2.6 and higher.  Thanks to Alex Gaynor.

- added a pytest --broken-isp option to skip tests that assume
  DNS queries for unknown hosts actually are resolved as such (Thanks
  Alex Gaynor)

- fix issue 1 - decouple string coercion of channels and gateway

- fix issue #2 - properly reconfigure the channels string coercion for rsync,
  so it can send from python2 to python3

- refactor socketserver, so it can be directly remote_exec'd for starting a 
socket gateway on a remote

-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


new cache and pep8 pytest plugin releases

2012-06-21 Thread holger krekel

i just released two new plugins:

* pytest-cache-0.9 (initial) for easy caching of values across test runs 
  and a new --lf option to rerun the failing tests of a previous run. Install,
  basic example and API (for use by other plugins) is here:

  http://packages.python.org/pytest-cache/readme.html

* pytest-pep8-1.0 a flexible pep8 checker which allows to keep your project
  PEP8 compliant with your choice of ignore-options on a per-file basis.
  It avoids checking files that haven't changed.  Examples and docs at:
  
  http://pypi.python.org/pypi/pytest-pep8

have fun,
holger
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


Re: [py-dev] new cache and pep8 pytest plugin releases

2012-06-21 Thread holger krekel

I quickly released a pytest-pep8-1.0.1 which includes an explicit dependency on
pytest-cache.  Thanks to Hynek Schlawack for reporting.

On Wed, Jun 20, 2012 at 20:52 +, holger krekel wrote:
 i just released two new plugins:
 
 * pytest-cache-0.9 (initial) for easy caching of values across test runs 
   and a new --lf option to rerun the failing tests of a previous run. Install,
   basic example and API (for use by other plugins) is here:
 
   http://packages.python.org/pytest-cache/readme.html
 
 * pytest-pep8-1.0 a flexible pep8 checker which allows to keep your project
   PEP8 compliant with your choice of ignore-options on a per-file basis.
   It avoids checking files that haven't changed.  Examples and docs at:
   
   http://pypi.python.org/pypi/pytest-pep8
 
 have fun,
 holger
 ___
 py-dev mailing list
 py-...@codespeak.net
 http://codespeak.net/mailman/listinfo/py-dev
 
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


execnet-1.1: cross-interpreter distributed execution library

2012-06-20 Thread holger krekel

execnet-1.1 is a backward compatible beta release of the popular
(53000 pypi downloads of 1.0.9) cross-interpreter execution library.
If you are in need of connecting Python2 and Python3 and/or want
to throw PyPy in your deployment mix, then you might want to join 
Quora and many others and try out execnet.

execnet provides a share-nothing model with channel-send/receive
communication and distributed execution across many Python interpreters
across version, platform and network barriers.

See below for changes and see here for extensive documentation
and tested examples:

http://codespeak.net/execnet

Particular thanks to Ronny Pfannschmidt for a lot of internal cleanups
and to Alex Gaynor for providing feature patches.

Have fun,
holger


1.1 (compared to 1.0.9)


- introduce execnet.dumps/loads providing serialization between
  python interpreters, see http://codespeak.net/execnet/basics.html#dumps-loads

- group.remote_exec now supports kwargs as well

- support per channel string coercion configuration, helping with
  dealing with mixed Python2/Python3 environments.

- Popen2IO.read now reads correct amounts of bytes from nonblocking fd's

- added a ``dont_write_bytecode`` option to Popen gateways, this sets the
  ``sys.dont_write_bytecode`` flag on the spawned process, this only works on
  CPython 2.6 and higher.  Thanks to Alex Gaynor.

- added a pytest --broken-isp option to skip tests that assume
  DNS queries for unknown hosts actually are resolved as such (Thanks
  Alex Gaynor)

- fix issue 1 - decouple string coercion of channels and gateway

- fix issue #2 - properly reconfigure the channels string coercion for rsync,
  so it can send from python2 to python3

- refactor socketserver, so it can be directly remote_exec'd for starting a 
socket gateway on a remote

-- 
http://mail.python.org/mailman/listinfo/python-list


pytest-2.2.4 - bugfixes and better junitxml/unittest/python3 compat

2012-05-23 Thread holger krekel
pytest-2.2.4: bug fixes, better junitxml/unittest/python3 compat
===

pytest-2.2.4 is a minor backward-compatible release of the versatile
py.test testing tool.   It contains bug fixes and a few refinements
to junitxml reporting, better unittest- and python3 compatibility.

For general information see here:

 http://pytest.org/

To install or upgrade pytest:

pip install -U pytest # or
easy_install -U pytest

Special thanks for helping on this release to Ronny Pfannschmidt
and Benjamin Peterson and the contributors of issues.

best,
holger krekel

Changes between 2.2.3 and 2.2.4
---

- fix error message for rewritten assertions involving the % operator
- fix issue 126: correctly match all invalid xml characters for junitxml
  binary escape
- fix issue with unittest: now @unittest.expectedFailure markers should
  be processed correctly (you can also use @pytest.mark markers)
- document integration with the extended distribute/setuptools test commands
- fix issue 140: propperly get the real functions
  of bound classmethods for setup/teardown_class
- fix issue #141: switch from the deceased paste.pocoo.org to bpaste.net
- fix issue #143: call unconfigure/sessionfinish always when
  configure/sessionstart where called
- fix issue #144: better mangle test ids to junitxml classnames
- upgrade distribute_setup.py to 0.6.27

-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-2.2.2: bug fixes, collectonly improvements

2012-02-06 Thread holger krekel

pytest-2.2.2 is a minor backward-compatible release of the py.test
testing tool.   It contains bug fixes and a few refinements particularly
to reporting with --collectonly, see below for betails.  

For general information see here:

 http://pytest.org/

To install or upgrade pytest:

pip install -U pytest # or
easy_install -U pytest

Special thanks for helping on this release to Ronny Pfannschmidt
and Ralf Schmitt and the contributors of issues.

best,
holger krekel


Changes between 2.2.1 and 2.2.2


- fix issue101: wrong args to unittest.TestCase test function now
  produce better output
- fix issue102: report more useful errors and hints for when a 
  test directory was renamed and some pyc/__pycache__ remain
- fix issue106: allow parametrize to be applied multiple times
  e.g. from module, class and at function level.
- fix issue107: actually perform session scope finalization
- don't check in parametrize if indirect parameters are funcarg names
- add chdir method to monkeypatch funcarg
- fix crash resulting from calling monkeypatch undo a second time
- fix issue115: make --collectonly robust against early failure
  (missing files/directories)
- -qq --collectonly now shows only files and the number of tests in them
- -q --collectonly now shows test ids 
- allow adding of attributes to test reports such that it also works
  with distributed testing (no upgrade of pytest-xdist needed)
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


tox-1.3: virtualenv-based test run automizer

2011-12-21 Thread holger krekel
tox 1.3: the virtualenv-based test run automatizer
===

I am happy to announce tox 1.3, containing a few improvements
over 1.2.  TOX automates tedious test activities driven from a
simple ``tox.ini`` file, including:

* creation and management of different virtualenv environments
  with different Python interpreters
* packaging and installing your package into each of them
* running your test tool of choice, be it nose, py.test or unittest2 or
  other tools such as sphinx doc checks
* testing dev packages against each other without needing to upload to PyPI

Docs and examples are at:

http://tox.testrun.org/

Installation:

pip install -U tox

code hosting and issue tracking on bitbucket:

http://bitbucket.org/hpk42/tox

best,
Holger Krekel

1.3
-

- fix: allow to specify wildcard filesystem paths when
  specifiying dependencies such that tox searches for
  the highest version

- fix issue21: clear PIP_REQUIRES_VIRTUALENV which avoids
  pip installing to the wrong environment, thanks to bb's streeter

- make the install step honour a testenv's setenv setting
  (thanks Ralf Schmitt)
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[issue7897] Support parametrized tests in unittest

2011-12-18 Thread holger krekel

Changes by holger krekel holger.kre...@gmail.com:


--
nosy: +hpk

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue7897
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13490] broken downloads counting on pypi.python.org

2011-11-27 Thread holger krekel

New submission from holger krekel holger.kre...@gmail.com:

Seems like pypi.python.org does not properly maintain download counters 
anymore, at least for a few packages i looked at like pytest,execnet,tox,nose.

--
components: None
messages: 148447
nosy: hpk
priority: normal
severity: normal
status: open
title: broken downloads counting on pypi.python.org
type: behavior

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue13490
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



pytest-2.1.3: just some fixes

2011-10-19 Thread holger krekel
py.test 2.1.3: just some fixes
===

pytest-2.1.3 is a minor backward compatible maintenance release of the
popular py.test testing tool.  It is commonly used for unit, functional-
and integration testing.  See extensive docs with examples here:

 http://pytest.org/

The release contains a fix to the perfected assertions introduced
with the 2.1 series as well as the new possibility to customize the
detailed reporting for assertion expressions on a per-directory level.

If you want to install or upgrade pytest, just type one of::

pip install -U pytest # or
easy_install -U pytest

Thanks to the bug reporters and to Ronny Pfannschmidt, Benjamin Peterson
and Floris Bruynooghe who implemented the fixes.

best,
holger krekel

Changes between 2.1.2 and 2.1.3


- fix issue79: assertion rewriting failed on some comparisons in boolops,
- correctly handle zero length arguments (a la pytest '')
- fix issue67 / junitxml now contains correct test durations
- fix issue75 / skipping test failure on jython
- fix issue77 / Allow assertrepr_compare hook to apply to a subset of tests
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-2.1.2: bug fixes and fixes for jython

2011-09-24 Thread holger krekel

pytest-2.1.2 is a minor backward compatible maintenance release of the
popular py.test testing tool.  pytest is commonly used for unit,
functional- and integration testing.  See extensive docs with examples
here:

 http://pytest.org/

Most bug fixes address remaining issues with the perfected assertions
introduced in the 2.1 series - many thanks to the bug reporters and to Benjamin
Peterson for helping to fix them.  pytest should also work better with
Jython-2.5.1 (and Jython trunk, but not Jython-2.5.2).

If you want to install or upgrade pytest, just type one of::

pip install -U pytest # or
easy_install -U pytest

best,
holger krekel / http://merlinux.eu

Changes between 2.1.1 and 2.1.2


- fix assertion rewriting on files with windows newlines on some Python versions
- refine test discovery by package/module name (--pyargs), thanks Florian Mayer
- fix issue69 / assertion rewriting fixed on some boolean operations
- fix issue68 / packages now work with assertion rewriting
- fix issue66: use different assertion rewriting caches when the -O option is 
passed
- don't try assertion rewriting on Jython, use reinterp

-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-2.1.1: assertion fixes and improved junitxml output

2011-08-21 Thread holger krekel

pytest-2.1.1 is a backward compatible maintenance release of the
popular py.test testing tool.  See extensive docs with examples here:

 http://pytest.org/

Most bug fixes address remaining issues with the perfected assertions
introduced with 2.1.0 - many thanks to the bug reporters and to Benjamin
Peterson for helping to fix them.  Also, junitxml output now produces
system-out/err tags which lead to better displays of tracebacks with Jenkins.

Also a quick note to package maintainers and others interested: there now
is a pytest man page which can be generated with make man in doc/.

If you want to install or upgrade pytest, just type one of::

pip install -U pytest # or
easy_install -U pytest

best,
holger krekel / http://merlinux.eu

Changes between 2.1.0 and 2.1.1
--

- fix issue64 / pytest.set_trace now works within pytest_generate_tests hooks
- fix issue60 / fix error conditions involving the creation of __pycache__
- fix issue63 / assertion rewriting on inserts involving strings containing '%'
- fix assertion rewriting on calls with a ** arg
- don't cache rewritten modules if bytecode generation is disabled
- fix assertion rewriting in read-only directories
- fix issue59: provide system-out/err tags for junitxml output
- fix issue61: assertion rewriting on boolean operations with 3 or more operands
- you can now build a man page with cd doc ; make man

-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-2.1.0: perfected assertions/bug fixes

2011-07-09 Thread holger krekel

Welcome to the relase of pytest-2.1, a mature testing tool for Python,
supporting CPython 2.4-3.2, Jython and latest PyPy interpreters.  See
the improved extensive docs (now also as PDF!) with tested examples here:

 http://pytest.org/

The single biggest news about this release are **perfected assertions**
courtesy of Benjamin Peterson.  You can now safely use ``assert``
statements in test modules without having to worry about side effects
or python optimization (-OO) options.  This is achieved by rewriting
assert statements in test modules upon import, using a PEP302 hook.
See http://pytest.org/assert.html#advanced-assertion-introspection for
detailed information.  The work has been partly sponsored by my company,
merlinux GmbH.
  
For further details on bug fixes and smaller enhancements see below.

If you want to install or upgrade pytest, just type one of::

pip install -U pytest # or
easy_install -U pytest

best,
holger krekel / http://merlinux.eu

Changes between 2.0.3 and 2.1.0
--

- fix issue53 call nosestyle setup functions with correct ordering
- fix issue58 and issue59: new assertion code fixes
- merge Benjamin's assertionrewrite branch: now assertions
  for test modules on python 2.6 and above are done by rewriting
  the AST and saving the pyc file before the test module is imported.
  see doc/assert.txt for more info.
- fix issue43: improve doctests with better traceback reporting on
  unexpected exceptions
- fix issue47: timing output in junitxml for test cases is now correct
- fix issue48: typo in MarkInfo repr leading to exception
- fix issue49: avoid confusing error when initizaliation partially fails
- fix issue44: env/username expansion for junitxml file path
- show releaselevel information in test runs for pypy
- reworked doc pages for better navigation and PDF generation
- report KeyboardInterrupt even if interrupted during session startup
- fix issue 35 - provide PDF doc version and download link from index page

-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


tox-1.1: bug fixes and improved workflow

2011-07-09 Thread holger krekel
Hey all,

i just released tox-1.1, the virtualenv/test/CI automation tool.
See here for general information and install info:

http://codespeak.net/~hpk/tox

or

http://tox.readthedocs.org
(which is missing some navigation links at time of sending email)

The release incorporates a number of bug fixes and an enhanced work
flow: repeatedly calling tox without increasing version numbers now
works (by calling pip -U --nodeps).  

With this release i consider tox pretty stable and fit for general use.

best  thanks to all contributors,
holger krekel

1.1
-

- fix issue5 - don't require argparse for python versions that have it
- fix issue6 - recreate virtualenv if installing dependencies failed
- fix issue3 - fix example on frontpage
- fix issue2 - warn if a test command does not come from the test
  environment
- fixed/enhanced: except for initial install always call -U
  --no-deps for installing the sdist package to ensure that a package
  gets upgraded even if its version number did not change. (reported on
  TIP mailing list and IRC)
- inline virtualenv.py (1.6.1) script to avoid a number of issues, 
  particularly failing to install python3 environents from a python2 
  virtualenv installation.
- rework and enhance docs for display on readthedocs.org

-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


tox 1.0 - rapid multi-python test automation

2011-05-28 Thread holger krekel
tox 1.0: the rapid multi-python test automation
===

I am happy to announce tox 1.0, a stabilization and maintenance release
with some small improvements.  tox automates tedious test activities
driven from a simple ``tox.ini`` file, including:

* creation and management of different virtualenv environments with
  different Python interpreters
* packaging and installing your package into each of them
* running your test tool of choice, be it nose, py.test or unittest2 or
  other tools such as sphinx doc checks
* testing dev packages against each other without needing to upload to PyPI

Docs and examples are now hosted at:

http://tox.readthedocs.org

Installation or upgrade with:

pip install -U tox

Note that code hosting and issue tracking has moved from Google to Bitbucket:

http://bitbucket.org/hpk42/tox

The 1.0 release includes contributions and is based on feedback and
work from Chris Rose, Ronny Pfannschmidt, Jannis Leidel, Jakob Kaplan-Moss,
Sridhar Ratnakumar, Carl Meyer and others.  Many thanks!

best,
Holger Krekel

CHANGES
-

- fix issue24: introduce a way to set environment variables for
  for test commands (thanks Chris Rose)
- fix issue22: require virtualenv-1.6.1, obsoleting virtualenv5 (thanks Jannis 
Leidel)
  and making things work with pypy-1.5 and python3 more seemlessly
- toxbootstrap.py (used by jenkins build slaves) now follows the latest release 
of virtualenv
- fix issue20: document format of URLs for specifying dependencies
- fix issue19: substitute Hudson for Jenkins everywhere following the renaming
  of the project.  NOTE: if you used the special [tox:hudson]
  section it will now need to be named [tox:jenkins].
- fix issue 23 / apply some ReST fixes
- change the positional argument specifier to use {posargs:} syntax and
  fix issues #15 and #10 by refining the argument parsing method (Chris Rose)
- remove use of inipkg lazy importing logic -
  the namespace/imports are anyway very small with tox.
- fix a fspath related assertion to work with debian installs which uses
  symlinks
- show path of the underlying virtualenv invocation and bootstrap
  virtualenv.py into a working subdir
- added a CONTRIBUTORS file
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-2.0.3: bug fixes and speed ups

2011-04-17 Thread holger krekel
py.test 2.0.3: bug fixes and speed ups
===

Welcome to pytest-2.0.3, a maintenance and bug fix release of pytest,
a mature testing tool for Python, supporting CPython 2.4-3.2, Jython
and latest PyPy interpreters.  See the extensive docs with tested examples here:

http://pytest.org/

If you want to install or upgrade pytest, just type one of::

pip install -U pytest # or
easy_install -U pytest

There also is a bugfix release 1.6 of pytest-xdist, the plugin
that enables seemless distributed and looponfail testing for Python.

best,
holger krekel

Changes between 2.0.2 and 2.0.3
--

- fix issue38: nicer tracebacks on calls to hooks, particularly early
  configure/sessionstart ones

- fix missing skip reason/meta information in junitxml files, reported
  via http://lists.idyll.org/pipermail/testing-in-python/2011-March/003928.html

- fix issue34: avoid collection failure with test prefixed classes
  deriving from object.

- don't require zlib (and other libs) for genscript plugin without
  --genscript actually being used.

- speed up skips (by not doing a full traceback represenation
  internally)

- fix issue37: avoid invalid characters in junitxml's output

-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-2.0.2: bug fixes, improved xfail/skip expressions, speedups

2011-03-09 Thread holger krekel

Welcome to pytest-2.0.2, a maintenance and bug fix release.

py.test is a mature testing tool for Python, supporting CPython 2.4-3.2,
Jython and latest PyPy interpreters.  See the extensive docs with tested
examples here:

http://pytest.org/

If you want to install or upgrade pytest, just type one of::

pip install -U pytest # or
easy_install -U pytest

Many thanks to all issue reporters and people asking questions
or complaining, particularly Jurko for his insistence,
Laura, Victor and Brianna for helping with improving
and Ronny for his general advise.

best,
holger krekel

Changes between 2.0.1 and 2.0.2
--

- tackle issue32 - speed up test runs of very quick test functions
  by reducing the relative overhead

- fix issue30 - extended xfail/skipif handling and improved reporting.
  If you have a syntax error in your skip/xfail
  expressions you now get nice error reports.

  Also you can now access module globals from xfail/skipif
  expressions so that this for example works now::
 
import pytest
import mymodule
@pytest.mark.skipif(mymodule.__version__[0] == 1)
def test_function():
pass

  This will not run the test function if the module's version string 
  does not start with a 1.  Note that specifying a string instead
  of a boolean expressions allows py.test to report meaningful information 
  when summarizing a test run as to what conditions lead to skipping 
  (or xfail-ing) tests.

- fix issue28 - setup_method and pytest_generate_tests work together
  The setup_method fixture method now gets called also for
  test function invocations generated from the pytest_generate_tests
  hook.

- fix issue27 - collectonly and keyword-selection (-k) now work together
  Also, if you do py.test --collectonly -q you now get a flat list
  of test ids that you can use to paste to the py.test commandline
  in order to execute a particular test.

- fix issue25 avoid reported problems with --pdb and python3.2/encodings output

- fix issue23 - tmpdir argument now works on Python3.2 and WindowsXP
  Starting with Python3.2 os.symlink may be supported. By requiring
  a newer py lib version the py.path.local() implementation acknowledges
  this.

- fixed typos in the docs (thanks Victor Garcia, Brianna Laugher) and particular
  thanks to Laura Creighton who also revieved parts of the documentation.

- fix slighly wrong output of verbose progress reporting for classes 
  (thanks Amaury)

- more precise (avoiding of) deprecation warnings for node.Class|Function 
accesses

- avoid std unittest assertion helper code in tracebacks (thanks Ronny)
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pylib-1.4.1: bug fixes

2011-02-07 Thread holger krekel
py-1.4.1: cross-python lib for fs path, code, io, ... manipulations
===

This is a bug fix release of the py lib, see below for detailed changes.

The py lib is a small library comprising APIs for filesystem and svn path
manipulations, dynamic code construction and introspection, a Py2/Py3
compatibility namespace (py.builtin), IO capturing, terminal colored printing
(on windows and linux), ini-file parsing and a lazy import mechanism.
It runs unmodified on all Python interpreters compatible to Python2.4 up
until Python 3.2, PyPy and Jython.  The general goal with py is to
provide stable APIs for some common tasks that are continously tested
against many Python interpreters and thus also to help transition. Here
are some docs:

http://pylib.org

NOTE: The prior py-1.3.X versions contained py.test which since py-1.4.0
comes as its own separate pytest distribution, see:

http://pytest.org
   
Also, the py.cleanup|py.lookup|py.countloc helpers are now part of
the pycmd distribution, see http://pypi.python.org/pypi/pycmd


Changes between 1.4.0 and 1.4.1
==

- fix issue1 - py.error.* classes to be pickleable

- fix issue2 - on windows32 use PATHEXT as the list of potential
  extensions to find find binaries with py.path.local.sysfind(commandname)

- fix (pytest-) issue10 and refine assertion reinterpretation
  to avoid breaking if the __nonzero__ of an object fails

- fix (pytest-) issue17 where python3 does not like star-imports,
  leading to misrepresentation of import-errors in test modules

- fix ``py.error.*`` attribute pypy access

- allow path.samefile(arg) to succeed when arg is a relative filename

- fix (pytest-) issue20 path.samefile(relpath) works as expected now
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-2.0.1: bug fixes and better asserts

2011-02-07 Thread holger krekel
py.test 2.0.1: bug fixes and better asserts
===

Welcome to pytest-2.0.1, a maintenance and bug fix release of pytest,
a mature testing tool for Python, supporting CPython 2.4-3.2, Jython 
and latest PyPy interpreters.  See extensive docs with tested examples here:

http://pytest.org/

If you want to install or upgrade pytest, just type one of::

pip install -U pytest # or
easy_install -U pytest

Many thanks to all issue reporters and people asking questions or
complaining.  Particular thanks to Floris Bruynooghe and Ronny Pfannschmidt
for their great coding contributions and many others for feedback and help.

best,
holger krekel


Changes between 2.0.0 and 2.0.1
--

- refine and unify initial capturing so that it works nicely
  even if the logging module is used on an early-loaded conftest.py
  file or plugin.
- fix issue12 - show plugin versions with --version and
  --traceconfig and also document how to add extra information
  to reporting test header
- fix issue17 (import-* reporting issue on python3) by
  requiring py1.4.0 (1.4.1 is going to include it)
- fix issue10 (numpy arrays truth checking) by refining
  assertion interpretation in py lib
- fix issue15: make nose compatibility tests compatible
  with python3 (now that nose-1.0 supports python3)
- remove somewhat surprising same-conftest detection because
  it ignores conftest.py when they appear in several subdirs.
- improve assertions (not in), thanks Floris Bruynooghe
- improve behaviour/warnings when running on top of python -OO
  (assertions and docstrings are turned off, leading to potential
  false positives)
- introduce a pytest_cmdline_processargs(args) hook
  to allow dynamic computation of command line arguments.
  This fixes a regression because py.test prior to 2.0
  allowed to set command line options from conftest.py
  files which so far pytest-2.0 only allowed from ini-files now.
- fix issue7: assert failures in doctest modules.
  unexpected failures in doctests will not generally
  show nicer, i.e. within the doctest failing context.
- fix issue9: setup/teardown functions for an xfail-marked
  test will report as xfail if they fail but report as normally
  passing (not xpassing) if they succeed.  This only is true
  for direct setup/teardown invocations because teardown_class/
  teardown_module cannot closely relate to a single test.
- fix issue14: no logging errors at process exit
- refinements to collecting output on non-ttys
- refine internal plugin registration and --traceconfig output
- introduce a mechanism to prevent/unregister plugins from the
  command line, see http://pytest.org/plugins.html#cmdunregister
- activate resultlog plugin by default
- fix regression wrt yielded tests which due to the
  collection-before-running semantics were not
  setup as with pytest 1.3.4.  Note, however, that
  the recommended and much cleaner way to do test
  parametraization remains the pytest_generate_tests
  mechanism, see the docs.
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[issue10548] Error in setUp not reported as expectedFailure (unittest)

2010-12-07 Thread holger krekel

holger krekel holger.kre...@gmail.com added the comment:

Michael, if you have it i'd like to see the original post/concrete use case. 
thanks, holger

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue10548
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



pytest-pep8 0.6: configurable PEP8 checking in py.test runs

2010-12-06 Thread holger krekel

just released an initial version 0.6 of the pytest-pep8 plugin, 
integrating the ``pep8`` module into py.test runs, allowing full
per-project customization and configuration. 

See http://pypi.python.org/pypi/pytest-pep8 for installation
and configuration instructions.

best,
holger

Usage
-

install pytest-pep8 via::

easy_install pytest-pep8 # or
pip install pytest-pep8

and then type::

py.test --pep8

to activate source code checking. Every file ending in ``.py`` will be
discovered and checked, starting from the command line arguments.
For example, if you have a file like this::

# content of myfile.py
 
somefunc( 123,456)

you can run it with::

$ py.test --pep8
=== test session starts 
platform linux2 -- Python 2.6.5 -- pytest-2.0.1.dev1
pep8 ignore opts: E202 E221 E222 E241 E301 E302 E401 E501 E701 W293 W391 
W601 W602
collecting ... collected 1 items

myfile.py F

= FAILURES =
 PEP8-check 
/tmp/doc-exec-12/myfile.py:2:10: E201 whitespace after '('
somefunc( 123,456)
 ^
/tmp/doc-exec-12/myfile.py:2:14: E231 missing whitespace after ','
somefunc( 123,456)
 ^

= 1 failed in 0.01 seconds =

Note that in the testing header you see the current list of default ignores.
For the meaning of these error and warning codes, see the error output
when running against your files or checkout `pep8.py
https://github.com/jcrocholl/pep8/blob/master/pep8.py`_.

Configuring PEP8 options per-project
-

Lastly, you may configure PEP8-checking options for your project
by adding an ``pep8options`` entry to your ``pytest.ini``
or ``setup.cfg`` file like this::

[pytest]
pep8options = +W293 -E200


Running PEP8 checks and no other tests
-

You can also restrict your test run to only perform pep8 tests
and not any other tests by typing::

py.test --pep8 -k pep8

This will only run tests that are marked with the pep8 keyword
which is added for the pep8 test items added by this plugin.

Notes
-

The repository of this plugin is at http://bitbucket.org/hpk42/pytest-pep8

For more info on py.test see http://pytest.org

The code is partially based on Ronny Pfannschmidt's pytest-codecheckers plugin.

-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[issue10548] Error in setUp not reported as expectedFailure (unittest)

2010-12-06 Thread holger krekel

Changes by holger krekel holger.kre...@gmail.com:


--
nosy: +hpk

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue10548
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue10548] Error in setUp not reported as expectedFailure (unittest)

2010-12-06 Thread holger krekel

holger krekel holger.kre...@gmail.com added the comment:

FWIW i tend to agree and would probably prefer setup/teardown to result in an 
error rather than be subsumed in an expected-to-fail marked test.  I guess if 
one regards setup/teardown as a place to implement pre/post-conditions than the 
changes suggested by Michael make more sense.  I'd like to see a more real 
use case / user than the abstract case provided here.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue10548
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



py-1.4.0: cross python lib for localpath/io/dynamic/... code functionality

2010-11-29 Thread holger krekel
py-1.4.0: cross-python lib for path, code, io, ... manipulations
===

py is a small library comprising APIs for filesystem and svn path
manipulations, dynamic code construction and introspection, a Py2/Py3
compatibility namespace (py.builtin), IO capturing, terminal colored printing
(on windows and linux), ini-file parsing and a lazy import mechanism.
It runs unmodified on all Python interpreters compatible to Python2.4 up
until Python 3.2.  The general goal with py is to provide stable APIs
for some common tasks that are continously tested against many Python
interpreters and thus also to help transition. Here are some docs:

http://pylib.org

NOTE: The prior py-1.3.X versions contained py.test which now comes
as its own separate pytest distribution and was just released
as pytest-2.0.0, see here for the revamped docs:

http://pytest.org

And py.cleanup|py.lookup|py.countloc etc. helpers are now part of
the pycmd distribution, see http://pypi.python.org/pypi/pycmd

This makes py-1.4.0 a simple library which does not install
any command line utilities anymore.

cheers,
holger

-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pycmd-1.0: tools for managing/searching Python related files

2010-11-29 Thread holger krekel
Hi all, 

i released pycmd-1.0, some tools for working with Python source code:

py.cleanup: remove .pyc and $py.class etc. files
py.lookup: grep in python files
py.countloc: give Lines of Code for code and tests
py.which: print location of an importable package or module

All tools have command line options with help strings
and have automated tests running against them.

see also: http://pypi.python.org/pypi/pycmd

cheers,
holger
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


execnet-1.0.9: small refinements

2010-11-26 Thread holger krekel
Hi all,

just released execnet-1.0.9, the rapid multi-Python deployment library.
1.0. contains some small additions and refinements, mostly 
implemented by Ronny Pfannschmidt. See the docs fore more info:

http://codespeak.net/execnet

cheers,
holger

1.0.9


- add gw.reconfigure() to configure per gateway options.  Currently supported:
  py2str_as_py3str and py3str_as_py2str to configure string deserialization

- channel.makefile() objects now have a isatty() returning False

- group.allocate_id(spec) allows to early-determine an (automatic) id

- internal refactorings and cleanups (thanks Ronny Pfannschmidt):
  - refactor message types into received handler functions
  - refactor b(chr(opcode)) to bchr(opcode)
  - reorder Message ctor args, rename msgtype to msgcode
  - refactor gateway.send to take message's init args instead of a message
  - inline and remove Message.writeto/readfrom
  - refactor collection loading to avoid the indirection over tuple
  - remove the unused NamedThreadPool
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pytest-2.0: asserts++, unittest++, reporting++, config++, docs++

2010-11-26 Thread holger krekel
py.test 2.0.0: asserts++, unittest++, reporting++, config++, docs++
===

Welcome to pytest-2.0.0, a major new release of py.test, the rapid
easy Python testing tool.  There are many new features and enhancements,
see below for summary and detailed lists.  A lot of long-deprecated code
has been removed, resulting in a much smaller and cleaner implementation.  
See the new docs with examples here:

http://pytest.org/

I also just released pytest-xdist-1.5, the plugin for distributed testing -
which was successfully used to speed up a real-life unittest suite 4-times 
written
for (twisted) trial, thanks to the generic unittest integration improvements.
See here for docs and install instructions:

http://pypi.python.org/pypi?:action=displayname=pytest-xdist

A note on packaging: pytest used to part of the py distribution up
until version py-1.3.4 but this has changed now:  pytest-2.0.0 only
contains py.test related code and is expected to be backward-compatible
to existing test code. If you want to install pytest, just type one of::

pip install -U pytest
easy_install -U pytest

Many thanks to all issue reporters and people asking questions or
complaining.  Particular thanks to Floris Bruynooghe and Ronny Pfannschmidt
for their great coding contributions and many others for feedback and help.

best,
holger krekel


New Features
---

- new invocations through Python interpreter and from Python::

python -m pytest  # on all pythons = 2.5

  or from a python program::

import pytest ; pytest.main(arglist, pluginlist)

  see http://pytest.org/2.0.0/usage.html for details.

- new and better reporting information in assert expressions
  if comparing lists, sequences or strings.

  see http://pytest.org/2.0.0/assert.html#newreport

- new configuration through ini-files (setup.cfg or tox.ini recognized),
  for example::

[pytest]
norecursedirs = .hg data*  # don't ever recurse in such dirs
addopts = -x --pyargs  # add these command line options by default

  see http://pytest.org/2.0.0/customize.html

- improved standard unittest support.  In general py.test should now
  better be able to run custom unittest.TestCases like twisted trial
  or Django based TestCases.  Also you can now run the tests of an
  installed 'unittest' package with py.test::

py.test --pyargs unittest

- new -q option which decreases verbosity and prints a more
  nose/unittest-style dot output.

- many many more detailed improvements details

Fixes
---

- fix issue126 - introduce py.test.set_trace() to trace execution via
  PDB during the running of tests even if capturing is ongoing.
- fix issue124 - make reporting more resilient against tests opening
  files on filedescriptor 1 (stdout).
- fix issue109 - sibling conftest.py files will not be loaded.
  (and Directory collectors cannot be customized anymore from a Directory's
  conftest.py - this needs to happen at least one level up).
- fix issue88 (finding custom test nodes from command line arg)
- fix issue93 stdout/stderr is captured while importing conftest.py
- fix bug: unittest collected functions now also can have pytestmark
  applied at class/module level

Important Notes


* The usual way in pre-2.0 times to use py.test in python code was
  to import py and then e.g. use py.test.raises for the helper.
  This remains valid and is not planned to be deprecated.  However,
  in most examples and internal code you'll find import pytest
  and pytest.raises used as the recommended default way.

* pytest now first performs collection of the complete test suite
  before running any test. This changes for example the semantics of when
  pytest_collectstart/pytest_collectreport are called.  Some plugins may
  need upgrading.

* The pytest package consists of a 400 LOC core.py and about 20 builtin plugins,
  summing up to roughly 5000 LOCs, including docstrings. To be fair, it also
  uses generic code from the pylib, and the new py package to help
  with filesystem and introspection/code manipulation.

(Incompatible) Removals
-

- py.test.config is now only available if you are in a test run.

- the following (mostly already deprecated) functionality was removed:

  - removed support for Module/Class/... collection node definitions
in conftest.py files.  They will cause nothing special.
  - removed support for calling the pre-1.0 collection API of run() and join
  - removed reading option values from conftest.py files or env variables.
This can now be done much much better and easier through the ini-file
mechanism and the addopts entry in particular.
  - removed the disabled attribute in test classes.  Use the skipping
and pytestmark mechanism to skip or xfail a test class.

- py.test.collect.Directory does not exist anymore and it
  is not possible to provide an own Directory

tox-0.9: better CI bootstrapping / custom PyPI index servers

2010-11-26 Thread holger krekel
Hi all, 

i just released tox-0.9, the generic virtualenv-using test integration 
automation tool (tm).  This release brings a new zero-install way to
deploy tox and your test suite on Hudson slaves.  Apart from one or
more Python interpreters you do not need anything on the slave side,
see here for details:

http://codespeak.net/tox/example/hudson.html#zero-installation-for-slaves

Moreover, you can now work with multiple PyPI index servers which
is very nice if you (want to) operate your own in-company servers, 
see here for details:


http://codespeak.net/tox/example/basic.html#using-a-different-default-pypi-url

Btw, what kind of custom servers are you successfully using? 
(tell me on twitter @hpk42 if you like).

Oh, and for basic info just go to

http://codespeak.net/tox

if that wasn't clear yet.

have fun,
holger

Changelog for 0.9
---

- added support for working with different and multiple PYPI indexservers.
- fix pip-installation mixups by always unsetting PIP_RESPECT_VIRTUALENV
  (thanks Armin Ronacher)
- issue1: Add a toxbootstrap.py script for tox, thanks to Sridhar Ratnakumar
- new option: -r|--recreate to force recreation of virtualenv
- show logfile content if there is an error (makes CI output
  more readable)
- depend on py=1.4.0 which does not contain or install the py.test
  anymore which is now a separate distribution pytest.
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


apipkg-1.0 controling exported API + lazy importing

2010-10-14 Thread holger krekel
Hi, 

i just released apipkg-1.0, an around 100 LOC module for easy importing
of export-controled namespaces.  So far, it's successfully used in tox, pylib 
and a few other projects.  

With apipkg you can control the exported namespace of a Python package and
greatly reduce the number of imports for your users.  It is a `small pure python
module`_ that works on virtually all Python versions, including CPython2.3 to
Python3.1, Jython and PyPy.  It co-operates well with Python's ``help()``
system, custom importers (PEP302) and common command line completion tools.

Some more info on the PyPI project page:

http://pypi.python.org/pypi/apipkg

have fun,
holger
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


pylib/py.test 1.3.4: fixes and new native traceback option

2010-09-15 Thread holger krekel
pylib/py.test 1.3.4 is a minor maintenance release mostly containing bug fixes
and a new --tb=native traceback option to show normal Python standard
tracebacks instead of the py.test enhanced tracebacks.  See below for more 
change info and http://pytest.org for more general information on features 
and configuration of the testing tool. 

Thanks to the issue reporters and generally to Ronny Pfannschmidt for help. 

cheers,
holger krekel

Changes between 1.3.3 and 1.3.4
==

- fix issue111: improve install documentation for windows
- fix issue119: fix custom collectability of __init__.py as a module
- fix issue116: --doctestmodules work with __init__.py files as well
- fix issue115: unify internal exception passthrough/catching/GeneratorExit
- fix issue118: new --tb=native for presenting cpython-standard exceptions

-- 
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


execnet-1.0.8 and a green experiment

2010-07-31 Thread holger krekel

I just released execnet-1.0.8, see the Changelog for details, below.

What is execnet? 
-

execnet is a small pure python library that manages distributed code execution
across Python versions and host boundaries.  It provides a self-bootstrapping
share-nothing model with channels to send/receive data messages. It also 
helps with managing a cluster of (local or remote) processes and comes 
with tons of examples and API docs: 

http://codespeak.net/execnet

green version of execnet 


For those interested i hacked up a green version of execnet
which is API-compatible (and less stable) than the main
version.  It requires the eventlet library and is thus not fully 
self-bootstrapping (you need to install eventlet on all remote nodes
you want to execute code on).  There is no release but you can peruse

   http://code.google.com/p/execnet-green/source/checkout  

and python setup.py develop to play with it.  It will never spawn 
any operating system threads.  Rather remote_exec() will spawn 
greenlets/micro-threads of which you can easily have a few thousand.  
It probably only is stable enough for simple scenarios at this point. 

best,
holger

Changelog 1.0.8 (compared to 1.0.7):

- new ``gateway.remote_exec(func, **kwargs)`` style fo executing
  a pure function with parameters.  The function on the remote
  side also needs to accept a ``channel`` which allows it to
  communicate back and forth.  Thanks to Ronny Pfannschmidt
  for implementing it with special kudos to Maciej Fijalkowski
  for writing a pure-function checker so that on Python2.6
  onwards non-pure functions will be rejected.

- enhance rsyncing to also sync permissions (stat().st_mode) 
  of directories and files. 
  (should also resolve http://bitbucket.org/hpk42/py-trunk/issue/68/)

- fix rsyncing of symlinks, thanks to Charles Solar 
  (should also resolve http://bitbucket.org/hpk42/py-trunk/issue/70/)

- update internal usage of apipkg to 1.0b6

- remote_exec(module) now makes sure that the linecache is updated
  before reading and sending the source.  thanks Ronny, Matt. 

- removed all trailing whitespace from source files
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


tox-0.8 and py.test-1.3.3 released

2010-07-31 Thread holger krekel
Hi,

just did a two test tool releases, one for tox and one for py.test. 

The tox-0.8 release provides fixes and workarounds, see changelog below. 
The py-1.3.3 release mainly provides fixes for terminal output. 

best  thanks to the respective feedbackers/helpers,
holger

What is tox? 
--

Tox is a generic test runner, creating virtualenv environments
on the fly and executing your test tool of choice.  It works
conveniently from a developer's terminal as well as from
a Continous Integration Server. See

http://codespeak.net/tox 


What is py.test? 
--

py.test is an easy-to-learn testing tool with many plugins
and features for integration and functional tests in Python. See

http://pytest.org

for more info. 


CHANGES tox-0.8
-

- work around a virtualenv limitation which crashes if
  PYTHONDONTWRITEBYTECODE is set.
- run pip/easy installs from the environment log directory, avoids
  naming clashes between env names and dependencies (thanks ronny)
- require a more recent version of py lib
- refactor and refine config detection to work from a single file
  and to detect the case where a python installation overwrote
  an old one and resulted in a new executable. This invalidates
  the existing virtualenvironment now.
- change all internal source to strip trailing whitespaces

Changes py-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

-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


tox-0.7: fixes, python3-compat, site-packages

2010-07-14 Thread holger krekel
Hi all, 

thanks to feedback and help from Michael Foord, Sridhar Ratnakumar,
Kumar McMillan, Ronny Pfannschmidt and Ralf Schmitt i just 
released tox-0.7 which includes a couple of fixes, improved Python3 
virtualenv support (on non-windows platforms), and a new sitepackages 
config option that let's you use globally installed packages.  
See the more detailed changelog below. 

The web page is here: 

http://codespeak.net/tox

have fun,
holger

What is Tox? 


TOX as is a virtualenv management and generic test command line tool 
you can use for:  

* checking your package installs correctly with different Python 
  versions and interpreters 

* running your tests in each of the environments, configuring your test 
  tool of choice

* acting as a frontend to Continous Integration servers, greatly
  reducing boilerplate and merging CI and shell-based testing.
   
Changes 0.7
--

- use virtualenv5 (my own fork of virtualenv3) for now to create python3 
  environments, fixes a couple of issues and makes tox more likely to 
  work with Python3 (on non-windows environments) 

- add ``sitepackages`` option for testenv sections so that environments 
  can be created with access to globals (default is not to have access, 
  i.e. create environments with ``--no-site-packages``. 

- addressing issue4: always prepend venv-path to PATH variable when calling 
subprocesses

- fix issue2: exit with proper non-zero return code if there were 
  errors or test failures. 

- added unittest2 examples contributed by Michael Foord 

- only allow 'True' or 'False' for boolean config values 
  (lowercase / uppercase is irrelevant)

- recreate virtualenv on changed configurations 

0.6
-

- fix OSX related bugs that could cause the caller's environment to get
  screwed (sorry).  tox was using the same file as virtualenv for tracking 
  the Python executable dependency and there also was confusion wrt links. 
  this should be fixed now. 

- fix long description, thanks Michael Foord

0.5
-

- initial release 


-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


tox, a new generic virtualenv/test management tool

2010-07-12 Thread holger krekel

I have been talking about it with various people lately and
am now happy announce the first release of tox.

tox aims to automate tedious Python related test activities driven
from a simple ``tox.ini`` file, including:

* creation and management of virtualenv environments
* installing your Python package into each of them
* run your test tool of choice (nose, py.test, unittests, you name it) 
* testing packages against each other without needing to upload to PyPI

tox runs well on Python2.4 up until Python3.1 and integrates
well with Continous Integration servers like Hudson. There are many
real-life examples and a fair amount of docs.  Read up on

http://codespeak.net/tox

and please report any issues.  This is a fresh project and
i'd like to drive further improvements from real world needs
and feedback.

thanks  cheers,
holger krekel
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


  1   2   >