# ------------------------------- # --- TEST API serveru import data as dta import tst_data import api_call import json import sys from datetime import datetime base_url="http://127.0.0.1:8000" id_kas = "01" #pro testovani username = "Kobrle" #identifikace zakazky passwor ="heslo" cenik = tst_data.create_tst_cenik(id_kas) ucet = tst_data.create_tst_ucet(id_kas, True) #jen se @ polozkami, ready pro update print(f'Cenik----------\n{cenik}\n') print(f'Ucet-----------\n{ucet}\n') # ---------------------------------------------------------- # prihlaseni a ziskani tokenu, id_kas a terminal client_id client_id = "01" ok, response, token = api_call.call_api( "POST", base_url = base_url, endpoint="/login/", client_id=client_id, json={"username": "Kobrle","password": "heslo"}) if ok: token0000101 = (token:=response["access_token"]) #walrus ma nizsi prioritu, proto () refresh_token0000101 = (refresh_token:=response["refresh_token"]) print(f"\nPrihlaseni uspesne-------\n" f" token= {token0000101}\n" f" refr_token= {refresh_token0000101}\n{response}\n") else: print(f'Bad user name or password\n') sys.exit(1) #ukonci program s chybovym kodem nebo bez sys muze byt quit() # ----------------------------------------------------- # nacteni setupu pro pokladnu 09 id_kas = "01" ok, response, token = api_call.call_api("GET", base_url = base_url, endpoint="/setup/", client_id="01", token=token0000101, refresh_token=refresh_token0000101, params={"id_kas": id_kas} ) if ok: print(f"\nSetup nacten OK-------\n{response}\n") else: print("Setup failed:\n", response) sys.exit(1) # ------------------------------------------------------ # zapis uctu na server, stejny client -> stejne tokeny ucet.open_at = dta.now_clk_str() payload = ucet.model_dump() print(json.dumps(payload, indent=2, ensure_ascii=False)) errtoken = token ok, resp, token = api_call.call_api("POST",base_url = base_url, endpoint="/ucet/", client_id="01", token=errtoken, refresh_token=refresh_token, json=payload) if ok: print(f'\nUcet pridan OK-------\n{resp}\n') #ucislo = resp # pro dalsi testy (radeji vezmes z dumpu else: print(f'\nAdd ucet fail') sys.exit(1) # ----------------------------------------------------- # vypis cislel vsech uctu ok, resp, token = api_call.call_api( "GET", base_url, "/ucty/", client_id=client_id, token=token, refresh_token=refresh_token, params={"id_kas": id_kas, "closed": "true", } ) if not ok: sys.exit("Nelze načíst účty") # resp je rovnou list dict → Ucet ucty = resp["ucty"] print(ucty ) stul = ucty[-1]["stul"] print(stul) sys.exit(0) # ----------------------------------------------------- # nacte zpet ucet z databaze na serveru dle cisla uctu, i uzavrene print(f"\nbude se nacitat ucet s cislem stolu {stul}\n") ok, resp, token = api_call.call_api("GET", base_url = base_url, endpoint="/ucet/", client_id=client_id, token=token, refresh_token=refresh_token, params={"stul": stul, "block": True}) if ok: print(f'\nNacteni uctu (zablokovaneho) z DB zpet OK--------\n{resp}\n') else: print(f'Nacteni uctu selhalo') sys.exit(1) ucet2 = dta.Ucet(**resp) # nacte ucet ze serveru a rozsirime o jednu polozku pro test ucet2.poloz.append( dta.UcPol(nazev="Pohar Kiwi", id_card=5, pocet=1, delitel=1, cena=139., dph='1.20', cenhlad='1')) # ----------------------------------------------------- # provede update uctu na serveru #token += "123" #simulace expirovaneho tokenu ok, resp, token = api_call.call_api("POST", base_url = base_url, endpoint="/ucet/", client_id="01", token=token, refresh_token=refresh_token, json=ucet2.model_dump()) if ok: print(f'\nUpdate uctu v DB OK-----------\n{resp}\n') else: print(f'Ucet update fail') sys.exit(1) # ----------------------------------------------------- # nacte zpet ucet z databaze na serveru dle cisla uctu, i uzavrene print(f"\nbude se nacitat ucet s cislem stolu {stul}\n") ok, resp, token = api_call.call_api("GET", base_url = base_url, endpoint="/ucet/", client_id=client_id, token=token, refresh_token=refresh_token, params={"stul": stul, "block": False}) if ok: print(f'\nNacteni uctu (zablokovaneho) z DB zpet OK--------\n{resp}\n') else: print(f'Nacteni uctu selhalo') sys.exit(1) ucet2 = dta.Ucet(**resp) # nacte ucet ze serveru a rozsirime o jednu polozku pro test ucet2.poloz.append( dta.UcPol(nazev="Pohar Kiwi", id_card=5, pocet=1, delitel=1, cena=139., dph='1.20', cenhlad='1')) ucet2.sumdph() suma_czk = ucet2.total_czk() print(f'{ucet2}\nCelkem:{suma_czk}') # ----------------------------------------------------- # provede delete uctu na serveru s refresi tokenu ok, resp, token = api_call.call_api("DELETE", base_url = base_url, endpoint="/ucet/", client_id="01", token=token, refresh_token=refresh_token,params={"stul": stul} ) if ok: print(f'\nDelete uctu v DB OK------------\n{resp}\n') else: print(f'Ucet delete fail') sys.exit(1) # ---------------------------------------------------- # zbyva dodelat testy manualniho blokovani # kooperace nekolika klientu na jedne zakazce vcetne blokovani # kooperace nekolika zakazek