# Pytest GIT Fixture
Creates an empty Git repository for testing that cleans up after itself on teardown.
## Installation
Install using your favourite package installer:
```bash
pip install pytest-git
# or
easy_install pytest-git
```
Enable the fixture explicitly in your tests or conftest.py (not required when using setuptools entry points):
```python
pytest_plugins = ['pytest_git']
```
## Usage
This plugin is a thin wrapper around the excellent GitPython library (see http://gitpython.readthedocs.org/en/stable/).
Here's a noddy test case that shows it working:
```python
def test_git_repo(git_repo):
# The fixture derives from `workspace` in `pytest-shutil`, so they contain
# a handle to the path.py path object (see https://pythonhosted.org/path.py)
path = git_repo.workspace
file = path / 'hello.txt'
file.write_text('hello world!')
# We can run commands relative to the working directory
git_repo.run('git add hello.txt')
# It's better to use the GitPython api directly - the 'api' attribute is
# a handle to the repository object.
git_repo.api.index.commit("Initial commit")
# The fixture has a URI property you can use in downstream systems
assert git_repo.uri.startswith('file://')
```
## Changelog
### 1.2.2 (2016-10-2r70)
* Python 3 compatibility across most of the modules
* Fixed deprecated Path.py imports (Thanks to Bryan Moscon)
* Fixed deprecated multicall in pytest-profiling (Thanks to Paul van der Linden for PR)
* Added devpi-server fixture to create an index per test function
* Added missing licence file
* Split up httpd server fixture config so child classes can override loaded modules easier
* Added 'preserve_sys_path' argument to TestServer base class which exports the current python sys.path to subprocesses.
* Updated httpd, redis and jenkins runtime args and paths to current Ubuntu spec
* Ignore errors when tearing down workspaces to avoid race conditions in 'shutil.rmtree' implementation
### 1.2.1 (2016-3-1)
* Fixed pytest-verbose-parametrize for latest version of py.test
### 1.2.0 (2016-2-19)
* New plugin: git repository fixture
### 1.1.1 (2016-2-16)
* pytest-profiling improvement: escape illegal characters in .prof files (Thanks to Aarni Koskela for the PR)
### 1.1.0 (2016-2-15)
* New plugin: devpi server fixture
* pytest-profiling improvement: overly-long .prof files are saved as the short hash of the test name (Thanks to Vladimir Lagunov for PR)
* Changed default behavior of workspace.run() to not use a subshell for security reasons
* Corrected virtualenv.run() method to handle arguments the same as the parent method workspace.run()
* Removed deprecated '--distribute' from virtualenv args
### 1.0.1 (2015-12-23)
* Packaging bugfix
### 1.0.0 (2015-12-21)
* Initial public release
Creates an empty Git repository for testing that cleans up after itself on teardown.
## Installation
Install using your favourite package installer:
```bash
pip install pytest-git
# or
easy_install pytest-git
```
Enable the fixture explicitly in your tests or conftest.py (not required when using setuptools entry points):
```python
pytest_plugins = ['pytest_git']
```
## Usage
This plugin is a thin wrapper around the excellent GitPython library (see http://gitpython.readthedocs.org/en/stable/).
Here's a noddy test case that shows it working:
```python
def test_git_repo(git_repo):
# The fixture derives from `workspace` in `pytest-shutil`, so they contain
# a handle to the path.py path object (see https://pythonhosted.org/path.py)
path = git_repo.workspace
file = path / 'hello.txt'
file.write_text('hello world!')
# We can run commands relative to the working directory
git_repo.run('git add hello.txt')
# It's better to use the GitPython api directly - the 'api' attribute is
# a handle to the repository object.
git_repo.api.index.commit("Initial commit")
# The fixture has a URI property you can use in downstream systems
assert git_repo.uri.startswith('file://')
```
## Changelog
### 1.2.2 (2016-10-2r70)
* Python 3 compatibility across most of the modules
* Fixed deprecated Path.py imports (Thanks to Bryan Moscon)
* Fixed deprecated multicall in pytest-profiling (Thanks to Paul van der Linden for PR)
* Added devpi-server fixture to create an index per test function
* Added missing licence file
* Split up httpd server fixture config so child classes can override loaded modules easier
* Added 'preserve_sys_path' argument to TestServer base class which exports the current python sys.path to subprocesses.
* Updated httpd, redis and jenkins runtime args and paths to current Ubuntu spec
* Ignore errors when tearing down workspaces to avoid race conditions in 'shutil.rmtree' implementation
### 1.2.1 (2016-3-1)
* Fixed pytest-verbose-parametrize for latest version of py.test
### 1.2.0 (2016-2-19)
* New plugin: git repository fixture
### 1.1.1 (2016-2-16)
* pytest-profiling improvement: escape illegal characters in .prof files (Thanks to Aarni Koskela for the PR)
### 1.1.0 (2016-2-15)
* New plugin: devpi server fixture
* pytest-profiling improvement: overly-long .prof files are saved as the short hash of the test name (Thanks to Vladimir Lagunov for PR)
* Changed default behavior of workspace.run() to not use a subshell for security reasons
* Corrected virtualenv.run() method to handle arguments the same as the parent method workspace.run()
* Removed deprecated '--distribute' from virtualenv args
### 1.0.1 (2015-12-23)
* Packaging bugfix
### 1.0.0 (2015-12-21)
* Initial public release
Metadata
Release files for pytest-git 1.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pytest-git-1.2.2.tar.gz | 4.3 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pytest_git-1.2.2-py2.7.egg | Legacy Egg format | - | - | Details |
| pytest_git-1.2.2-py2-none-any.whl | Python 2 | none | any | Details |
Total release size: 13.5 kB
Release files / pytest-git-1.2.2.tar.gz
| Download URL | pytest-git-1.2.2.tar.gz |
|---|---|
| Size | 4.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9d16bb8600d8fb8306358049c966e154274c68ab2365f1f75451585081a034b9
|
|
BLAKE2b-256 checksum How to use checksums |
9961a9077047e068329b4c1be2c3be6bb79f6dbae7b850dd5581bcb0483f1109
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / pytest_git-1.2.2-py2.7.egg
| Download URL | pytest_git-1.2.2-py2.7.egg |
|---|---|
| Size | 3.4 kB |
| Tags | Egg |
|
SHA-256 checksum How to use checksums |
16dd64b77eeec7245e36ccacb87eee43f222e1709a17d320a90f6a1f05f83174
|
|
BLAKE2b-256 checksum How to use checksums |
ba5244b0fe5fc529e28ccde5e829969195c3a64138747124b410e0bfe35d0b0d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / pytest_git-1.2.2-py2-none-any.whl
| Download URL | pytest_git-1.2.2-py2-none-any.whl |
|---|---|
| Size | 5.8 kB |
| Tags | Python 2 |
|
SHA-256 checksum How to use checksums |
7087e276ea08bf53f5bc7a94f016449f540f799081d495a2ceecb300e5d74a54
|
|
BLAKE2b-256 checksum How to use checksums |
646afb4e8f524af4e3607ebff350a56e1d4b9e15161bb36c93f64bf4f1c331c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |