mirror of
https://gitlab.cern.ch/wotsubo/PSBoardDataBase.git
synced 2025-07-02 01:29:25 +09:00
90 lines
3.4 KiB
Julia
90 lines
3.4 KiB
Julia
using Test
|
|
using PSBoardDataBase
|
|
using CSV, DataFrames
|
|
using Dates
|
|
|
|
true || include("../src/PSBoardDataBase.jl")
|
|
|
|
@testset "PSBoardDataBase" begin
|
|
@testset "types" begin
|
|
@testset "StructTypes and Strapping" begin
|
|
using Strapping
|
|
|
|
@info "" Strapping.construct(
|
|
Vector{PSBoardDataBase.PsBoard},
|
|
(id = [123, 10], daughterboard_id = [nothing, 12345]),
|
|
)
|
|
@test Strapping.construct(
|
|
PSBoardDataBase.PsBoard,
|
|
(id = [123], daughterboard_id = [nothing]),
|
|
) == PSBoardDataBase.PsBoard(123, nothing)
|
|
|
|
@test Strapping.construct(
|
|
Vector{PSBoardDataBase.PsBoard},
|
|
[(100, nothing), (200, 12345)],
|
|
) == PSBoardDataBase.PsBoard[
|
|
PSBoardDataBase.PsBoard(100, nothing),
|
|
PSBoardDataBase.PsBoard(200, 12345),
|
|
]
|
|
end
|
|
end
|
|
|
|
@testset "parse master log" begin
|
|
masterlog_metadata::PSBoardDataBase.QaqcMasterLog.QaqcMasterLogMetadata =
|
|
PSBoardDataBase.QaqcMasterLog.parse_master_log("input/log/57_long.log")
|
|
@test masterlog_metadata.shifters == "Otsubo"
|
|
@test masterlog_metadata.timestamp == DateTime(2024, 07, 26, 10, 33, 05)
|
|
@test masterlog_metadata.runid == 57
|
|
@test masterlog_metadata.shiftscript_version == v"1.0.2"
|
|
end
|
|
|
|
@testset "prepare dataframe" begin
|
|
single_result_df =
|
|
CSV.read("input/PS board QAQC Data Base - 本番1回試験・追加検証試験.csv", DataFrame)
|
|
@test PSBoardDataBase.prepare_single_result_df(single_result_df) isa DataFrame
|
|
|
|
@test PSBoardDataBase.prepare_dispatch_table(
|
|
CSV.read("input/PS board QAQC Data Base - 出荷.csv", DataFrame),
|
|
) isa DataFrame
|
|
|
|
@test PSBoardDataBase.prepare_100test_table(
|
|
CSV.read("input/PS board QAQC Data Base - 100回試験結果.csv", DataFrame),
|
|
) isa DataFrame
|
|
end
|
|
|
|
@testset "full integrated test" begin
|
|
dbpath = tempname()
|
|
db = PSBoardDataBase.create_database(dbpath)
|
|
@info "" db
|
|
|
|
@test PSBoardDataBase.insert_qaqc_campaign_id(db) |> isnothing
|
|
@test PSBoardDataBase.insert_qaqc_positions(db) |> isnothing
|
|
|
|
single_result_df =
|
|
CSV.read("input/PS board QAQC Data Base - 本番1回試験・追加検証試験.csv", DataFrame)
|
|
runlist_table = CSV.read("input/PS board QAQC Data Base - RUNLIST.csv", DataFrame)
|
|
|
|
@test PSBoardDataBase.add_psboard_ids(db, single_result_df) |> isnothing
|
|
@test PSBoardDataBase.add_qaqc_runlist_from_runlist(db, runlist_table) |> isnothing
|
|
|
|
@test PSBoardDataBase.add_qaqc_single_result(db, single_result_df, runlist_table) |>
|
|
isnothing
|
|
|
|
dispatch_table = CSV.read("input/PS board QAQC Data Base - 出荷.csv", DataFrame)
|
|
|
|
@test PSBoardDataBase.add_qaqc_dispatch(db, dispatch_table) |> isnothing
|
|
|
|
if haskey(ENV, "LOCAL_TEST")
|
|
@test PSBoardDataBase.add_qaqc_runlist_from_masterlogs(db, "input/log/") |>
|
|
isnothing
|
|
|
|
extra_100test_result_df =
|
|
CSV.read("input/PS board QAQC Data Base - 100回試験結果.csv", DataFrame)
|
|
|
|
@test PSBoardDataBase.add_qaqc_100test_result(db, extra_100test_result_df) |>
|
|
isnothing
|
|
|
|
run(`sqlitebrowser $dbpath`)
|
|
end
|
|
end
|
|
end
|