"""기계 = 기계경비 기초 로직 줄(PLAN 778-2 · 분석 621-B 4-2) — SK 더한줄 `{종류: 로직, 로직: 기계경비 기초, 입력값: {기계: 기계 번호}}` 셈 됨 · 고르기 목록 밖 기계 = 서버 둘째 요청 · 지은 문맥 밖 스레드에도 셈 됨(마스터를 셈에 넘김). master 읽기만. 옛 못옮김 잇기(`SkPatch._Plan.link`)는 785-7 에서 지움. """ import threading from M01_MasterData import M01_MasterData_Store as m01 from M02_MasterTemplete import M02_Hopyo_Units as units from M02_MasterTemplete import M02_Sangeun_Calc as calc from M02_MasterTemplete import M02_Sangeun_Router as sangeun_router from resources.tester.test_m02_hopyo_excel import client # noqa: F401 def test_목록_밖_기계_서버_둘째_요청에도_셈(client): # noqa: F811 m01.loaded() # 마스터 = 이 스레드에서 지음 · 요청 = 다른 스레드(문맥 안 따라감) client.app.include_router(sangeun_router.router) one = {"종류": "로직", "로직": "GC000268", "입력값": {units.MACH_IN: "0211-0060"}, "이름": "굴착기(타이어) 0.6㎥", "단위": "시간", "수량": 1} # fmt: skip doc = {"키": "SK-000000", "이름": "t", "단위": "시간", "바탕": None, "입력값": {}, "덮개": {}, "뺀줄": [], "자재표시": {}, "더한줄": [one]} # fmt: skip for _ in range(2): got = client.post("/api/m02/layers/personal/sangeun/calc", json={"문서": doc}) assert got.status_code == 200, got.text assert got.json()["기준"]["경비"] == 27120, got.json().get("까닭") whole, out = m01.loaded()[1], {} # 지은 문맥 밖 스레드(서버 요청 스레드 풀과 같음) run = threading.Thread(target=lambda: out.update(calc.run(doc, whole))) run.start() run.join() assert out["기준"] and float(out["기준"]["경비"]) == 27120, out.get("까닭")