Metadata-Version: 2.1
Name: rfhub2
Version: 0.4
Summary: Webserver for robot framework and python assets documentation
Home-page: https://github.com/pbylicki/rfhub2/
Author: Pawel Bylicki, Maciej Wiczk
Author-email: pawelkbylicki@gmail.com, maciejwiczk@gmail.com
License: Apache License 2.0
Keywords: robotframework
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: Unix
Classifier: Framework :: Robot Framework
Classifier: Framework :: Robot Framework :: Tool
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Intended Audience :: Developers
Description-Content-Type: text/markdown
Requires-Dist: Click (>=7.0)
Requires-Dist: fastapi (>=0.30.0)
Requires-Dist: robotframework (>=3.0.0)
Requires-Dist: SQLAlchemy (>=1.1.0)
Requires-Dist: requests (>=2.10.0)
Provides-Extra: postgresql
Requires-Dist: psycopg2-binary (>=2.7.4) ; extra == 'postgresql'

# rfhub2

[![Build Status](https://travis-ci.org/pbylicki/rfhub2.svg?branch=master)](https://travis-ci.org/pbylicki/rfhub2)
[![codecov](https://codecov.io/gh/pbylicki/rfhub2/branch/master/graph/badge.svg)](https://codecov.io/gh/pbylicki/rfhub2)
[![image](https://img.shields.io/pypi/v/rfhub2.svg)](https://pypi.org/project/rfhub2/)
[![image](https://img.shields.io/pypi/pyversions/rfhub2.svg)](https://pypi.org/project/rfhub2/)
[![image](https://img.shields.io/pypi/wheel/rfhub2.svg)](https://pypi.org/project/rfhub2/)
![Docker Cloud Automated build](https://img.shields.io/docker/cloud/automated/pbylicki/rfhub2.svg)
![Docker Cloud Build Status](https://img.shields.io/docker/cloud/build/pbylicki/rfhub2.svg)

## Development

#### Install dependencies
```
pip install -r requirements.txt -r requirements-dev.txt
```
To run app with Postgres db install additional dependencies:
```
pip install -r requirements-postgres.txt
```

##### Frontend

Requirements:
- Node.js
- Yarn

```
cd frontend && yarn install
```

#### Build docker image
To build image using SQLite DB:
```
docker build -f docker/Dockerfile -t rfhub2 .
```
To build image using PostgreSQL DB:
```
docker build -f docker/Dockerfile-postgres -t rfhub2:postgres .
```
#### Run application (web server)
To run with default (SQLite) database:
```
python -m rfhub2
```
To run with Postgres database:
```
RFHUB_DB_URI=postgresql://postgres:postgres@localhost:5432/postgres python -m rfhub2
```
To run application using docker image with default (SQLite) database:
```
docker run -it -p 8000:8000 rfhub2
```
To run application using docker image with Postgres database:
```
docker run -it -p 8000:8000 --network=host -e RFHUB_DB_URI="postgresql://postgres:postgres@localhost:5432/postgres" rfhub2:postgres
```

##### Frontend
To run frontend development server
```
cd frontend && yarn start
```

To create frontend build
```
yarn build
```
To create frontend build and add its files to rfhub2 package static files directory
```
./build_ui.sh
```

#### Populate application with data
To populate application running on localhost:
```
python -m rfhub2.cli ../your_repo ../your_other_repo
```
To populate app running on another host, with non-default credentials:
```
python -m rfhub2.cli -a http://your_host:8000 -u user -p password ../your_repo ../your_other_repo
```
To populate app but to skip loading RFWK installed libraries:
```
python -m rfhub2.cli --no-installed-keywords ../your_repo ../your_other_repo
```
To preserve previously loaded collections and add new ones:
```
python -m rfhub2.cli --no-db-flush ../your_repo ../your_other_repo
```

#### Run unit tests
```
python -m unittest tests
```

#### Formatting
Black is used for code formatting. It is included in CI pipeline.
To reformat code after edit, execute:
```
black -t py36 rfhub2 tests
```

You can consider adding a git hook or integrating it with your IDE for automated execution.



