DataBaseORM.py 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. from sqlalchemy import Column, String, Integer, DateTime, Boolean, Table, ForeignKey
  2. from sqlalchemy.orm import relationship
  3. from sqlalchemy import create_engine
  4. from sqlalchemy.ext.declarative import declarative_base
  5. DATABASE_URL = 'testrun.db'
  6. engine = create_engine(f'sqlite:///{DATABASE_URL}')
  7. base = declarative_base()
  8. #
  9. # declare realtion classes
  10. #
  11. class TestrunToTestcase(base):
  12. __tablename__ = 'testrun_testcase'
  13. testrunLog_id = Column(Integer, ForeignKey('testrunLog.id'), primary_key=True)
  14. testcase_id = Column(Integer, ForeignKey('testCaseLog.id'), primary_key=True)
  15. class TestcaseToExtra(base):
  16. __tablename__ = 'testcase_extras'
  17. testcase_id = Column(Integer, ForeignKey('testCaseLog.id'), primary_key=True)
  18. extrafield_id = Column(Integer, ForeignKey('extraFields.id'), primary_key=True)
  19. #
  20. # declare models
  21. #
  22. class TestrunLog(base):
  23. __tablename__ = "testrunLog"
  24. id = Column(Integer, primary_key=True)
  25. testrunName = Column(String, nullable=False)
  26. logfileName = Column(String, nullable=False)
  27. startTime = Column(DateTime, nullable=False)
  28. endTime = Column(DateTime, nullable=False)
  29. globalVars = Column(String, nullable=True)
  30. dataFile = Column(String, nullable=True)
  31. statusOk = Column(Integer, nullable=False)
  32. statusFailed = Column(Integer, nullable=False)
  33. statusPaused = Column(Integer, nullable=False)
  34. testcases = relationship('TestCaseLog', secondary='TestrunToTestcase')
  35. class TestCaseLog(base):
  36. __tablename__ = 'testCaseLog'
  37. id = Column(Integer, primary_key=True)
  38. toasts = Column(String, nullable=True)
  39. tcErrorLog =Column(String, nullable=True)
  40. vigogf = Column(String, nullable=True)
  41. sapPolizzennr =Column(String, nullable=True)
  42. pramie = Column(String, nullable=True)
  43. polNrHost = Column(String, nullable=True)
  44. testCaseStatus = Column(String, nullable=True)
  45. duration = Column(String, nullable=True)
  46. screenshots = Column(String, nullable=True)
  47. timelog = Column(String, nullable=True)
  48. exportFilesBasePath = Column(String, nullable=True)
  49. tcLines = Column(String, nullable=True)
  50. tcDontCloseBrowser = Column(Boolean, nullable=True)
  51. tcBrowserAttributes = Column(String, nullable=True)
  52. tcSlowExecution = Column(Boolean, nullable=True)
  53. tcNetworkInfo = Column(Boolean, nullable=True)
  54. txDebug = Column(Boolean, nullable=True)
  55. screenshotPath = Column(String, nullable=True)
  56. exportPath = Column(String, nullable=True)
  57. importPath = Column(String, nullable=True)
  58. rootPath = Column(String, nullable=True)
  59. testrun = relationship('TestrunLog', secondary='TestrunToTestcase')
  60. extraFields = relationship('ExtraField', secondary='TestcaseToExtra')
  61. class ExtraField(base):
  62. __tablename__ = 'extraFields'
  63. id = Column(Integer, primary_key=True)
  64. name = Column(String, nullable=False)
  65. value = Column(String, nullable=True)
  66. testcase = relationship('TestCaseLog', secondary='TestcaseToExtra')
  67. # create tables
  68. base.metadata.create_all(engine)