TIF_E41253310/scripts/tests/test_2024_full_import.py

36 lines
1.4 KiB
Python

import sys
sys.path.append('Backend')
from app.config.database import SessionLocal, engine
from app.services.import_service import import_data
from sqlalchemy import text
# Truncate tables before test to ensure clean test
with engine.connect() as conn:
conn.execute(text("SET FOREIGN_KEY_CHECKS = 0;"))
for tbl in ['tracer_responses', 'pekerjaan', 'kompetensi', 'alumni']:
conn.execute(text(f"TRUNCATE TABLE {tbl};"))
conn.execute(text("SET FOREIGN_KEY_CHECKS = 1;"))
conn.commit()
with open('Data_Tracerstudy/Data_2024_Tracer_study.csv', 'rb') as f:
content = f.read()
db = SessionLocal()
try:
res = import_data('2024', content, 'Data_2024_Tracer_study.csv', db)
print("Import result:", res)
finally:
db.close()
# Verify counts in DB
with engine.connect() as conn:
print("\nDatabase verification after 2024 import:")
for tbl in ['alumni', 'tracer_responses', 'pekerjaan', 'kompetensi']:
cnt = conn.execute(text(f"SELECT COUNT(*) FROM {tbl};")).scalar()
print(f" {tbl}: {cnt} rows")
# Sample a row from tracer_responses
sample = conn.execute(text("SELECT alumni_id, kode_pt, status_saat_ini, provinsi_kerja, kab_kota_kerja, jenis_perusahaan_full, nama_perusahaan, etika_lulus_full, teknologi_informasi_lulus_full, tanggal_masuk_studi, metode_perkuliahan, cari_iklan, jumlah_perusahaan_dilamar FROM tracer_responses LIMIT 1;")).fetchone()
print("\nSample tracer_response row:")
print(sample)