[#3] Add tools required to build PyPI package

Signed-off-by: Vladimir Domnich <v.domnich@yadro.com>
This commit is contained in:
Vladimir Domnich 2022-09-23 13:01:38 +04:00 committed by Vladimir
parent f5cd6a1954
commit 3df12e2869
5 changed files with 77 additions and 15 deletions

7
.gitignore vendored
View file

@ -1,5 +1,10 @@
# ignore IDE files
.vscode
# ignore caches under any path
# ignore temp files under any path
.DS_Store
**/__pycache__
# ignore build artifacts
/dist
*.egg-info

View file

@ -1,11 +1,17 @@
# neofs-testlib
This library provides building blocks and utilities to facilitate development of automated tests for NeoFS system.
## Repository structure
TODO
## Installation
TODO
Library can be installed via pip:
```shell
$ pip install neofs-testlib
```
## Library structure
The library provides the following primary components:
* `cli` - wrappers on top of neoFS command-line tools. These wrappers execute on a shell and provide type-safe interface for interacting with the tools.
* `reporter` - abstraction on top of test reporting tool like Allure. Components of the library will report their steps and attach artifacts to the configured reporter instance.
* `shell` - shells that can be used to execute commands. Currently library provides local shell (on machine that runs the code) or SSH shell that connects to a remote machine via SSH.
## Contributing
Any contributions to the library should conform to the [contribution guideline](https://github.com/nspcc-dev/neofs-node/blob/master/CONTRIBUTING.md).
@ -14,21 +20,21 @@ Any contributions to the library should conform to the [contribution guideline](
To setup development environment for `neofs-testlib`, please, take the following steps:
1. Prepare virtualenv
```
```shell
$ virtualenv --python=python3.9 venv
$ source venv/bin/activate
```
2. Install all dependencies:
```
```shell
$ pip install -r requirements.txt
```
3. Setup pre-commit hooks to run code formatters on staged files before you run a `git commit` command:
```
pre-commit install
```shell
$ pre-commit install
```
Optionally you might want to integrate code formatters with your code editor to apply formatters to code files as you go:
@ -37,8 +43,8 @@ Optionally you might want to integrate code formatters with your code editor to
### Unit Tests
Before submitting any changes to the library, please, make sure that all unit tests are passing. To run the tests, please, use the following command:
```
python -m unittest discover --start-directory tests
```shell
$ python -m unittest discover --start-directory tests
```
To enable tests that interact with SSH server, please, setup SSH server and set the following environment variables before running the tests:
@ -78,4 +84,4 @@ To upload package to actual PyPI, please, use command:
```shell
$ twine upload dist/*
```
It will prompt for your username and password. You would need to [create account](https://pypi.org/account/register/) in order to execute it.
It will prompt for your username and password. You would need to [create PyPI account](https://pypi.org/account/register/) in order to execute it.

View file

@ -1,8 +1,50 @@
[build-system]
requires = ["setuptools>=63.0.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "neofs-testlib"
version = "0.1.0"
description = "Building blocks and utilities to facilitate development of automated tests for NeoFS system"
readme = "README.md"
authors = [{ name = "NSPCC", email = "info@nspcc.ru" }]
license = { text = "GNU General Public License v3 (GPLv3)" }
classifiers = [
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
]
keywords = ["neofs", "test"]
dependencies = [
"allure-python-commons>=2.9.45",
"paramiko>=2.10.3",
"pexpect>=4.8.0",
]
requires-python = ">=3.9"
[project.optional-dependencies]
dev = ["black", "bumpver", "isort", "pre-commit"]
[project.urls]
Homepage = "https://github.com/nspcc-dev/neofs-testlib"
[tool.isort]
profile = "black"
src_paths = ["reporter", "shell", "tests"]
src_paths = ["src", "tests"]
line_length = 100
[tool.black]
line-length = 100
target-version = ["py39"]
[tool.bumpver]
current_version = "0.1.0"
version_pattern = "MAJOR.MINOR.PATCH"
commit_message = "Bump version {old_version} -> {new_version}"
commit = false
tag = false
push = false
[tool.bumpver.file_patterns]
"pyproject.toml" = ['current_version = "{version}"', 'version = "{version}"']
"src/neofs_testlib/__init__.py" = ["{version}"]

View file

@ -1,6 +1,14 @@
allure-python-commons==2.9.45
black==22.8.0
isort==5.10.1
paramiko==2.10.3
pexpect==4.8.0
# Dev dependencies
black==22.8.0
bumpver==2022.1118
isort==5.10.1
pre-commit==2.20.0
# Packaging dependencies
build==0.8.0
setuptools==63.2.0
twine==4.0.1

View file

@ -0,0 +1 @@
__version__ = "0.1.0"