Pour tout problème contactez-nous par mail : support@froggit.fr | La FAQ :grey_question: | Rejoignez-nous sur le Chat :speech_balloon:

Skip to content
Snippets Groups Projects
Commit f6a0b2e2 authored by Dorian Turba's avatar Dorian Turba
Browse files

update python_install readme

parent 5dc1db9c
No related branches found
No related tags found
No related merge requests found
Pipeline #22055 failed
...@@ -2,7 +2,7 @@ files: ...@@ -2,7 +2,7 @@ files:
template: ./templates/python/partial/python_install.yml template: ./templates/python/partial/python_install.yml
documentation: ./templates/python/partial/README.md documentation: ./templates/python/partial/README.md
data: data:
description: "Job that is meant to be extend by subsequent jobs that need a python environment." description: "Job that is meant to be extend by jobs that need a python environment."
icon: 🐍 icon: 🐍
public: true public: true
labels: labels:
......
## Objective ## Objective
Run [pytest](https://docs.pytest.org/en/latest/) on your Python code to ensure all unit tests pass. The objective of the `python_install` job is to provide a Python environment with all requirements
Pytest is a popular framework for writing and executing tests in Python, and it supports test installed for CI jobs. This reusable job can help speed up other jobs creation and ensure
automation, modular fixtures, parameterized testing, and many other features. consistent configuration across CI jobs that rely on a python environment.
## How to use it ## How to use it
1. Configure the `pytest.ini` or `pyproject.toml` file in your repository's root directory with your 1. Include the pytest template in your CI/CD configuration (see quick use above).
desired rules. 2. Create a job that extend the `python_install` job template.
2. Include the pytest template in your CI/CD configuration (see quick use above).
3. If you need to customize the job, check 3. If you need to customize the job, check
the [jobs customization](https://docs.r2devops.io/get-started/use-templates/#job-templates-customization). the [jobs customization](https://docs.r2devops.io/get-started/use-templates/#job-templates-customization).
## Variables ## Variables
| Name | Description | Default | | Name | Description | Default |
|----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------| |----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|
| `PYTHON_SETUP` | Bash commands to setup your python environment. Default rely on `pyproject.toml` to install project and test dependencies. | `"pip install .[TESTS]"` | | `PROJECT_PATH` | The path to the project root directory. | `"."` |
| `IMAGE_TAG` | The default tag for the docker image. See [Python Docker Official Image](https://hub.docker.com/_/python) for supported tags and respective Dockerfile links | `"latest"` | | `IMAGE_TAG` | The default tag for the docker image. See [Python Docker Official Image](https://hub.docker.com/_/python) for supported tags and respective Dockerfile links | `"latest"` |
| `PYTHON_SETUP` | Bash commands to setup your python environment. Default rely on `requirements.txt` to install all dependencies. | `"pip install -r ${PROJECT_PATH}/requirements.txt"` |
## Global Configuration of pytest ##
To add configuration to `pytest` that is shared with any other usage of pytest (such as manual runs,
pre-commit, etc.), you can use the `pytest.ini` or `pyproject.toml` configuration files. Learn more
about [pytest configuration](https://docs.pytest.org/en/stable/customize.html) files.
## Multiple pytest Jobs in the same pipeline
You can run this pytest job multiple times in the same pipeline (e.g. to test multiple python version
or different namespaces) using extends GitLab keyword.
```yaml
stages:
- test
```yml
include: include:
- remote: 'https://api.r2devops.io/job/r/gitlab/dorianturba/r2devops_catalog/pytest@latest.yaml' - remote: 'https://api.r2devops.io/job/r/gitlab/dorianturba/r2devops_catalog/python_install@1.0.0.yaml'
# Compatibility tests flake8:
pytest_3.10: extend: python_install
extends: pytest stage: code_quality
variables: variables:
PROJECT_PATH: "."
IMAGE_TAG: "3.10" IMAGE_TAG: "3.10"
PYTHON_SETUP: "pip install ${PROJECT_PATH}[CODE_QUALITY]"
script:
python_install
- flake8 ${PROJECT_PATH} -v
``` ```
https://docs.r2devops.io/get-started/use-templates/#multiple-usage-of-the-same-job-template-in-your-pipeline
## Add a <a href="https://docs.pytest.org/en/latest/"><img alt="Tested with pytest" src="https://img.shields.io/badge/Tested%20with-pytest-green"></a> Badge to your project README.md ## Add a <a href="https://docs.pytest.org/en/latest/"><img alt="Tested with pytest" src="https://img.shields.io/badge/Tested%20with-pytest-green"></a> Badge to your project README.md
To display the use of pytest in your project, you can add the following badge to your README.md: To display the use of pytest in your project, you can add the following badge to your README.md:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment