#!/usr/bin/python3 # encoding:utf-8 import unittest from DBConnection import DBConnection import logging import configparser logging.basicConfig( format='%(asctime)-15s [%(levelname)s] %(funcName)s: %(message)s', level=logging.DEBUG) schueler = [ {'name':'Simpson','vorname': 'Bart'}, {'name':'Simpson','vorname':'Lisa'}, {'name':'van Houten','vorname':'Milhouse'}, {'name':'Wiggum','vorname':'Ralph'}, {'name':'Jones','vorname':'Jimbo'} ] class TestDBConnection(unittest.TestCase): @classmethod def setUpClass(cls): logging.debug(f'setUpClass() {cls}') config = configparser.ConfigParser() config.read('db.ini') logging.debug(f"host={config['pidb']['host']}") cls.db_connection = DBConnection() cls.db_connection.connect(config['pidb']['host'],config['pidb']['user'],config['pidb']['password'],config['pidb']['database']) if cls.db_connection.isConnected(): logging.debug('erzeuge Table schueler...') cls.db_connection.execute_query('create table if not exists schueler (id int auto_increment primary key, vorname varchar(20),name varchar(20))') # Testdaten aufbauen. cls.fill_table() logging.debug('setup() fertig') @classmethod def tearDownClass(cls): logging.debug(f'tearDownClass() {cls}') logging.debug('Räume Tables auf') cls.db_connection.execute_query('drop table if exists schueler') logging.debug('schliesse Datenbankverbindung.') cls.db_connection.disconnect() cls.db_connection = None # input('Press Any Key') #Testdaten in die Datenbank übertragen @classmethod def fill_table(cls): for s in range(0,len(schueler)): student = schueler[s] cls.db_connection.insertSchueler(student) # Nur die Records mit Nachname ='Simpson' lesen def test_select_name(self): self.assertTrue(self.db_connection.isConnected()) result = self.db_connection.execute_query("select * from schueler where name='Simpson'") self.assertEqual(2,len(result)) def test_select_all(self): # self.test_insert() result = self.db_connection.execute_query("select * from schueler") logging.debug(f'result={result}') self.assertEqual(len(schueler),len(result)) for i in range(len(result)): self.assertEqual(schueler[i]['vorname'], result[i][1]) def test_connected(self): self.assertTrue(self.db_connection.isConnected()) def test_create_table(self): self.assertTrue(self.db_connection.isConnected()) if __name__ =='__main__': unittest.main()