2016-09-20 22:51:11 +02:00
# -*- coding: utf-8 -*-
2017-11-16 00:43:10 +01:00
from mock import MagicMock , patch
2016-11-10 19:30:09 +01:00
from zerver . lib . test_classes import WebhookTestCase
2016-09-20 22:51:11 +02:00
2020-01-14 22:06:24 +01:00
2016-09-20 22:51:11 +02:00
class TrelloHookTests ( WebhookTestCase ) :
STREAM_NAME = ' trello '
URL_TEMPLATE = u " /api/v1/external/trello?stream= {stream} &api_key= {api_key} "
FIXTURE_DIR_NAME = ' trello '
2017-11-04 07:47:46 +01:00
def test_trello_confirmation_request ( self ) - > None :
2017-08-26 01:24:50 +02:00
response = self . client_head ( self . build_webhook_url ( ) )
2016-11-15 17:20:22 +01:00
self . assertEqual ( response . status_code , 200 , response )
2017-11-04 07:47:46 +01:00
def test_trello_webhook_when_card_was_moved_to_another_list ( self ) - > None :
2016-09-20 22:51:11 +02:00
expected_message = u " TomaszKolek moved [This is a card.](https://trello.com/c/r33ylX2Z) from Basics to Intermediate. "
2017-09-24 01:07:17 +02:00
self . send_and_test_stream_message ( ' changing_cards_list ' , u " Welcome Board " , expected_message )
2016-09-20 22:51:11 +02:00
2017-11-04 07:47:46 +01:00
def test_trello_webhook_when_card_was_renamed ( self ) - > None :
2016-09-20 22:51:11 +02:00
expected_message = u " TomaszKolek renamed the card from \" Old name \" to [New name](https://trello.com/c/r33ylX2Z). "
2017-09-24 01:07:17 +02:00
self . send_and_test_stream_message ( ' renaming_card ' , u " Welcome Board " , expected_message )
2016-09-20 22:51:11 +02:00
2017-11-04 07:47:46 +01:00
def test_trello_webhook_when_label_was_added_to_card ( self ) - > None :
2016-09-20 22:51:11 +02:00
expected_message = u " TomaszKolek added a green label with \" text value \" to [Card name](https://trello.com/c/r33ylX2Z). "
2017-09-24 01:07:17 +02:00
self . send_and_test_stream_message ( ' adding_label_to_card ' , u " Welcome Board " , expected_message )
2016-09-20 22:51:11 +02:00
2017-11-04 07:47:46 +01:00
def test_trello_webhook_when_label_was_removing_from_card ( self ) - > None :
2016-09-20 22:51:11 +02:00
expected_message = u " TomaszKolek removed a green label with \" text value \" from [New Card](https://trello.com/c/r33ylX2Z). "
2017-09-24 01:07:17 +02:00
self . send_and_test_stream_message ( ' removing_label_from_card ' , u " Welcome Board " , expected_message )
2016-09-20 22:51:11 +02:00
2017-11-04 07:47:46 +01:00
def test_trello_webhook_when_member_was_added_to_card ( self ) - > None :
2016-09-20 22:51:11 +02:00
expected_message = u " TomaszKolek added TomaszKolek to [Card name](https://trello.com/c/9BduUcVQ). "
2017-09-24 01:07:17 +02:00
self . send_and_test_stream_message ( ' adding_member_to_card ' , u " Welcome Board " , expected_message )
2016-09-20 22:51:11 +02:00
2017-11-04 07:47:46 +01:00
def test_trello_webhook_when_member_was_removed_from_card ( self ) - > None :
2016-09-20 22:51:11 +02:00
expected_message = u " TomaszKolek removed Trello from [Card name](https://trello.com/c/9BduUcVQ). "
2017-09-24 01:07:17 +02:00
self . send_and_test_stream_message ( ' removing_member_from_card ' , u " Welcome Board " , expected_message )
2016-09-20 22:51:11 +02:00
2017-11-04 07:47:46 +01:00
def test_trello_webhook_when_due_date_was_set ( self ) - > None :
2017-02-26 09:10:14 +01:00
expected_message = u " TomaszKolek set due date for [Card name](https://trello.com/c/9BduUcVQ) to 2016-05-11 10:00:00 UTC. "
2017-09-24 01:07:17 +02:00
self . send_and_test_stream_message ( ' setting_due_date_to_card ' , u " Welcome Board " , expected_message )
2016-09-20 22:51:11 +02:00
2017-11-04 07:47:46 +01:00
def test_trello_webhook_when_due_date_was_changed ( self ) - > None :
2017-02-26 09:10:14 +01:00
expected_message = u " TomaszKolek changed due date for [Card name](https://trello.com/c/9BduUcVQ) from 2016-05-11 10:00:00 UTC to 2016-05-24 10:00:00 UTC. "
2017-09-24 01:07:17 +02:00
self . send_and_test_stream_message ( ' changing_due_date_on_card ' , u " Welcome Board " , expected_message )
2016-09-20 22:51:11 +02:00
2017-11-04 07:47:46 +01:00
def test_trello_webhook_when_due_date_was_removed ( self ) - > None :
2016-09-20 22:51:11 +02:00
expected_message = u " TomaszKolek removed the due date from [Card name](https://trello.com/c/9BduUcVQ). "
2017-09-24 01:07:17 +02:00
self . send_and_test_stream_message ( ' removing_due_date_from_card ' , u " Welcome Board " , expected_message )
2016-09-20 22:51:11 +02:00
2017-11-04 07:47:46 +01:00
def test_trello_webhook_when_card_was_archived ( self ) - > None :
2016-09-20 22:51:11 +02:00
expected_message = u " TomaszKolek archived [Card name](https://trello.com/c/9BduUcVQ). "
2017-09-24 01:07:17 +02:00
self . send_and_test_stream_message ( ' archiving_card ' , u " Welcome Board " , expected_message )
2016-09-20 22:51:11 +02:00
2017-11-04 07:47:46 +01:00
def test_trello_webhook_when_card_was_reopened ( self ) - > None :
2016-09-20 22:51:11 +02:00
expected_message = u " TomaszKolek reopened [Card name](https://trello.com/c/9BduUcVQ). "
2017-09-24 01:07:17 +02:00
self . send_and_test_stream_message ( ' reopening_card ' , u " Welcome Board " , expected_message )
2016-09-20 22:51:11 +02:00
2017-11-04 07:47:46 +01:00
def test_trello_webhook_when_card_was_created ( self ) - > None :
2016-09-20 22:51:11 +02:00
expected_message = u " TomaszKolek created [New card](https://trello.com/c/5qrgGdD5). "
2017-09-24 01:07:17 +02:00
self . send_and_test_stream_message ( ' creating_card ' , u " Welcome Board " , expected_message )
2016-09-20 22:51:11 +02:00
2017-11-04 07:47:46 +01:00
def test_trello_webhook_when_attachment_was_added_to_card ( self ) - > None :
2016-09-20 22:51:11 +02:00
expected_message = u " TomaszKolek added [attachment_name](http://url.com) to [New card](https://trello.com/c/xPKXoSTQ). "
2017-09-24 01:07:17 +02:00
self . send_and_test_stream_message ( ' adding_attachment_to_card ' , u " Welcome Board " , expected_message )
2016-09-20 22:51:11 +02:00
2017-11-04 07:47:46 +01:00
def test_trello_webhook_when_checklist_was_added_to_card ( self ) - > None :
2016-09-20 22:51:11 +02:00
expected_message = u " TomaszKolek added the Checklist checklist to [New card](https://trello.com/c/xPKXoSTQ). "
2017-09-24 01:07:17 +02:00
self . send_and_test_stream_message ( ' adding_checklist_to_card ' , u " Welcome Board " , expected_message )
2016-09-20 22:51:11 +02:00
2019-02-22 00:00:06 +01:00
def test_trello_webhook_when_check_item_is_checked ( self ) - > None :
expected_message = u " Eeshan Garg checked **Tomatoes** in **Checklist** ([Something something](https://trello.com/c/R2thJK3P)). "
self . send_and_test_stream_message ( ' check_item_on_card_checklist ' , u " Zulip " , expected_message )
def test_trello_webhook_when_check_item_is_unchecked ( self ) - > None :
expected_message = u " Eeshan Garg unchecked **Tomatoes** in **Checklist** ([Something something](https://trello.com/c/R2thJK3P)). "
self . send_and_test_stream_message ( ' uncheck_item_on_card_checklist ' , u " Zulip " , expected_message )
2017-11-04 07:47:46 +01:00
def test_trello_webhook_when_member_was_removed_from_board ( self ) - > None :
2016-09-20 22:51:11 +02:00
expected_message = u " TomaszKolek removed Trello from [Welcome Board](https://trello.com/b/iqXXzYEj). "
2017-09-24 01:07:17 +02:00
self . send_and_test_stream_message ( ' removing_member_from_board ' , u " Welcome Board " , expected_message )
2016-09-20 22:51:11 +02:00
2017-11-04 07:47:46 +01:00
def test_trello_webhook_when_member_was_added_to_board ( self ) - > None :
2016-09-20 22:51:11 +02:00
expected_message = u " TomaszKolek added Trello to [Welcome Board](https://trello.com/b/iqXXzYEj). "
2017-09-24 01:07:17 +02:00
self . send_and_test_stream_message ( ' adding_member_to_board ' , u " Welcome Board " , expected_message )
2016-09-20 22:51:11 +02:00
2017-11-04 07:47:46 +01:00
def test_trello_webhook_when_list_was_added_to_board ( self ) - > None :
2016-09-20 22:51:11 +02:00
expected_message = u " TomaszKolek added New list list to [Welcome Board](https://trello.com/b/iqXXzYEj). "
2017-09-24 01:07:17 +02:00
self . send_and_test_stream_message ( ' adding_new_list_to_board ' , u " Welcome Board " , expected_message )
2016-09-20 22:51:11 +02:00
2017-11-04 07:47:46 +01:00
def test_trello_webhook_when_comment_was_added_to_card ( self ) - > None :
2019-05-09 19:56:38 +02:00
expected_message = u " TomaszKolek commented on [New card](https://trello.com/c/xPKXoSTQ): \n ~~~ quote \n New comment \n ~~~ "
2017-09-24 01:07:17 +02:00
self . send_and_test_stream_message ( ' adding_comment_to_card ' , u " Welcome Board " , expected_message )
2016-09-20 22:51:11 +02:00
2017-11-04 07:47:46 +01:00
def test_trello_webhook_when_board_was_renamed ( self ) - > None :
2016-09-20 22:51:11 +02:00
expected_message = u " TomaszKolek renamed the board from Welcome Board to [New name](https://trello.com/b/iqXXzYEj). "
2017-09-24 01:07:17 +02:00
self . send_and_test_stream_message ( ' renaming_board ' , u " New name " , expected_message )
2017-07-27 06:33:57 +02:00
2018-03-16 22:53:50 +01:00
@patch ( ' zerver.webhooks.trello.view.check_send_webhook_message ' )
2017-07-27 06:33:57 +02:00
def test_trello_webhook_when_card_is_moved_within_single_list_ignore (
2018-03-16 22:53:50 +01:00
self , check_send_webhook_message_mock : MagicMock ) - > None :
2017-07-27 06:33:57 +02:00
payload = self . get_body ( ' moving_card_within_single_list ' )
result = self . client_post ( self . url , payload , content_type = " application/json " )
2018-03-16 22:53:50 +01:00
self . assertFalse ( check_send_webhook_message_mock . called )
2017-07-27 06:33:57 +02:00
self . assert_json_success ( result )
2017-09-15 03:11:48 +02:00
2018-03-16 22:53:50 +01:00
@patch ( ' zerver.webhooks.trello.view.check_send_webhook_message ' )
2017-09-15 03:11:48 +02:00
def test_trello_webhook_when_board_background_is_changed_ignore (
2018-03-16 22:53:50 +01:00
self , check_send_webhook_message_mock : MagicMock ) - > None :
2017-09-15 03:11:48 +02:00
payload = self . get_body ( ' change_board_background_image ' )
result = self . client_post ( self . url , payload , content_type = " application/json " )
2018-03-16 22:53:50 +01:00
self . assertFalse ( check_send_webhook_message_mock . called )
2017-09-15 03:11:48 +02:00
self . assert_json_success ( result )
2019-02-21 23:16:09 +01:00
@patch ( ' zerver.webhooks.trello.view.check_send_webhook_message ' )
def test_create_card_check_item_ignore (
self , check_send_webhook_message_mock : MagicMock ) - > None :
payload = self . get_body ( ' create_check_item ' )
result = self . client_post ( self . url , payload , content_type = " application/json " )
self . assertFalse ( check_send_webhook_message_mock . called )
self . assert_json_success ( result )
2017-07-04 19:24:59 +02:00
2017-11-04 07:47:46 +01:00
def test_trello_webhook_when_description_was_added_to_card ( self ) - > None :
2019-05-09 19:56:38 +02:00
expected_message = u " Marco Matarazzo set description for [New Card](https://trello.com/c/P2r0z66z) to: \n ~~~ quote \n New Description \n ~~~ "
2017-09-24 01:07:17 +02:00
self . send_and_test_stream_message ( ' adding_description_to_card ' , u " Welcome Board " , expected_message )
2017-07-04 19:24:59 +02:00
2017-11-04 07:47:46 +01:00
def test_trello_webhook_when_description_was_removed_from_card ( self ) - > None :
2017-07-04 19:24:59 +02:00
expected_message = u " Marco Matarazzo removed description from [New Card](https://trello.com/c/P2r0z66z). "
2017-09-24 01:07:17 +02:00
self . send_and_test_stream_message ( ' removing_description_from_card ' , u " Welcome Board " , expected_message )
2017-07-04 19:24:59 +02:00
2017-11-04 07:47:46 +01:00
def test_trello_webhook_when_description_was_changed_on_card ( self ) - > None :
2017-09-24 01:07:17 +02:00
expected_message = u " Marco Matarazzo changed description for [New Card](https://trello.com/c/P2r0z66z) from \n ~~~ quote \n New Description \n ~~~ \n to \n ~~~ quote \n Changed Description \n ~~~ "
self . send_and_test_stream_message ( ' changing_description_on_card ' , u " Welcome Board " , expected_message )