From 4c99bb88dbc8c30f3c0bfbaa4d8da5a8cce9c9c9 Mon Sep 17 00:00:00 2001 From: Tomas 'Jethro' Pokorny Date: Tue, 1 Jun 2021 22:58:13 +0200 Subject: [PATCH] Pridany kontroly migraci. --- db_compare.py | 105 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 101 insertions(+), 4 deletions(-) diff --git a/db_compare.py b/db_compare.py index e21a860b..705930da 100644 --- a/db_compare.py +++ b/db_compare.py @@ -41,18 +41,115 @@ def check_same(old_row, new_row, old_fields, new_fields=None): raise ValueError(f"Fields '{old_field}' and '{new_field}' differs for rows '{old_row}' and '{new_row}'") return True +def get_user_id_for_org_id(org_id): + query = """SELECT auth_user.id FROM auth_user + INNER JOIN seminar_osoby ON seminar_osoby.user_id = auth_user.id + INNER JOIN seminar_organizator ON seminar_organizator.osoba_id = seminar_osoby.id + WHERE seminar_organizator.id = %s """ + + newcur.execute(query,(org_id,)) + return newcur.fetchone()['id'] + + def check_skola(): old_query = "SELECT * FROM seminar_skoly ORDER BY id" - new_query = old_query - - old_res, new_res = execute_simple(old_query,new_query) + old_res, new_res = execute_simple(old_query) res = zip(old_res,new_res) for o,n in res: check_same(o,n,['id','aesop_id','izo','nazev','kratky_nazev','ulice','mesto','psc','stat','je_zs','je_ss','poznamka']) -check_skola() +def check_rocnik(): + old_query = "SELECT * FROM seminar_rocniky ORDER BY id" + + old_res, new_res = execute_simple(old_query) + res = zip(old_res,new_res) + + for o,n in res: + check_same(o,n,['id','prvni_rok', 'rocnik', 'exportovat']) + +def check_cislo(): + old_query = "SELECT * FROM seminar_cisla ORDER BY id" + + old_res, new_res = execute_simple(old_query) + res = zip(old_res,new_res) + + for o,n in res: + check_same(o,n, ['id','rocnik_id','cislo', 'datum_vydani','datum_deadline','verejne','poznamka','pdf'], + ['id','rocnik_id','poradi','datum_vydani','datum_deadline','verejne','poznamka','pdf']) + +def check_priloha_reseni(): + old_query = "SELECT * FROM seminar_priloha_reseni" + + old_res, new_res = execute_simple(old_query) + res = zip(old_res,new_res) + + for o,n in res: + check_same(o,n, ['id','reseni_id', 'timestamp', 'soubor', 'poznamka'], + ['id','reseni_id', 'vytvoreno', 'soubor', 'poznamka']) + +def check_soustredeni(): + old_query = "SELECT * FROM seminar_soustredeni ORDER BY id" + + old_res, new_res = execute_simple(old_query) + res = zip(old_res,new_res) + + for o,n in res: + check_same(o,n,['id','rocnik_id','datum_zacatku','datum_konce','verejne','misto','text','typ','exportovat']) + #Kontrola ucasnici, organizatori v samostatnych funkcich + +def check_soustredeni_ucastnici(): + old_query = "SELECT * FROM seminar_soustredeni_ucastnici ORDER BY id" + old_res, new_res = execute_simple(old_query) + res = zip(old_res,new_res) + + for o,n in res: + check_same(o,n,['id','resitel_id','soustredeni_id','poznamka']) + +def check_soustredeni_organizatori(): + old_query = "SELECT * FROM seminar_soustredeni_organizatori ORDER BY id" + + old_res, new_res = execute_simple(old_query) + res = zip(old_res,new_res) + + for o,n in res: + check_same(o,n,['id','organizator_id','soustredeni_id','poznamka']) + +def check_nastaveni(): + old_query = "SELECT * FROM seminar_nastaveni ORDER BY id" + + old_res, new_res = execute_simple(old_query) + res = zip(old_res,new_res) + + for o,n in res: + check_same(o,n,['id','aktualni_cislo_id']) + +def check_novinky(): + old_query = "SELECT * FROM seminar_novinky ORDER BY id" + + old_res, new_res = execute_simple(old_query) + res = zip(old_res,new_res) + + for o,n in res: + check_same(o,n,['id','datum','text','obrazek','zverejneno']) + if get_user_id_for_org_id(n['autor_id']) != o['autor_id']: + raise ValueError("Nesedi autori u novinek") + + + + + + +check_skola() +check_rocnik() +check_cislo() +check_priloha_reseni() +check_soustredeni() +check_soustredeni_ucastnici() +check_soustredeni_organizatori() +check_nastaveni() +check_novinky()