Skip to content

Commit a40d5e9

Browse files
committed
fix: TT-303 Create activity with active status fixed
1 parent 86867c9 commit a40d5e9

File tree

2 files changed

+43
-11
lines changed

2 files changed

+43
-11
lines changed

tests/time_tracker_api/activities/activities_model_test.py

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,19 @@
1-
from unittest.mock import Mock, patch
2-
1+
import copy
2+
from unittest.mock import Mock, patch, ANY
3+
from faker import Faker
34
from commons.data_access_layer.database import EventContext
45
from time_tracker_api.activities.activities_model import (
56
ActivityCosmosDBRepository,
67
ActivityCosmosDBModel,
8+
create_dao,
79
)
810

11+
faker = Faker()
12+
913

14+
@patch(
15+
'time_tracker_api.activities.activities_model.ActivityCosmosDBRepository.create_sql_condition_for_visibility'
16+
)
1017
@patch(
1118
'time_tracker_api.activities.activities_model.ActivityCosmosDBRepository.find_partition_key_value'
1219
)
@@ -16,10 +23,10 @@ def test_find_all_with_id_in_list(
1623
activity_repository: ActivityCosmosDBRepository,
1724
):
1825
expected_item = {
19-
'id': 'id1',
20-
'name': 'testing',
21-
'description': 'do some testing',
22-
'tenant_id': 'tenantid1',
26+
'id': faker.uuid4(),
27+
'name': faker.name(),
28+
'description': faker.sentence(nb_words=4),
29+
'tenant_id': faker.uuid4(),
2330
}
2431

2532
query_items_mock = Mock(return_value=[expected_item])
@@ -37,3 +44,25 @@ def test_find_all_with_id_in_list(
3744
activity = result[0]
3845
assert isinstance(activity, ActivityCosmosDBModel)
3946
assert activity.__dict__ == expected_item
47+
48+
49+
def test_create_activity_should_add_active_status(
50+
mocker,
51+
):
52+
activity_payload = {
53+
'name': faker.name(),
54+
'description': faker.sentence(nb_words=5),
55+
'tenant_id': faker.uuid4(),
56+
}
57+
activity_repository_create_mock = mocker.patch.object(
58+
ActivityCosmosDBRepository, 'create'
59+
)
60+
61+
activity_dao = create_dao()
62+
activity_dao.create(activity_payload)
63+
64+
expect_argument = copy.copy(activity_payload)
65+
expect_argument['status'] = 'active'
66+
activity_repository_create_mock.assert_called_with(
67+
data=expect_argument, event_context=ANY
68+
)

time_tracker_api/activities/activities_model.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,7 @@
1010
from time_tracker_api.database import CRUDDao, APICosmosDBDao
1111
from typing import List, Callable
1212
from commons.data_access_layer.database import EventContext
13-
from utils.repository import (
14-
convert_list_to_tuple_string,
15-
create_sql_in_condition,
16-
)
17-
from utils.query_builder import CosmosDBQueryBuilder, Order
13+
from utils.query_builder import CosmosDBQueryBuilder
1814

1915

2016
class ActivityDao(CRUDDao):
@@ -150,6 +146,13 @@ def get_all(
150146
)
151147
return activities
152148

149+
def create(self, activity_payload: dict):
150+
event_ctx = self.create_event_context('create')
151+
activity_payload['status'] = 'active'
152+
return self.repository.create(
153+
data=activity_payload, event_context=event_ctx
154+
)
155+
153156

154157
def create_dao() -> ActivityDao:
155158
repository = ActivityCosmosDBRepository()

0 commit comments

Comments
 (0)