""" unit-test """ import unittest import inspect import basic.program import basic.toolHandling import basic.Testserver import test.testtools import basic.constants as B # the list of TEST_FUNCTIONS defines which function will be really tested. # if you minimize the list you can check the specific test-function TEST_FUNCTIONS = ["test_01createTestserver", "test_02getDBSchema", "test_11createDBTables", "test_11syncApplication"] #TEST_FUNCTIONS = ["test_02getDBSchema"] # with this variable you can switch prints on and off verbose = False class MyTestCase(unittest.TestCase): mymsg = "--------------------------------------------------------------" def test_01createTestserver(self): global mymsg actfunction = str(inspect.currentframe().f_code.co_name) cnttest = 0 if actfunction not in TEST_FUNCTIONS: return job = test.testtools.getJob() testserver = basic.Testserver.Testserver(job) self.assertIsNotNone(testserver) cnttest += 1 if B.TOPIC_NODE_DB in job.conf: self.assertIn(B.TOPIC_NODE_DB, testserver.conf[B.TOPIC_CONN]) self.assertIn(B.ATTR_DB_DATABASE, testserver.conf[B.TOPIC_CONN][B.TOPIC_NODE_DB]) # 2024-04-21 auskommentiert, Testserver war neu aufgestellt # self.assertIn(B.DATA_NODE_DDL, testserver.conf) # self.assertIn("application", testserver.conf[B.DATA_NODE_DDL]) MyTestCase.mymsg += "\n----- "+actfunction+" : "+str(cnttest) def test_02getDBSchema(self): global mymsg actfunction = str(inspect.currentframe().f_code.co_name) cnttest = 0 if actfunction not in TEST_FUNCTIONS: return job = test.testtools.getJob() testserver = basic.Testserver.Testserver(job) if B.TOPIC_NODE_DB in job.conf: dbi = basic.toolHandling.getDbTool(job, self, job.conf[B.TOPIC_NODE_DB][B.ATTR_TYPE]) else: job.conf[B.TOPIC_NODE_DB] = {} job.conf[B.TOPIC_NODE_DB][B.ATTR_TYPE] = "rel" job.conf[B.TOPIC_NODE_DB][B.ATTR_DB_DATABASE] = B.ATTR_INST_TESTSERVER self.job = job dbi = basic.toolHandling.getDbTool(job, self, "rel") # return "No DB in job-config" testserver.createAdminDBTables(job) """ t = "application" sql = testserver.model[t].get_schema(tableName=t, tableObject=testserver.model[t]) #sql = testserver.getDBSchema(job, dbi, "application") print(sql+"##") lines = sql.split("\n") self.assertEqual(4, len(lines)) self.assertIn("CREATE TABLE", lines[0]) self.assertIn("CREATE INDEX", lines[1]) t = "ap_project" sql = testserver.model[t].get_schema(tableName=t, tableObject=testserver.model[t]) # sql = testserver.getDBSchema(job, dbi, "ap_project") print(sql+"##") lines = sql.split("\n") self.assertEqual(4, len(lines)) self.assertIn("CREATE TABLE", lines[0]) self.assertIn("CREATE INDEX", lines[1]) t = "ap_component" sql = testserver.model[t].get_schema(tableName=t, tableObject=testserver.model[t]) #sql = testserver.getDBSchema(job, dbi, "ap_component") print(sql+"##") lines = sql.split("\n") self.assertEqual(4, len(lines)) self.assertIn("CREATE TABLE", lines[0]) self.assertIn("CREATE INDEX", lines[1]) """ def test_11createDBTables(self): global mymsg actfunction = str(inspect.currentframe().f_code.co_name) cnttest = 0 if actfunction not in TEST_FUNCTIONS: return job = test.testtools.getJob() """ 2024-04-21: auskommentiert, denn createDBTables durch createAdminTables erstellt if B.TOPIC_NODE_DB not in job.conf: job.conf[B.TOPIC_NODE_DB] = {} job.conf[B.TOPIC_NODE_DB][B.ATTR_TYPE] = "rel" job.conf[B.TOPIC_NODE_DB][B.ATTR_DB_DATABASE] = B.ATTR_INST_TESTSERVER self.job = job testserver = basic.Testserver.Testserver(job) for t in testserver.model: sql = testserver.model[t].get_schema(tableName=t, tableObject=testserver.model[t]) print(sql) #testserver.createDBTables(job) """ def test_zzz(self): if verbose: print(MyTestCase.mymsg) if __name__ == '__main__': verbose = True unittest.main()