Skip to content

Commit 9ef736f

Browse files
authored
fix: TT-303 Create activity with active status (#315)
1 parent 86867c9 commit 9ef736f

File tree

2 files changed

+40
-11
lines changed

2 files changed

+40
-11
lines changed

tests/time_tracker_api/activities/activities_model_test.py

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
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

1014
@patch(
1115
'time_tracker_api.activities.activities_model.ActivityCosmosDBRepository.find_partition_key_value'
@@ -16,10 +20,10 @@ def test_find_all_with_id_in_list(
1620
activity_repository: ActivityCosmosDBRepository,
1721
):
1822
expected_item = {
19-
'id': 'id1',
20-
'name': 'testing',
21-
'description': 'do some testing',
22-
'tenant_id': 'tenantid1',
23+
'id': faker.uuid4(),
24+
'name': faker.name(),
25+
'description': faker.sentence(nb_words=4),
26+
'tenant_id': faker.uuid4(),
2327
}
2428

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

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)