test_SendReports.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. from baangt.base.SendReports import Sender
  2. from pathlib import Path
  3. import configparser
  4. import os
  5. from unittest.mock import patch
  6. from atlassian import Confluence
  7. def readConfig():
  8. """ Read existing sendstatistic.ini file """
  9. globalSettings = {}
  10. config = configparser.ConfigParser()
  11. config_file = Path(os.getcwd()).joinpath("tests").joinpath("0TestInput").joinpath("sendstatistics.ini")
  12. print(config_file)
  13. config.read(config_file)
  14. globalSettings["TelegramBot"] = config["Default"].get("TelegramBot")
  15. globalSettings["TelegramChannel"] = config["Default"].get("TelegramChannel")
  16. return globalSettings
  17. settings = readConfig()
  18. send_stats = Sender(settings, "tests/0TestInput/sendstatistics.xlsx")
  19. subject, body = send_stats.create_body()
  20. def test_telegram():
  21. messages = send_stats.sendTelegram(test=True)
  22. text = subject + "\n\n" + body
  23. assert text in messages
  24. def fake_response(text):
  25. return '{"test@pytest": "Success"}'
  26. @patch.object(Confluence, "create_page")
  27. @patch.object(Confluence, "attach_file")
  28. def test_confluence(mock_attach, mock_create):
  29. send_stats.globalSettings["Confluence-Base-Url"] = "xxxx"
  30. send_stats.globalSettings["Confluence-Space"] = "xxxx"
  31. send_stats.globalSettings["Confluence-Pagetitle"] = "xxxx"
  32. send_stats.globalSettings["Confluence-Username"] = "xxxx"
  33. send_stats.globalSettings["Confluence-Password"] = "xxxx"
  34. send_stats.globalSettings["Confluence-Rootpage"] = "xxxx"
  35. send_stats.globalSettings["Confluence-Remove_Headers"] = "xxxx"
  36. send_stats.globalSettings["Confluence-Uploadoriginalfile"] = "xxxx"
  37. send_stats.globalSettings["Confluence-Createsubpagesforeachxxentries"] = 11
  38. send_stats.sendConfluence()
  39. assert 1 == 1
  40. @patch("json.loads", fake_response)
  41. @patch("requests.post")
  42. def test_SendMail(mock_request):
  43. send_stats.defaultSettings["SendMailTo"] = "test@pytest"
  44. send_stats.sendMail()
  45. assert mock_request.call_count == 1
  46. @patch("pymsteams.connectorcard")
  47. def test_SendMsTeams(mock_conn):
  48. send_stats.defaultSettings["MsWebHook"] = "xxxx"
  49. send_stats.sendMsTeam()
  50. assert mock_conn.call_count == 1
  51. @patch("slack_webhook.Slack")
  52. def test_SendSlack(mock_conn):
  53. send_stats.defaultSettings["SlackWebHook"] = "xxxx"
  54. send_stats.sendSlack()
  55. assert 1 == 1