Metadata-Version: 2.1
Name: robotframework-notifications
Version: 1.1.1
Summary: Send notifications to Slack or Mattermost using Robot Framework.
Home-page: https://github.com/tlolkema/RobotNotifications
Author: Tim Lolkema
Author-email: tim@detesters.nl
License: MIT
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Description-Content-Type: text/markdown
Requires-Dist: requests

# RobotNotifications


Send notifications to Slack or Mattermost using Robot Framework.
Can be used both as library or listener.

## Installation

The recommended installation method is pip:

    pip install robotframework-notifications

Running this command installs also the latest version of Requests


## Use as listener

```robot --listener "RobotNotifications;https://webhook_url;end_suite;end_test" test.robot```

Listeners are taken into use from the command line with the --listener option.

- The first argument is the name of the library.
- The second argument is the webhook url.

Seperate the arguments with a semicolon ;

## Arguments

| Argument     	| Description        	| Example                                                                                                           	|
|--------------	|--------------------	|-------------------------------------------------------------------------------------------------------------------	|
| end_suite    	| Post suite results 	| **Suites.Suite 1**<br><br>3 critical tests, 2 passed, 1 failed<br><br>3 tests total, 2 passed, 1 failed               	|
| end_test     	| Post failing tests 	| **Sample Testcase** (FAIL)<br><br>No keyword with name 'Log To C' found. Did you mean: <br><br>BuiltIn.Log To Console 	|
| end_test_all 	| Post all tests     	| **Sample Testcase** (PASS)                                                                                            	|                                                                                	|

## Use as library

Besides the listener functionality this library allows you to post a custom message with the use of the keyword "Post Message To Channel"

To use RobotNotifications in Robot Framework, the library needs to be imported using the ``Library`` setting as any other library. The library needs the webhook url from Slack or Mattermost as an argument.

Example:
```robotframework
*** Settings ***
Library         RobotNotifications   https://hooks.slack.com/services/--your-webhook--
```
You can retrieve this webhook url in Slack or Mattermost.

Example 2:
```robotframework
*** Settings ***
Library         RobotNotifications   https://hooks.slack.com/services/--your-webhook--
...             end_suite   end_test
```

## Write a custom message

After importing the library you have access to the keyword ``Post Message To Channel``

This keyword has one mandatory argument which is the message to post to the channel, and several optional arguments.

| Argument   | Description                                                  | Required |
| ---------- | :----------------------------------------------------------- | -------- |
| text       | Markdown-formatted message to display in the post.           | YES      |
| channel    | Overrides the channel the message posts in. Use the channel’s name and not the display name. Defaults to the channel set during webhook creation. | NO       |
| username   | Overrides the username the message posts as. Defaults to the username set during webhook creation or the webhook creator’s username if the former was not set. | NO       |
| icon_url   | Overrides the profile picture the message posts with. Defaults to the URL set during webhook creation or the webhook creator’s profile picture if the former was not set. | NO       |
| icon_emoji | Overrides the profile picture and `icon_url` parameter. Defaults to none and is not set during webhook creation. | NO       |
| props      | Sets the post `props`, a JSON property bag for storing extra or meta data on the post. | NO       |

Example:
```robotframework
*** Settings ***
Library         RobotNotifications   https://hooks.slack.com/services/--your-webhook--

*** Test Cases ***
Example Test
    Post Message To Channel      This is a custom message!    icon_emoji=robot_face    username=Robot    
    ...                          channel=robot-notifications
```    
The above example shows how the ``Post Message To Channel`` can be used in Robot Framework.

## Retrieve webhook

Slack

> https://slack.com/intl/en-lv/help/articles/115005265063-incoming-webhooks-for-slack

Mattermost

>  https://docs.mattermost.com/developer/webhooks-incoming.html#simple-incoming-webhook 


