test_browser.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. from baangt.base.ResultsBrowser import ResultsBrowser
  2. from datetime import datetime
  3. import json
  4. #DATABASE_URL = 'sqlite:///testrun_my.db'
  5. # filter parameters
  6. name = 'heartbeat.json'
  7. #name = 'RSantragAll.json'
  8. stage = 'HF'
  9. #stage = 'PQA'
  10. start_time = datetime.strptime("2020-06-10 00:00", "%Y-%m-%d %H:%M")
  11. end_time = datetime.strptime("2020-07-11 00:00", "%Y-%m-%d %H:%M")
  12. def print_logs(logs):
  13. for index, log in enumerate(logs):
  14. #data = log.to_json()
  15. print(f"{index:^4}{log.testrunName:20}{log.stage:10}{log.startTime}\t{log}")
  16. #r = ResultsBrowser(db_url=DATABASE_URL)
  17. r = ResultsBrowser()
  18. #r.getTestCases(name=name, stage=stage)
  19. '''
  20. print('\n***** Get All Records')
  21. logs = r.getResults()
  22. print_logs(logs)
  23. print('\n***** Filter By Name')
  24. logs = r.getResults(name=name)
  25. print_logs(logs)
  26. print('\n***** Filter By Stage')
  27. logs = r.getResults(stage=stage)
  28. print_logs(logs)
  29. print('\n***** Filter By Name & Stage')
  30. logs = r.getResults(name=name, stage=stage)
  31. print_logs(logs)
  32. print('\n***** Filter By Name and Date')
  33. logs = r.getResults(name=name, start_date=start_time, end_date=end_time)
  34. print_logs(logs)
  35. '''
  36. '''
  37. id = 'eff78fa9-83b7-484a-a8ab-5e30cf0f12cc'
  38. print(f'\n****** GET BY ID: {id}')
  39. print_logs([r.get(id)])
  40. '''
  41. '''
  42. def draw_seconds(t):
  43. if t is None:
  44. return '\033[35mnan\033[0m'
  45. n = t.seconds
  46. if n < 20:
  47. return f'\033[45m{n:3}\033[0m'
  48. elif n < 50:
  49. return f'\033[44m{n:3}\033[0m'
  50. elif n < 100:
  51. return f'\033[42m{n:3}\033[0m'
  52. elif n < 150:
  53. return f'\033[43m{n:3}\033[0m'
  54. else:
  55. return f'\033[41m{n:3}\033[0m'
  56. print(f'\n****** TestCase details for {name}')
  57. status = {
  58. "OK": '\033[92mK\033[0m',
  59. "Failed": '\033[91mF\033[0m',
  60. "Paused": '\033[90mP\033[0m',
  61. }
  62. logs = r.getResults(name=name, stage=stage)
  63. print(f'\n{"Date":^20}\tTest Case Status')
  64. for log in logs:
  65. print(log.startTime, end='\t')
  66. for tc in log.testcase_sequences[0].testcases:
  67. print(status[tc.status], end=' ')
  68. print()
  69. print(f'\n{"Date":^20}\tTest Case Duration (s)')
  70. for log in logs:
  71. print(log.startTime, end='\t')
  72. for tc in log.testcase_sequences[0].testcases:
  73. print(draw_seconds(tc.duration), end=' ')
  74. print()
  75. '''
  76. r.query(name=name, stage=stage, start_date=start_time, end_date=end_time)
  77. #r.query(name=name, start_date=start_time)
  78. f = r.export()
  79. #print(f'Exported to: {f}')