Browse Source

introducing testcase log numbering

aguryev 3 years ago
parent
commit
32d53dd870

+ 2 - 2
baangt/base/DataBaseORM.py

@@ -116,7 +116,7 @@ class TestCaseSequenceLog(base):
 	__tablename__ = 'testCaseSequences'
 	# columns
 	id = Column(Binary(16), primary_key=True, default=uuidAsBytes)
-	number = Column(Integer)
+	number = Column(Integer, nullable=False)
 	testrun_id = Column(Binary(16), ForeignKey('testruns.id'), nullable=False)
 	# relationships
 	testrun = relationship('TestrunLog', foreign_keys=[testrun_id])
@@ -152,7 +152,7 @@ class TestCaseLog(base):
 	__tablename__ = 'testCases'
 	# columns
 	id = Column(Binary(16), primary_key=True, default=uuidAsBytes)
-	number = Column(Integer)
+	number = Column(Integer, nullable=False)
 	testcase_sequence_id = Column(Binary(16), ForeignKey('testCaseSequences.id'), nullable=False)
 	# relationships
 	testcase_sequence = relationship('TestCaseSequenceLog', foreign_keys=[testcase_sequence_id])

+ 4 - 3
baangt/base/ExportResults/ExportResults.py

@@ -254,16 +254,17 @@ class ExportResults:
         self.__save_commit(session)
 
         # create testcase sequence instance
-        tcs_log = TestCaseSequenceLog(testrun=tr_log)
+        tcs_log = TestCaseSequenceLog(testrun=tr_log, number=1)
 
         # create testcases
-        for tc in self.dataRecords.values():
+        for tc_number, tc in enumerate(self.dataRecords.values(), 1):
             # get uuid
             uuid = uuid4()
             # create TestCaseLog instances
             tc_log = TestCaseLog(
                 id=uuid.bytes,
-                testcase_sequence=tcs_log
+                testcase_sequence=tcs_log,
+                number=tc_number,
             )
             # store uuid
             self.testcase_uuids.append(uuid)

+ 2 - 2
baangt/base/ResultsBrowser.py

@@ -247,9 +247,9 @@ class ResultsBrowser:
         if start_date and end_date:
             self.query_set.set([log for log in records if log.startTime > start_date and log.startTime < end_date])
         elif start_date:
-            self.query_set.set([log for log in records if log.startTime > start_date])
+            self.query_set.set([log for log in records if log.startTime >= start_date])
         elif end_date:
-            self.query_set.set([log for log in records if log.startTime < end_date])
+            self.query_set.set([log for log in records if log.startTime <= end_date])
         else:
             self.query_set.set(records)
 

+ 28 - 7
db_add_number.py

@@ -1,27 +1,48 @@
-from sqlalchemy import create_engine
+from sqlalchemy import create_engine, Column, Integer
 from sqlalchemy.orm import sessionmaker
 from baangt.base.DataBaseORM import DATABASE_URL, TestrunLog, TestCaseLog, TestCaseSequenceLog
 
+def add_column(engine, table_name, column):
+    column_name = column.compile(dialect=engine.dialect)
+    column_type = column.type.compile(engine.dialect)
+    #column_nullable = column.nullable.compile(engine.dialect)
+    #column_default = column.default.compile(engine.dialect)
+    sql = f'''
+    	ALTER TABLE {table_name}
+    	ADD COLUMN {column_name} {column_type} {"NULL" if column.nullable else "NOT NULL"}
+    	{"DEFAULT " if column.default else ""}{column.default.arg if column.default else ""}
+    '''
+    print(f'*** CREATING new column in table {table_name}:\n{sql}')
+    engine.execute(sql)
+
 if __name__ == '__main__':
 	engine = create_engine(DATABASE_URL)
+	
+	# add new columns
+	number_column = Column('number', Integer, nullable=False, default=0)
+	add_column(engine, TestCaseSequenceLog.__table__, number_column)
+	add_column(engine, TestCaseLog.__table__, number_column)
+
+	# populate with numbers
+	print('\n*** POPULATING new columns')
 	session = sessionmaker(bind=engine)()
 
 	# fetch testruns
-	print('\nSetting numbers od TestCaseSequeces')
+	print('\nSetting numbers of TestCaseSequeces')
 	testruns = session.query(TestrunLog)
 	for tr_index, tr in enumerate(testruns):
 		for tcs_index, tcs in enumerate(tr.testcase_sequences, 1):
 			tcs.number = tcs_index
-			if not tr_index%50:
-				print(f'{tr_index} TestrunLogs processed')
+		if tr_index and not tr_index%50:
+			print(f'{tr_index} TestrunLogs processed')
 	session.commit()
 
 	# fetch testcase sequences
-	print('\nSetting numbers od TestCases')
+	print('\nSetting numbers of TestCases')
 	testcase_sequences = session.query(TestCaseSequenceLog)
 	for tcs_index, tcs in enumerate(testcase_sequences):
 		for tc_index, tc in enumerate(tcs.testcases, 1):
 			tc.number = tc_index
-			if not tcs_index%50:
-				print(f'{tcs_index} TestCaseSequenceLogs processed')
+		if tcs_index and not tcs_index%50:
+			print(f'{tcs_index} TestCaseSequenceLogs processed')
 	session.commit()

BIN
examples/example_googleImages.xlsx