def generateTest(tables): content = tables.content for table in content: tableName = generator.asClassName(table.name) moduleName = tableName + ".py" imports = """ import Tables as tables import MockModule as mock import db.main.DBApiModule as db from _mysql_exceptions import DataError, OperationalError, IntegrityError """ classDef=""" class %s(tables.Tables): ''' - Test: insertion and fetching data from/to table - Test: update entry and its references - Test: drop entry and its references - Test: references. - Test: inserting invalid modifiedAt - Test: NOT NULLS constrains - Test: UNIQUE constrains - Test: FOREIGN KEY CONSTRAINS ''' """%(tableName) dependencies=""" def __initDependencies(self): self.initDBMockContents()\n%s%s"""%(generator.attributes(table, 8), generator.insertReferences(tables, table, 8)) setUp =""" def setUp(self): self.connect() self.__initDependencies() """ tearDown =""" def tearDown(self): self.conn.close() """ select =""" rows = db.selectFrom(self.conn, {"%s"}, "*", id=self.%s) """%(table.name, table.columns[0].name) insertion =""" ''' INSERTION TESTS ''' def testInsertion(self):\n%s%s\n%s """%(generator.insertToDB(table, 8), select, generateAssertEquals(table, "", 8)) updates =""" ''' UPDATE TESTS '''\n\n%s"""%(generateUpdateTest(table, 4)) drop =""" ''' DROP TESTS '''\n\n%s"""%(generateDropTest(tables, table, 4)) dataTypes =""" ''' DATA TYPE TESTS '''\n\n%s"""%(generateDataTypeTest(table, 4)) testModule = (imports + classDef + dependencies + setUp + tearDown + insertion + updates + drop) module = open("generated/"+moduleName, "w+") module.write(testModule) module.close() print "ws_test for %s were generated"%tableName