forked from TrueCloudLab/frostfs-testlib
[#3] Add tools required to build PyPI package
Signed-off-by: Vladimir Domnich <v.domnich@yadro.com>
This commit is contained in:
parent
f5cd6a1954
commit
3df12e2869
5 changed files with 77 additions and 15 deletions
7
.gitignore
vendored
7
.gitignore
vendored
|
@ -1,5 +1,10 @@
|
||||||
# ignore IDE files
|
# ignore IDE files
|
||||||
.vscode
|
.vscode
|
||||||
|
|
||||||
# ignore caches under any path
|
# ignore temp files under any path
|
||||||
|
.DS_Store
|
||||||
**/__pycache__
|
**/__pycache__
|
||||||
|
|
||||||
|
# ignore build artifacts
|
||||||
|
/dist
|
||||||
|
*.egg-info
|
||||||
|
|
28
README.md
28
README.md
|
@ -1,11 +1,17 @@
|
||||||
# neofs-testlib
|
# neofs-testlib
|
||||||
This library provides building blocks and utilities to facilitate development of automated tests for NeoFS system.
|
This library provides building blocks and utilities to facilitate development of automated tests for NeoFS system.
|
||||||
|
|
||||||
## Repository structure
|
|
||||||
TODO
|
|
||||||
|
|
||||||
## Installation
|
## 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
|
## Contributing
|
||||||
Any contributions to the library should conform to the [contribution guideline](https://github.com/nspcc-dev/neofs-node/blob/master/CONTRIBUTING.md).
|
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:
|
To setup development environment for `neofs-testlib`, please, take the following steps:
|
||||||
1. Prepare virtualenv
|
1. Prepare virtualenv
|
||||||
|
|
||||||
```
|
```shell
|
||||||
$ virtualenv --python=python3.9 venv
|
$ virtualenv --python=python3.9 venv
|
||||||
$ source venv/bin/activate
|
$ source venv/bin/activate
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Install all dependencies:
|
2. Install all dependencies:
|
||||||
|
|
||||||
```
|
```shell
|
||||||
$ pip install -r requirements.txt
|
$ pip install -r requirements.txt
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Setup pre-commit hooks to run code formatters on staged files before you run a `git commit` command:
|
3. Setup pre-commit hooks to run code formatters on staged files before you run a `git commit` command:
|
||||||
|
|
||||||
```
|
```shell
|
||||||
pre-commit install
|
$ pre-commit install
|
||||||
```
|
```
|
||||||
|
|
||||||
Optionally you might want to integrate code formatters with your code editor to apply formatters to code files as you go:
|
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
|
### 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:
|
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:
|
||||||
```
|
```shell
|
||||||
python -m unittest discover --start-directory tests
|
$ 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:
|
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
|
```shell
|
||||||
$ twine upload dist/*
|
$ 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.
|
||||||
|
|
|
@ -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]
|
[tool.isort]
|
||||||
profile = "black"
|
profile = "black"
|
||||||
src_paths = ["reporter", "shell", "tests"]
|
src_paths = ["src", "tests"]
|
||||||
line_length = 100
|
line_length = 100
|
||||||
|
|
||||||
[tool.black]
|
[tool.black]
|
||||||
line-length = 100
|
line-length = 100
|
||||||
target-version = ["py39"]
|
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}"]
|
||||||
|
|
|
@ -1,6 +1,14 @@
|
||||||
allure-python-commons==2.9.45
|
allure-python-commons==2.9.45
|
||||||
black==22.8.0
|
|
||||||
isort==5.10.1
|
|
||||||
paramiko==2.10.3
|
paramiko==2.10.3
|
||||||
pexpect==4.8.0
|
pexpect==4.8.0
|
||||||
|
|
||||||
|
# Dev dependencies
|
||||||
|
black==22.8.0
|
||||||
|
bumpver==2022.1118
|
||||||
|
isort==5.10.1
|
||||||
pre-commit==2.20.0
|
pre-commit==2.20.0
|
||||||
|
|
||||||
|
# Packaging dependencies
|
||||||
|
build==0.8.0
|
||||||
|
setuptools==63.2.0
|
||||||
|
twine==4.0.1
|
||||||
|
|
1
src/neofs_testlib/__init__.py
Normal file
1
src/neofs_testlib/__init__.py
Normal file
|
@ -0,0 +1 @@
|
||||||
|
__version__ = "0.1.0"
|
Loading…
Reference in a new issue