models.py 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. from StatisticServer import db
  2. from datetime import datetime
  3. import uuid
  4. import json
  5. def uuidAsBytes():
  6. return uuid.uuid4().bytes
  7. class TestRunStatistics(db.Model):
  8. TestRunUUID = db.Column(db.String, primary_key=True)
  9. Browser = db.Column(db.Integer, default=0)
  10. api = db.Column(db.Integer, default=0)
  11. soap = db.Column(db.Integer, default=0)
  12. web = db.Column(db.Integer, default=0)
  13. SequenceClass = db.Column(db.String, default="")
  14. TestCaseExecuted = db.Column(db.Integer, default=0)
  15. TestCasePassed = db.Column(db.Integer, default=0)
  16. TestCaseFailed = db.Column(db.Integer, default=0)
  17. TestCasePaused = db.Column(db.Integer, default=0)
  18. TestCaseClass = db.Column(db.String, default="")
  19. TestStepMaster = db.Column(db.String, default="")
  20. TestStepSequences = db.Column(db.Integer, default=0)
  21. TestSteps = db.Column(db.Integer, default=0)
  22. TestCaseSequences = db.Column(db.Integer, default=0)
  23. XPATH = db.Column(db.Integer, default=0)
  24. CSS = db.Column(db.Integer, default=0)
  25. ID = db.Column(db.Integer, default=0)
  26. # Comparision
  27. equalTo = db.Column(db.Integer, default=0)
  28. notEqualTo = db.Column(db.Integer, default=0)
  29. greaterThan = db.Column(db.Integer, default=0)
  30. smallerThan = db.Column(db.Integer, default=0)
  31. # Non-empty Values count
  32. timeout = db.Column(db.Integer, default=0)
  33. optional = db.Column(db.Integer, default=0)
  34. release = db.Column(db.Integer, default=0)
  35. Duration = db.Column(db.String, default="")
  36. ip = db.Column(db.String)
  37. sendingTime = db.Column(db.DateTime, default=datetime.utcnow)
  38. def __repr__(self):
  39. return str(self.TestRunUUID)
  40. def to_json(self):
  41. dic = self.__dict__
  42. new_dic = {}
  43. for key in dic:
  44. if key[0] == "_":
  45. pass
  46. elif key == "sendingTime":
  47. new_dic["sendingTime"] = dic[key].strftime('%d-%m-%Y %H:%M:%S')
  48. elif key == "TestStepMaster":
  49. try:
  50. TestStepMaster = json.loads(dic[key])
  51. new_dic["TestStepMaster"] = ", ".join([f"{ky}: {TestStepMaster[ky]}" for ky in TestStepMaster])
  52. except:
  53. new_dic["TestStepMaster"] = ''
  54. else:
  55. new_dic[key] = dic[key]
  56. return new_dic
  57. def update(self, kwargs):
  58. for key, value in kwargs.items():
  59. if hasattr(self, key):
  60. setattr(self, key, value)
  61. class ActivityStatistics(db.Model):
  62. id = db.Column(db.LargeBinary, primary_key=True, default=uuidAsBytes)
  63. TestRunUUID = db.Column(db.String)
  64. Key = db.Column(db.String, nullable=False)
  65. Value = db.Column(db.Integer, nullable= False)
  66. def __repr__(self):
  67. return str(self.TestRunUUID)
  68. def to_json(self):
  69. dic = self.__dict__
  70. new_dic ={}
  71. new_dic['TestRunUUID'] = dic['TestRunUUID']
  72. new_dic[dic['Key']] = dic['Value']
  73. return new_dic
  74. def update(self, kwargs):
  75. for key, value in kwargs.items():
  76. if hasattr(self, key):
  77. setattr(self, key, value)