Skip to content

Commit 2a4587c

Browse files
authored
Merge pull request #41 from TaskarCenterAtUW/feature-1467
Fixed Task - 1467
2 parents 67cb711 + 8853475 commit 2a4587c

16 files changed

Lines changed: 1167 additions & 227 deletions

File tree

.github/workflows/blank.yml

Lines changed: 0 additions & 36 deletions
This file was deleted.

.github/workflows/ci.yml

Lines changed: 0 additions & 36 deletions
This file was deleted.

.github/workflows/unit_tests.yml

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
name: Unit Tests
2+
on:
3+
workflow_dispatch:
4+
push:
5+
branches-ignore:
6+
- '**'
7+
pull_request:
8+
branches: [ main, develop ]
9+
10+
jobs:
11+
UnitTest:
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Checkout code
16+
uses: actions/checkout@v2
17+
18+
- name: Set up Python
19+
uses: actions/setup-python@v2
20+
with:
21+
python-version: '3.10'
22+
23+
- name: Install dependencies
24+
run: |
25+
python -m pip install --upgrade pip
26+
pip install -r requirements.txt
27+
28+
- name: Determine output folder
29+
id: set_output_folder
30+
run: |
31+
if [[ $GITHUB_EVENT_NAME == "pull_request" ]]; then
32+
branch_name=$GITHUB_BASE_REF
33+
else
34+
branch_name=$GITHUB_REF_NAME
35+
fi
36+
if [[ $branch_name == "main" ]]; then
37+
echo "output_folder=prod" >> $GITHUB_ENV
38+
elif [[ $branch_name == "stage" ]]; then
39+
echo "output_folder=stage" >> $GITHUB_ENV
40+
elif [[ $branch_name == "develop" ]]; then
41+
echo "output_folder=dev" >> $GITHUB_ENV
42+
else
43+
echo "Unknown branch: $branch_name"
44+
exit 1
45+
fi
46+
47+
- name: Run tests with coverage
48+
run: |
49+
timestamp=$(date '+%Y-%m-%d_%H-%M-%S')
50+
mkdir -p test_results
51+
log_file="test_results/${timestamp}_report.log"
52+
echo -e "\nTest Cases Report Report\n" >> $log_file
53+
# Run the tests and append output to the log file
54+
python -m coverage run --source=src/python_ms_core -m unittest discover -v tests/unit_tests >> $log_file 2>&1
55+
echo -e "\nCoverage Report\n" >> $log_file
56+
coverage report >> $log_file
57+
58+
- name: Check coverage
59+
run: |
60+
coverage report --fail-under=85
61+
62+
- name: Upload report to Azure
63+
uses: LanceMcCarthy/Action-AzureBlobUpload@v2
64+
with:
65+
source_folder: 'test_results'
66+
destination_folder: '${{ env.output_folder }}'
67+
connection_string: ${{ secrets.AZURE_STORAGE_CONNECTION_STRING }}
68+
container_name: 'python-ms-core-package'
69+
clean_destination_folder: false
70+
delete_if_exists: false
71+

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Change log
22

3+
# Version 0.0.23
4+
- Updated unit test cases pipeline
5+
- Added support to upload test cases results on Azure blob
6+
7+
38
# Version 0.0.21
49
### New Features and Enhancements
510
- **Message Lock Renewal:** Implemented a mechanism to automatically renew message locks during processing. This ensures that messages remain active and are not returned to the queue for reprocessing while they are being handled.

src/python_ms_core/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def __init__(self, config=None):
2323
if config is not None:
2424
if config.upper() == LOCAL_ENV:
2525
self.config = LocalConfig()
26-
elif config.upper() == LOCAL_ENV:
26+
elif config.upper() == AZURE_ENV:
2727
self.config = CoreConfig()
2828
self.__check_health()
2929
else:

src/python_ms_core/core/auth/models/permission_request.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def project_group_id(self):
2929

3030
@project_group_id.setter
3131
def project_group_id(self, value):
32-
self.project_group_id = value
32+
self._project_group_id = value
3333

3434
@property
3535
def permissions(self):

src/python_ms_core/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '0.0.22'
1+
__version__ = '0.0.23'

tests/unit_tests/test_auth/models/test_permission_request.py

Lines changed: 69 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,81 @@
44

55
class TestPermissionRequest(unittest.TestCase):
66

7-
def test_get_search_params(self):
8-
user_id = '123'
9-
project_group_id = '456'
10-
permissions = 'read,write'
11-
should_satisfy_all = True
7+
def setUp(self):
8+
# Sample input values for testing
9+
self.user_id = "user123"
10+
self.project_group_id = "project_group_1"
11+
self.permissions = "read,write"
12+
self.should_satisfy_all = True
1213

13-
request = PermissionRequest(user_id, project_group_id, permissions, should_satisfy_all)
14-
search_params = request.get_search_params()
14+
# Create an instance of PermissionRequest
15+
self.permission_request = PermissionRequest(
16+
user_id=self.user_id,
17+
project_group_id=self.project_group_id,
18+
permissions=self.permissions,
19+
should_satisfy_all=self.should_satisfy_all
20+
)
1521

22+
# Test initialization
23+
def test_initialization(self):
24+
self.assertEqual(self.permission_request.user_id, self.user_id)
25+
self.assertEqual(self.permission_request.project_group_id, self.project_group_id)
26+
self.assertEqual(self.permission_request.permissions, self.permissions)
27+
self.assertEqual(self.permission_request.should_satisfy_all, self.should_satisfy_all)
28+
29+
# Test getter and setter for user_id
30+
def test_user_id_property(self):
31+
new_user_id = "user456"
32+
self.permission_request.user_id = new_user_id
33+
self.assertEqual(self.permission_request.user_id, new_user_id)
34+
35+
# Test getter and setter for project_group_id
36+
def test_project_group_id_property(self):
37+
new_project_group_id = "project_group_2"
38+
self.permission_request.project_group_id = new_project_group_id
39+
self.assertEqual(self.permission_request.project_group_id, new_project_group_id)
40+
41+
# Test getter and setter for permissions
42+
def test_permissions_property(self):
43+
new_permissions = "read"
44+
self.permission_request.permissions = new_permissions
45+
self.assertEqual(self.permission_request.permissions, new_permissions)
46+
47+
# Test getter and setter for should_satisfy_all
48+
def test_should_satisfy_all_property(self):
49+
self.permission_request.should_satisfy_all = False
50+
self.assertFalse(self.permission_request.should_satisfy_all)
51+
52+
# Test get_search_params with default values and permissions
53+
def test_get_search_params_with_permissions(self):
1654
expected_params = {
17-
'userId': user_id,
18-
'projectGroupId': project_group_id,
55+
'userId': self.user_id,
56+
'projectGroupId': self.project_group_id,
1957
'affirmative': 'true',
20-
'roles': permissions
58+
'roles': self.permissions
2159
}
60+
self.assertEqual(self.permission_request.get_search_params(), expected_params)
2261

23-
self.assertEqual(search_params, expected_params)
62+
# Test get_search_params when permissions are None
63+
def test_get_search_params_without_permissions(self):
64+
self.permission_request.permissions = None # Set permissions to None
65+
expected_params = {
66+
'userId': self.user_id,
67+
'projectGroupId': self.project_group_id,
68+
'affirmative': 'true'
69+
}
70+
self.assertEqual(self.permission_request.get_search_params(), expected_params)
71+
72+
# Test get_search_params when should_satisfy_all is False
73+
def test_get_search_params_with_false_should_satisfy_all(self):
74+
self.permission_request.should_satisfy_all = False # Set should_satisfy_all to False
75+
expected_params = {
76+
'userId': self.user_id,
77+
'projectGroupId': self.project_group_id,
78+
'affirmative': 'false',
79+
'roles': self.permissions
80+
}
81+
self.assertEqual(self.permission_request.get_search_params(), expected_params)
2482

2583

2684
if __name__ == '__main__':

0 commit comments

Comments
 (0)