| from fastapi.testclient import TestClient |
| from app.main import app |
| from importlib import import_module |
| from app.core.database import Base, engine |
|
|
| |
| for mod in ['app.api.auth','app.api.candidates','app.api.matching']: |
| m = import_module(mod) |
| try: |
| app.include_router(m.router) |
| except Exception as e: |
| print('include router failed', mod, e) |
|
|
| |
| Base.metadata.drop_all(bind=engine) |
| Base.metadata.create_all(bind=engine) |
|
|
| client = TestClient(app) |
|
|
| |
| reg_c = client.post('/api/auth/register', json={ |
| 'email':'cand1@example.com', |
| 'password':'password123', |
| 'full_name':'Cand One', |
| 'role':'candidate' |
| }) |
| print('reg candidate', reg_c.status_code) |
| print(reg_c.text[:200]) |
| login_c = client.post('/api/auth/login', json={'email':'cand1@example.com','password':'password123'}) |
| print('login candidate', login_c.status_code) |
| print(login_c.text[:200]) |
| c_token = login_c.json().get('access_token') |
|
|
| |
| create_resp = client.post('/api/candidates/', json={'full_name':'Cand One','email':'cand1@example.com','raw_text':'This is my CV text'}, headers={'Authorization':f'Bearer {c_token}'}) |
| print('create candidate profile', create_resp.status_code) |
| print(create_resp.text[:400]) |
|
|
| |
| reg_r = client.post('/api/auth/register', json={'email':'rec1@example.com','password':'password123','full_name':'Recruiter One','role':'recruiter'}) |
| print('reg recruiter', reg_r.status_code) |
| print(reg_r.text[:200]) |
| login_r = client.post('/api/auth/login', json={'email':'rec1@example.com','password':'password123'}) |
| print('login recruiter', login_r.status_code) |
| print(login_r.text[:200]) |
| r_token = login_r.json().get('access_token') |
|
|
| |
| resp = client.get('/api/candidates/', headers={'Authorization':f'Bearer {r_token}'}) |
| print('get candidates', resp.status_code) |
| print(resp.text[:1000]) |
|
|