release-2.3.5.rst
Overview
This file is the release notes document for **pytest version 2.3.5**, a maintenance update to the popular Python testing framework pytest. It summarizes the key bug fixes, minor improvements, and plugin ecosystem updates introduced in this release. The document serves as a changelog and user guidance resource for developers upgrading from version 2.3.4 to 2.3.5.
The release focuses on stability and compatibility, with no backward-incompatible changes expected. It also highlights new and updated plugins, installation instructions, and acknowledgments to contributors.
Purpose and Functionality
Communicates the scope and nature of changes in pytest 2.3.5.
Provides a detailed list of bug fixes and enhancements between 2.3.4 and 2.3.5.
Offers context on plugin ecosystem growth and maintenance.
Supplies installation and upgrade commands for users.
Documents acknowledgments and credits to contributors.
Acts as an official reference for users and integrators to understand what is new or fixed.
This file is intended for pytest users, plugin authors, and integrators who want to:
Learn about fixes and improvements in version 2.3.5.
Identify if the update affects their tests or plugins.
Get installation instructions.
Discover new plugins and features available in the pytest ecosystem.
Detailed Content Explanation
Release Header
Title:
pytest-2.3.5: bug fixes and little improvementsDescription: Briefly describes the release as a maintenance update with no compatibility breaks.
Plugin Highlights: Lists several notable new or updated plugins (e.g., pytest-instafail, pytest-qt).
Installation Instructions: Shows how to upgrade pytest via
piporeasy_install.Acknowledgments: Credits contributors and bug reporters.
Changes between 2.3.4 and 2.3.5
This section enumerates specific fixes and enhancements with references to issue numbers and contributors where applicable. Key changes include:
Fixes related to fixture handling, including preventing fixture functions from being collected as tests.
Support for re-running test items to improve plugin compatibility.
Enhanced JUnit XML output capturing stdout/stderr even for passing tests.
Integration fixes with nose-style setup/teardown.
Disabling assertion rewriting on problematic Python versions.
Added getfixture() helper for fixture access from doctests.
Improved Unicode handling in parametrization names/values.
Multiple bugfixes in assertion rewriting and doctest handling.
Fixes for test discovery customization and debugging output.
Various other smaller bugfixes improving stability and usability.
No backward incompatible changes are mentioned, emphasizing a smooth upgrade path.
Implementation Details and Algorithms
As a release notes file, it contains no executable code, classes, or functions. Instead, it documents the results of internal changes made to the pytest framework codebase.
Bug fixes and improvements reflect internal algorithmic enhancements, e.g., better fixture lifecycle management, improved assertion rewriting, and enhanced output capturing.
Integration with external tools (e.g., nose, junitxml) is refined to ensure consistent behavior.
Support for Python versions is carefully managed to avoid known interpreter bugs.
Interaction with Other System Components
This document is part of the pytest project documentation and is distributed with the source code and packages.
It references and impacts pytest core components such as fixtures, test collection/discovery, output capturing, and assertion rewriting.
It mentions plugins that extend pytest functionality, indicating the ecosystem's modular nature.
Installation instructions relate to Python package management tools (
pip,easy_install).Users and plugin developers rely on this document to understand changes affecting their tests and plugins.
Usage Examples
Since this is a documentation/release notes file, it does not define executable code or APIs needing usage examples. However, the installation instructions can be considered usage guidance:
pip install -U pytest
# or
easy_install -U pytest
Users can run these commands to upgrade their pytest installation to version 2.3.5.
Visual Diagram
Given this file is a changelog document with no classes or functions, a **flowchart** illustrating the structure of the release notes will help visualize its organization:
flowchart TD
A[Release Header]
B[Plugin Highlights]
C[Installation Instructions]
D[Acknowledgments]
E[Changes between 2.3.4 and 2.3.5]
A --> B
B --> C
C --> D
D --> E
This diagram shows the logical flow starting from the release intro, through plugin info, install instructions, acknowledgments, and finally the detailed changelog.
**Summary**
This file is a critical user-facing document providing a comprehensive overview of the pytest 2.3.5 release. It communicates improvements and fixes, guides installation, and helps maintainers and users understand the incremental evolution of pytest. While it contains no source code, its role in the development lifecycle and user communication is vital.