示例#1
0
def test_get_existing_messages(monkeypatch, mocker, repo, slack_response, result):
    old_version = repo.head.commit.hexsha
    for commit in ["1"]:
        repo.index.commit(commit, author=Actor("test_author", "*****@*****.**"))

    fake_deployment = Deployment(repo=repo, new_version="HEAD", old_version=old_version)
    monkeypatch.setattr(uut, "deployment", fake_deployment)
    slack_hook = uut.Hook()
    slack_hook.channel_ids = ["123", "asd"]
    fake_get = mocker.patch.object(uut.session, "get")
    fake_response = mocker.Mock()
    fake_response.json = lambda: {"messages": []}
    fake_get.return_value = fake_response

    with pytest.raises(KeyError):
        slack_hook.get_existing_messages()

    deployment_id = f"<{uut.deployment.id}.com| >"

    fake_response.json = lambda: {
        "messages": [
            {"text": deployment_id, "attachments": [{"fields": []}]},
            {"text": "colemak", "attachments": [{"fields": []}]},
        ]
    }
    messages = slack_hook.get_existing_messages()
    assert len(messages) == 2
    assert messages["123"]["text"] == deployment_id
    assert messages["asd"]["attachments"][0]["fields"] == uut.AttachmentFields([])
示例#2
0
def test_get_existing_message(monkeypatch, mocker, repo, slack_response,
                              result):
    old_version = repo.head.commit.hexsha
    for commit in ['1']:
        repo.index.commit(commit, author=Actor('test_author', '*****@*****.**'))

    fake_deployment = Deployment(repo=repo,
                                 new_version='HEAD',
                                 old_version=old_version)
    monkeypatch.setattr(uut, 'deployment', fake_deployment)
    slack_hook = uut.Hook()
    slack_hook.channel_id = 'asd'
    fake_get = mocker.patch.object(uut.session, 'get')
    fake_response = mocker.Mock()
    fake_response.json = lambda: {'messages': []}
    fake_get.return_value = fake_response

    assert slack_hook.get_existing_message() is None

    deployment_id = f'<{uut.deployment.id}.com| >'

    fake_response.json = lambda: {
        'messages': [
            {
                'text': deployment_id,
                'attachments': [{
                    'fields': []
                }]
            },
            {
                'text': 'colemak',
                'attachments': [{
                    'fields': []
                }]
            },
        ]
    }
    assert slack_hook.get_existing_message()['text'] == deployment_id
    assert slack_hook.get_existing_message(
    )['attachments'][0]['fields'] == uut.AttachmentFields([])