Skip to content

feat: #1538 store audit records tests #1605

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 84 commits into from
Oct 2, 2024
Merged
Show file tree
Hide file tree
Changes from 78 commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
ddfdea7
feat: create audit permission and code tables
craigyu Aug 29, 2024
4d02cb6
fix: grant permissions
craigyu Aug 29, 2024
e1bbb00
Merge branch 'main' into feat/1536-create-the-new-audit-tables
craigyu Aug 30, 2024
a979679
fix: Merge branch 'main' into feat/1537-create-an-api-to-return-audit…
craigyu Sep 5, 2024
b4e1904
feat: add new models def
craigyu Sep 5, 2024
68eae76
fix: depreciated utcnow
craigyu Sep 5, 2024
61a02b4
Merge branch 'main' into feat/1537-create-an-api-to-return-audit-info…
craigyu Sep 6, 2024
633b4e2
feat: add schemas
craigyu Sep 6, 2024
b1554d5
fix: magic number
craigyu Sep 6, 2024
89e1e55
fix: model relationship
craigyu Sep 6, 2024
9116670
fix: remove district related code
craigyu Sep 10, 2024
7117ecd
use JSONB
craigyu Sep 10, 2024
fa22fd5
fix: use enum
craigyu Sep 10, 2024
115af42
fix: table args
craigyu Sep 10, 2024
d4077f0
fix: mapped columns
craigyu Sep 10, 2024
4d17a31
fix: naming and comments
craigyu Sep 10, 2024
47df43e
fix: file name
craigyu Sep 10, 2024
c91098d
fix: endpoint template
craigyu Sep 10, 2024
1a06216
fix: stash changes
craigyu Sep 10, 2024
8c84367
feat: endpoint complete
craigyu Sep 11, 2024
298472d
fix: add tests
craigyu Sep 11, 2024
8bd2270
fix: datetime
craigyu Sep 11, 2024
9bd001a
fix: test data
craigyu Sep 11, 2024
72dfa31
fix: tests and fixture
craigyu Sep 11, 2024
21d9854
fix: test
craigyu Sep 11, 2024
357023d
fix: router tests
craigyu Sep 11, 2024
b02300d
fix: tests
craigyu Sep 11, 2024
d6ce4a6
fix: tests
craigyu Sep 11, 2024
131279c
fix: tests
craigyu Sep 12, 2024
95e6830
feat: client-code-gen
craigyu Sep 12, 2024
9025a75
Revert "feat: client-code-gen"
craigyu Sep 12, 2024
999b602
feat: client-code-gen
craigyu Sep 12, 2024
7a8741c
fix: frontend schema update
craigyu Sep 12, 2024
78404e1
fix: dependency location
craigyu Sep 13, 2024
fbecc2d
fix: remove unused import
craigyu Sep 13, 2024
c3ce32c
fix: simplify comment and use model_config
craigyu Sep 13, 2024
1b63d6a
Merge branch 'main' into feat/1537-create-an-api-to-return-audit-info…
craigyu Sep 13, 2024
464adbf
Temp permission_audit service and repository
ianliuwk1019 Sep 15, 2024
283396d
Merge branch 'main' into feat/1538-store-audit-records
ianliuwk1019 Sep 15, 2024
5e18d36
Refactor forest_client.py to forest_client_integration.py
ianliuwk1019 Sep 16, 2024
db4a467
Refactor forest_client_integration.py file directory path
ianliuwk1019 Sep 16, 2024
6c51f9d
Rename schema for FamUserRoleAssignmentCreate
ianliuwk1019 Sep 16, 2024
dc3378f
Fixed import path
ianliuwk1019 Sep 16, 2024
91e45ae
system username constant
ianliuwk1019 Sep 16, 2024
65b03cc
PermissionAduitHistory schema refactoring.
ianliuwk1019 Sep 16, 2024
6e3f985
Minor refactoring.
ianliuwk1019 Sep 16, 2024
550abaf
Some fixing on forest client tests due to refactoring.
ianliuwk1019 Sep 16, 2024
7f9f3ee
Add forest_client and name to new_user_role_assginment_res.
ianliuwk1019 Sep 16, 2024
657378f
Change crud create_user_role_assignment_many requster from cognito_us…
ianliuwk1019 Sep 17, 2024
ed7566f
Add PrivilegeChangeTypeEnum constant.
ianliuwk1019 Sep 18, 2024
4823b8c
Add creating audit log record for assign user role.
ianliuwk1019 Sep 18, 2024
b4dd70f
Fix typo
ianliuwk1019 Sep 18, 2024
1fc407f
Adjust name alias
ianliuwk1019 Sep 18, 2024
7fdede7
Remove Field(alias="user_name")
ianliuwk1019 Sep 18, 2024
33ee92e
Minor refactor
ianliuwk1019 Sep 18, 2024
b9a2f36
Save audit when revoked_permission_role
ianliuwk1019 Sep 18, 2024
a33c26c
Minore refactoring
ianliuwk1019 Sep 18, 2024
088b75a
Regenerate api-client
ianliuwk1019 Sep 18, 2024
698e250
Fix forest client number not showing.
ianliuwk1019 Sep 18, 2024
4fde945
Adjust comment
ianliuwk1019 Sep 18, 2024
fc212d2
Remove unnecessary return
ianliuwk1019 Sep 19, 2024
439159a
Re order imports.
ianliuwk1019 Sep 19, 2024
a3856ac
adjust PrivilegeDetailsScope logic
ianliuwk1019 Sep 19, 2024
67049e6
regen api-client
ianliuwk1019 Sep 19, 2024
72808a8
Fix enum type PrivilegeDetailsScopeTypeEnum
ianliuwk1019 Sep 19, 2024
1e8caf0
Fix forest client value missing due to key change.
ianliuwk1019 Sep 19, 2024
b9b6395
Remove none attribute from role.scopes.
ianliuwk1019 Sep 19, 2024
65b30cf
Fix typo
ianliuwk1019 Sep 19, 2024
2fd847f
Temp adding test.
ianliuwk1019 Sep 20, 2024
f0235a0
add test for 'test_audit_history_end_user_role_scopes'
ianliuwk1019 Sep 23, 2024
ec3cfc3
rename tests
ianliuwk1019 Sep 23, 2024
e08d379
Merge branch 'main' into feat/1538-store-audit-records-tests
ianliuwk1019 Sep 23, 2024
3035399
Add revoke test
ianliuwk1019 Sep 24, 2024
110868c
Add missing f for f string log.
ianliuwk1019 Sep 24, 2024
37b269c
Add revoke test for scoped role
ianliuwk1019 Sep 24, 2024
32638fb
Add test for forest client exception when saving audit.
ianliuwk1019 Sep 24, 2024
062fe61
Add test when no permission granted successfully
ianliuwk1019 Sep 24, 2024
642cbf8
Add verify audit creation for user role assignment tests
ianliuwk1019 Sep 24, 2024
7c98719
Adjust import
ianliuwk1019 Sep 24, 2024
e0e8f03
Fix import
ianliuwk1019 Sep 24, 2024
357961a
Move 'mock_forest_client' fixture into conftest so it can be shared t…
ianliuwk1019 Sep 24, 2024
1ec660d
Add None return
ianliuwk1019 Sep 24, 2024
34d77cc
Move a mock to a constant
ianliuwk1019 Oct 2, 2024
cfaddb9
Merge branch 'main' into feat/1538-store-audit-records-tests
ianliuwk1019 Oct 2, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ def to_enduser_privliege_revoked_details(
error_msg = (
"Revoke user permission encountered problem."
+ f"Unknown forest client number {forest_client_number} for "
+ "scoped permission {revoked_permission_role.role_name}."
+ f"scoped permission {revoked_permission_role.role_name}."
)
LOGGER.debug(error_msg)
raise HTTPException(
Expand Down
67 changes: 54 additions & 13 deletions server/backend/testspg/conftest.py
Original file line number Diff line number Diff line change
@@ -1,37 +1,35 @@
import logging
import os
import sys
from typing import List
from typing import List, Optional

import jwt
import pytest
import starlette
import testcontainers.compose
from api.app.models.model import FamUser
from api.app.schemas.fam_user import FamUserSchema
from Crypto.PublicKey import RSA
from fastapi.testclient import TestClient
from mock_alchemy.mocking import UnifiedAlchemyMagicMock
from sqlalchemy import create_engine
from sqlalchemy.orm import Session, sessionmaker

sys.path.append(os.path.join(os.path.dirname(__file__), ".."))

import api.app.database as database
import api.app.jwt_validation as jwt_validation
import testspg.jwt_utils as jwt_utils
from api.app.constants import COGNITO_USERNAME_KEY, ERROR_CODE_TERMS_CONDITIONS_REQUIRED
from api.app.crud import crud_utils
from api.app.constants import (COGNITO_USERNAME_KEY,
ERROR_CODE_TERMS_CONDITIONS_REQUIRED, UserType)
from api.app.crud import crud_user, crud_utils
from api.app.main import apiPrefix, app
from api.app.routers.router_guards import (
enforce_bceid_terms_conditions_guard,
get_current_requester,
get_verified_target_user,
)
enforce_bceid_terms_conditions_guard, get_current_requester,
get_verified_target_user)
from api.app.schemas import RequesterSchema, TargetUserSchema
from testspg.constants import (
ACCESS_GRANT_FOM_DEV_CR_IDIR,
FOM_DEV_ADMIN_ROLE,
FOM_TEST_ADMIN_ROLE,
)
from testspg.constants import (ACCESS_GRANT_FOM_DEV_CR_IDIR,
FOM_DEV_ADMIN_ROLE, FOM_TEST_ADMIN_ROLE,
TEST_CREATOR)

LOGGER = logging.getLogger(__name__)
# the folder contains test docker-compose.yml, ours in the root directory
Expand Down Expand Up @@ -266,3 +264,46 @@ def auth_headers(test_rsa_key):
token = jwt_utils.create_jwt_token(test_rsa_key)
headers = jwt_utils.headers(token)
return headers


@pytest.fixture(scope="function")
def setup_new_user(db_pg_session: Session):
"""
New user setup for testing.
The fixture returns a function to be called with new user created based on
user_type, user_name and optionally if need to add cognito_user_id.
"""

def _setup_new_user(
user_type: UserType, user_name, user_guid, cognito_user_id: Optional[str] = None
) -> FamUser:
new_user_create = FamUserSchema(
**{
"user_type_code": user_type,
"user_name": user_name,
"user_guid": user_guid,
"create_user": TEST_CREATOR,
"first_name": "Fist",
"last_name": "Last",
"email": "test@test.com"
}
)

fam_user = crud_user.create_user(new_user_create, db_pg_session)
if cognito_user_id is not None:
# SqlAlchemy is a bit strange, need to use `.query()` to do the
# update() and query() again in order to get correct updated entity
# from session.
db_pg_session.query(FamUser).filter(
FamUser.user_id == fam_user.user_id
).update({FamUser.cognito_user_id: cognito_user_id})

fam_user = (
db_pg_session.query(FamUser)
.filter(FamUser.user_id == fam_user.user_id)
.one()
)

return fam_user

return _setup_new_user
12 changes: 12 additions & 0 deletions server/backend/testspg/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,18 @@
TEST_USER_ID = 1
TEST_USER_NAME_IDIR = "TEST_USER"
TEST_USER_GUID_IDIR = "MOCKEDGUID5D4ACA9FA901EE2C91CB3B" # this is a faked user guid
TEST_USER_FIREST_NAME = "FIRST NAME"
TEST_USER_LAST_NAME = "LAST NAME"
TEST_USER_EMAIL = "EMAIL"
TEST_REQUESTER = {
"cognito_user_id": "test-idir_e72a12c916afakedffae7@idir",
"user_name": TEST_USER_NAME_IDIR,
"user_guid": TEST_USER_GUID_IDIR,
"user_id": TEST_USER_ID,
"first_name": TEST_USER_FIREST_NAME,
"last_name": TEST_USER_LAST_NAME,
"email": TEST_USER_EMAIL,
}

TEST_NOT_EXIST_USER_TYPE = "NS"

Expand Down
Loading
Loading