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([])
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([])