File size: 5,738 Bytes
ef1ad9e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import pytest
from app.config.env import env
from app.main import app
from app.models import Base
from app.utils.database import get_db
from fastapi.testclient import TestClient
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

# SQLite database URL for testing
DATABASE_CONNECTION_URI = env.DB_URI

engine = create_engine(DATABASE_CONNECTION_URI)
Base.metadata.create_all(engine)
TestingSessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)


# Generating db_session
@pytest.fixture(scope="function")
def db_session():
    """Create a new database session with a rollback at the end of the test."""
    connection = engine.connect()
    transaction = connection.begin()
    session = TestingSessionLocal(bind=connection)
    yield session
    session.close()
    transaction.rollback()
    connection.close()


# Create a test client
@pytest.fixture(scope="function")
def test_client(db_session):
    """Create a test client that uses the override_get_db fixture to return a session."""

    def override_get_db():
        try:
            yield db_session
        finally:
            db_session.close()

    app.dependency_overrides[get_db] = override_get_db
    with TestClient(app) as test_client:
        yield test_client


# Consumer headers
# token valid till 19-oct-2024 (monthly expiry)
@pytest.fixture(scope="function")
def consumer_header():
    consumer_token = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Im9QXzF3UzN2LXlHUFI1NzhaZ2wyUyJ9.eyJ1c2VyX2VtYWlsIjoibWlyYV90ZXN0dEB5b3BtYWlsLmNvbSIsImZpcnN0X25hbWUiOiJNaXJhIiwibGFzdF9uYW1lIjoiTWlyYSIsInVzZXJfaWQiOjQyNSwidXNlcl9waG9uZV9udW1iZXIiOiI3ODc4Nzg4Nzc4IiwiZW1haWxfdmVyaWZpZWQiOjEsInJvbGUiOiJjb25zdW1lciIsImdvb2dsZVVzZXJJZCI6ImF1dGgwfDQyNSIsIm5ld191c2VyIjowLCJ1c2VyX3Byb2ZpbGVfZXhpc3RzIjoxLCJwZW5kaW5nX2FwcGxpY2F0aW9uX2lkIjowLCJpc3MiOiJodHRwczovL21pcmFsYWJzYWkudXMuYXV0aDAuY29tLyIsInN1YiI6ImF1dGgwfDQyNSIsImF1ZCI6WyJBdXRoMCBVc2VyIEFwaSIsImh0dHBzOi8vbWlyYWxhYnNhaS51cy5hdXRoMC5jb20vdXNlcmluZm8iXSwiaWF0IjoxNzI2NzQ5NTIxLCJleHAiOjE3MjkzNDE1MjEsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwiLCJhenAiOiI3WHg2Q1RUbGtJcm5PYTNwUkJ4ZUkwRzAwVGhoVDlDZCIsInBlcm1pc3Npb25zIjpbImNyZWF0ZTpsb2FuIiwidXBkYXRlOmxvYW4iXX0.GPoJQDr2MXpU3aZ9pc6H7F6rHtvS4SYRQV6sX0RAUOYoTcevyENHyzdN48D_Bbzy78p3oE-e2BEU8tudvufiWDsaZcuHMYtpiO0miKoQaUaRxD9caSpHG1FQHM37y6MzjuL921o_nNWaav4P0hOVCX-yy-e_VprZik8t6h7yQPkVsJEAOyVnnoRGXa1ZhpuWG1otgSk-ztG4MJmShgvUoWqoFV2TT80OEhxfGgNxS3eG-9_1FRD4CVJ4oSnMukWXZpPIb-gRZbbrvk78JkpSGPnxg4sjwhlNPFpuPcjdijGcUOHRxd7cSbQgJyokmmZWlWNS12ynbXoL2-L9VEnHcg"
    headers = {"Authorization": f"Bearer {consumer_token}"}
    return headers


# Loan officer headers
# token valid till 19-oct-2024 (monthly expiry)
@pytest.fixture(scope="function")
def loan_officer_header():
    loan_officer_token = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Im9QXzF3UzN2LXlHUFI1NzhaZ2wyUyJ9.eyJ1c2VyX2VtYWlsIjoibmF2YWxAbWlyYWxhYnMuYWkiLCJmaXJzdF9uYW1lIjoiTmF2YWwiLCJsYXN0X25hbWUiOiJWZXJtYSIsInVzZXJfaWQiOjM2MSwidXNlcl9waG9uZV9udW1iZXIiOiI4OTg5ODk4OTg5IiwiZW1haWxfdmVyaWZpZWQiOjEsInJvbGUiOiJsb2FuX29mZmljZXIiLCJnb29nbGVVc2VySWQiOiJhdXRoMHwzNjEiLCJuZXdfdXNlciI6MCwidXNlcl9wcm9maWxlX2V4aXN0cyI6MCwicGVuZGluZ19hcHBsaWNhdGlvbl9pZCI6MCwiaXNzIjoiaHR0cHM6Ly9taXJhbGFic2FpLnVzLmF1dGgwLmNvbS8iLCJzdWIiOiJhdXRoMHwzNjEiLCJhdWQiOlsiQXV0aDAgVXNlciBBcGkiLCJodHRwczovL21pcmFsYWJzYWkudXMuYXV0aDAuY29tL3VzZXJpbmZvIl0sImlhdCI6MTcyNjc0OTM4MiwiZXhwIjoxNzI5MzQxMzgyLCJzY29wZSI6Im9wZW5pZCBwcm9maWxlIGVtYWlsIiwiYXpwIjoidGRVM2pIenhWTWNjWWZsQU5PVW1rcnNjOWU5RDEzdTMiLCJwZXJtaXNzaW9ucyI6WyJjcmVhdGU6bG9hbiIsImdldDpsZWFkIiwidXBkYXRlOmxvYW4iXX0.ac_-0ZFrDqQzCb1iXtSYmucDCgzXLbf6IfealhnMon-oz_qb_v3eF0cTT3aemR9sCJn0jeAWG5k9QPsN2uhOy04mtBBbITRZS-nem2WzC1f3TaAMFrcmR313Bsf7FVLa2wYPYlx-LOl3VtyjsCNPeV11C_RPpzHE4gbqU5TkR0C8bpaogJZIZfqcWrPbm13m_ex1bc8nwQxQmUW24y-gq8ChRVIhmjZOXw8AVvuWcC4-6fGR-AmridTWc1zceRxczcL0uhv-vdBKJuy1Lbu0LjrLvVlQ3KWEKlxpBD0zmNLsdmMKKTj2Sqw_gcP1SjBLylsXfpRjNdn3TNZEEOCjcA"
    headers = {"Authorization": f"Bearer {loan_officer_token}"}
    return headers


# Loan officer admin headers
# token valid till 19-oct-2024 (monthly expiry)
@pytest.fixture(scope="function")
def loan_officer_admin_header():
    loan_officer_admin_token = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Im9QXzF3UzN2LXlHUFI1NzhaZ2wyUyJ9.eyJ1c2VyX2VtYWlsIjoibmF2YWwudmVybWFAdGVjaGRvbWUubmV0LmluIiwiZmlyc3RfbmFtZSI6Ik5hdmFsIiwibGFzdF9uYW1lIjoiU2luZ2giLCJ1c2VyX2lkIjoxMjIyLCJ1c2VyX3Bob25lX251bWJlciI6Ijk5ODg2NjU1NzciLCJlbWFpbF92ZXJpZmllZCI6MSwicm9sZSI6ImxvYW5fb2ZmaWNlcl9hZG1pbiIsImdvb2dsZVVzZXJJZCI6ImF1dGgwfDEyMjIiLCJuZXdfdXNlciI6MCwidXNlcl9wcm9maWxlX2V4aXN0cyI6MCwicGVuZGluZ19hcHBsaWNhdGlvbl9pZCI6MCwiaXNzIjoiaHR0cHM6Ly9taXJhbGFic2FpLnVzLmF1dGgwLmNvbS8iLCJzdWIiOiJhdXRoMHwxMjIyIiwiYXVkIjpbIkF1dGgwIFVzZXIgQXBpIiwiaHR0cHM6Ly9taXJhbGFic2FpLnVzLmF1dGgwLmNvbS91c2VyaW5mbyJdLCJpYXQiOjE3MjY3NDk0NDUsImV4cCI6MTcyOTM0MTQ0NSwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBlbWFpbCIsImF6cCI6InRkVTNqSHp4Vk1jY1lmbEFOT1Vta3JzYzllOUQxM3UzIiwicGVybWlzc2lvbnMiOlsiY3JlYXRlOmxvYW4iLCJnZXQ6bGVhZCIsImdldDpyZXBvcnRzIiwidXBkYXRlOmxvYW4iXX0.WAsPX3n_aCcwkHJXCOA3HUjnecqHvk-xwCILkKQ3lFjdSqCviBPMjD7_cjepQ4a2eyMl858fY5H1nYHkWvmNTRu-gWT8EC7MoxanYlvR5qTH6Qqz53_QzoU6_yWcuyOq2ACOHYhaeLgjwyxYWvNDwLVa85TQwHXfmL1vBGSblAAIPX2AFNfB2YRx0Ogjh7QJa4F25DKARIX4FeKOxN9v4vi8gm_uJOdTPjpN3SS9Iv1lyvyAOE9OVgZLVGdKI7Kx4UXlBGg0W_56JDqLVQ0Bf_-_h98ojSRW_QrVfRwbxq4ZoJ-uArWlvbxm3Psu0uAusY0hU2AwbIyHdfvxAmW2uw"
    headers = {"Authorization": f"Bearer {loan_officer_admin_token}"}
    return headers


# test application id
@pytest.fixture(scope="function")
def application_id():
    return 275


# test user id
@pytest.fixture(scope="function")
def user_id():
    return 425