Skip to main content

opentmi-client

Project description

# Python Client library for OpenTMI

[![CircleCI](https://circleci.com/gh/OpenTMI/opentmi-pyclient/tree/master.svg?style=svg)](https://circleci.com/gh/OpenTMI/opentmi-pyclient/tree/master)
[![Coverage Status](https://coveralls.io/repos/github/OpenTMI/opentmi-pyclient/badge.svg)](https://coveralls.io/github/OpenTMI/opentmi-pyclient)

This library purpose is to provide simple interface for OpenTMI -backend.

## installation

`python setup.py install`

## Test

`python setup.py test`

## Compile documentation

```
sphinx-apidoc -o docs/_static opentmi_client
make -C docs html
```


## Command Line Interface

Library provides Command line Interface to communicate with OpenTMI -backend

```
/> opentmi --help
usage: opentmi [-h] [--version VERSION] [--host HOST] [-p PORT] [--list LIST]
[--testcases TESTCASES]

optional arguments:
-h, --help show this help message and exit
--version VERSION Prints package version and exits
--host HOST OpenTMI host, default: localhost
-p PORT, --port PORT OpenTMI port
--list LIST List something
--testcases TESTCASES
```

example:
```
opentmi --host localhost --port 3000 --list --testcases 1
```

## Python API

```
from opentmi_client import Client
client = Client(host='127.0.0.1', port=3000)
campaigns = client.get_campaigns()
testcases = client.get_testcases()
result = {
"tcid": "test-case",
"campaign": "my-campaign",
"exec": {
"verdict": "pass",
"duration": "8",
},
"sut": {
"gitUrl": "github.com/opentmi/opentmi",
"commitId": "123",
},
"dut": {
"type": "hw",
"vendor": "ABC",
"model": "platform#1",
"sn": "123"
}
}
client.upload_results(result) # require valid result json object or converter function
```

Alternative you can set `result_converter()` and `testcase_converter()` -functions in OpenTmiClient constructor.
Converter functions will be used to convert application specific result object for opentmi suitable format.

Suitable result schema is described [here](https://github.com/OpenTMI/opentmi/blob/master/app/models/results.js#L15).

Test case document schema is available [here](https://github.com/OpenTMI/opentmi/blob/master/app/models/testcase.js).

**notes**

* `tcid` -field have to be unique for each test cases.
* There is couple mandatory fields by default: `tcid` and `exec.verdict`. Allowed values for result verdict is: `pass`, `fail`, `inconclusive`, `blocked` and `error`. `upload_results()` -function also create test case document if it doesn't exists in database.


LICENSE: MIT


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for opentmi-client, version 0.3.2
Filename, size File type Python version Upload date Hashes
Filename, size opentmi_client-0.3.2-py2.7.egg (28.2 kB) File type Egg Python version 2.7 Upload date Hashes View
Filename, size opentmi_client-0.3.2-py2-none-any.whl (12.9 kB) File type Wheel Python version py2 Upload date Hashes View
Filename, size opentmi_client-0.3.2.tar.gz (14.4 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page