Skip to content

Commit

Permalink
fix: fixed tests, and linters
Browse files Browse the repository at this point in the history
  • Loading branch information
lchen-2101 committed Feb 5, 2024
1 parent 4b22a3d commit 971e6ba
Show file tree
Hide file tree
Showing 7 changed files with 40 additions and 21 deletions.
8 changes: 4 additions & 4 deletions db_revisions/versions/329c70502325_240131_fi_history_table.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@


# revision identifiers, used by Alembic.
revision: str = '329c70502325'
down_revision: Union[str, None] = '3f893e52d05c'
revision: str = "329c70502325"
down_revision: Union[str, None] = "3f893e52d05c"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None

Expand Down Expand Up @@ -43,9 +43,9 @@ def upgrade() -> None:
sa.Column("event_time", sa.DateTime(), server_default=sa.func.now(), nullable=False),
sa.Column("modified_by", sa.String()),
sa.Column("changeset", sa.JSON),
sa.PrimaryKeyConstraint("lei", "version")
sa.PrimaryKeyConstraint("lei", "version"),
)


def downgrade() -> None:
op.drop_table("financial_institutions_history")
op.drop_table("financial_institutions_history")
6 changes: 3 additions & 3 deletions db_revisions/versions/3f893e52d05c_240130_add_version.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@


# revision identifiers, used by Alembic.
revision: str = '3f893e52d05c'
down_revision: Union[str, None] = '6826f05140cd'
revision: str = "3f893e52d05c"
down_revision: Union[str, None] = "6826f05140cd"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None

Expand All @@ -31,4 +31,4 @@ def downgrade() -> None:
op.drop_column("financial_institutions", "version")
op.drop_column("financial_institutions", "modified_by")
op.drop_column("fi_to_type_mapping", "version")
op.drop_column("fi_to_type_mapping", "modified_by")
op.drop_column("fi_to_type_mapping", "modified_by")
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,12 @@


# revision identifiers, used by Alembic.
revision: str = '8106d83ff594'
down_revision: Union[str, None] = '329c70502325'
revision: str = "8106d83ff594"
down_revision: Union[str, None] = "329c70502325"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
op.create_table(
"fi_to_type_mapping_history",
Expand All @@ -27,9 +28,9 @@ def upgrade() -> None:
sa.Column("modified_by", sa.String()),
sa.Column("event_time", sa.DateTime(), server_default=sa.func.now(), nullable=False),
sa.Column("changeset", sa.JSON),
sa.PrimaryKeyConstraint("fi_id", "type_id", "version")
sa.PrimaryKeyConstraint("fi_id", "type_id", "version"),
)


def downgrade() -> None:
op.drop_table("fi_to_type_mapping_history")
op.drop_table("fi_to_type_mapping_history")
3 changes: 2 additions & 1 deletion src/entities/models/dao.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,9 @@ class SblTypeMappingDao(Base):
lei: Mapped[str] = mapped_column("fi_id", ForeignKey("financial_institutions.lei"), primary_key=True)
type_id: Mapped[str] = mapped_column(ForeignKey("sbl_institution_type.id"), primary_key=True)
sbl_type: Mapped["SBLInstitutionTypeDao"] = relationship(lazy="selectin")
details: Mapped[str] = mapped_column()
details: Mapped[str] = mapped_column(nullable=True)
modified_by: Mapped[str] = mapped_column()

def as_db_dict(self):
data = {}
for attr, column in inspect(self.__class__).c.items():
Expand Down
4 changes: 3 additions & 1 deletion src/entities/repos/institutions_repo.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,9 @@ async def get_federal_regulators(session: AsyncSession) -> List[FederalRegulator
return await query_type(session, FederalRegulatorDao)


async def upsert_institution(session: AsyncSession, fi: FinancialInstitutionDto, user: AuthenticatedUser) -> FinancialInstitutionDao:
async def upsert_institution(
session: AsyncSession, fi: FinancialInstitutionDto, user: AuthenticatedUser
) -> FinancialInstitutionDao:
async with session.begin():
fi_data = fi.__dict__.copy()
fi_data.pop("_sa_instance_state", None)
Expand Down
4 changes: 3 additions & 1 deletion tests/api/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ def auth_mock(mocker: MockerFixture) -> Mock:
@pytest.fixture
def authed_user_mock(auth_mock: Mock) -> Mock:
claims = {
"id": "test_user_id",
"name": "test",
"preferred_username": "test_user",
"email": "[email protected]",
Expand All @@ -56,7 +57,7 @@ def unauthed_user_mock(auth_mock: Mock) -> Mock:


@pytest.fixture
def get_institutions_mock(mocker: MockerFixture) -> Mock:
def get_institutions_mock(mocker: MockerFixture, authed_user_mock: Mock) -> Mock:
mock = mocker.patch("entities.repos.institutions_repo.get_institutions")
mock.return_value = [
FinancialInstitutionDao(
Expand All @@ -83,6 +84,7 @@ def get_institutions_mock(mocker: MockerFixture) -> Mock:
top_holder_lei="TOPHOLDERLEI123",
top_holder_legal_name="TOP HOLDER LEI 123",
top_holder_rssd_id=123456,
modified_by="test_user_id",
)
]
return mock
27 changes: 20 additions & 7 deletions tests/entities/repos/test_institutions_repo.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,12 @@
SblTypeAssociationDto,
)
from entities.repos import institutions_repo as repo
from regtech_api_commons.models import AuthenticatedUser


class TestInstitutionsRepo:
auth_user: AuthenticatedUser = AuthenticatedUser.from_claim({"id": "test_user_id"})

@pytest.fixture(scope="function", autouse=True)
async def setup(
self,
Expand Down Expand Up @@ -55,7 +58,7 @@ async def setup(
rssd_id=1234,
primary_federal_regulator_id="FRI1",
hmda_institution_type_id="HIT1",
sbl_institution_types=[SblTypeMappingDao(sbl_type=sbl_it_dao_sit1)],
sbl_institution_types=[SblTypeMappingDao(sbl_type=sbl_it_dao_sit1, modified_by="test_user_id")],
hq_address_street_1="Test Address Street 1",
hq_address_street_2="",
hq_address_city="Test City 1",
Expand All @@ -67,6 +70,7 @@ async def setup(
top_holder_lei="TOPHOLDERLEI123",
top_holder_legal_name="TOP HOLDER LEI 123",
top_holder_rssd_id=123456,
modified_by="test_user_id",
),
FinancialInstitutionDao(
name="Test Bank 456",
Expand All @@ -77,7 +81,7 @@ async def setup(
rssd_id=4321,
primary_federal_regulator_id="FRI2",
hmda_institution_type_id="HIT2",
sbl_institution_types=[SblTypeMappingDao(sbl_type=sbl_it_dao_sit2)],
sbl_institution_types=[SblTypeMappingDao(sbl_type=sbl_it_dao_sit2, modified_by="test_user_id")],
hq_address_street_1="Test Address Street 2",
hq_address_street_2="",
hq_address_city="Test City 2",
Expand All @@ -89,6 +93,7 @@ async def setup(
top_holder_lei="TOPHOLDERLEI456",
top_holder_legal_name="TOP HOLDER LEI 456",
top_holder_rssd_id=654321,
modified_by="test_user_id",
),
FinancialInstitutionDao(
name="Test Sub Bank 456",
Expand All @@ -99,7 +104,9 @@ async def setup(
rssd_id=2134,
primary_federal_regulator_id="FRI3",
hmda_institution_type_id="HIT3",
sbl_institution_types=[SblTypeMappingDao(sbl_type=sbl_it_dao_sit3, details="test")],
sbl_institution_types=[
SblTypeMappingDao(sbl_type=sbl_it_dao_sit3, modified_by="test_user_id", details="test")
],
hq_address_street_1="Test Address Street 3",
hq_address_street_2="",
hq_address_city="Test City 3",
Expand All @@ -111,6 +118,7 @@ async def setup(
top_holder_lei="TOPHOLDERLEI456",
top_holder_legal_name="TOP HOLDER LEI SUB BANK 456",
top_holder_rssd_id=321654,
modified_by="test_user_id",
),
)

Expand Down Expand Up @@ -213,7 +221,9 @@ async def test_add_institution(self, transaction_session: AsyncSession):
top_holder_lei="TOPHOLDERNEWBANKLEI123",
top_holder_legal_name="TOP HOLDER NEW BANK LEI 123",
top_holder_rssd_id=876543,
modified_by="test_user_id",
),
self.auth_user,
)
assert db_fi.domains == []
res = await repo.get_institutions(transaction_session)
Expand All @@ -227,7 +237,7 @@ async def test_add_institution_only_required_fields(
):
await repo.upsert_institution(
transaction_session,
FinancialInstitutionDao(
FinancialInstitutionDto(
name="Minimal Bank 123",
lei="MINBANK123",
is_active=True,
Expand All @@ -236,6 +246,7 @@ async def test_add_institution_only_required_fields(
hq_address_state_code="FL",
hq_address_zip="22222",
),
self.auth_user,
)
res = await repo.get_institution(query_session, "MINBANK123")
assert res is not None
Expand All @@ -247,19 +258,20 @@ async def test_add_institution_missing_required_fields(
with pytest.raises(Exception) as e:
await repo.upsert_institution(
transaction_session,
FinancialInstitutionDao(
FinancialInstitutionDto(
name="Minimal Bank 123",
lei="MINBANK123",
),
self.auth_user,
)
assert "not null constraint failed" in str(e.value).lower()
assert "field required" in str(e.value).lower()
res = await repo.get_institution(query_session, "MINBANK123")
assert res is None

async def test_update_institution(self, transaction_session: AsyncSession):
await repo.upsert_institution(
transaction_session,
FinancialInstitutionDao(
FinancialInstitutionDto(
name="Test Bank 234",
lei="TESTBANK123",
is_active=True,
Expand All @@ -268,6 +280,7 @@ async def test_update_institution(self, transaction_session: AsyncSession):
hq_address_state_code="GA",
hq_address_zip="00000",
),
self.auth_user,
)
res = await repo.get_institutions(transaction_session)
assert len(res) == 3
Expand Down

0 comments on commit 971e6ba

Please sign in to comment.