Skip to content

Commit 2448474

Browse files
committed
fix: TT-303 Create activity with active status fixed
1 parent bb7d711 commit 2448474

File tree

2 files changed

+40
-12
lines changed

2 files changed

+40
-12
lines changed

tests/time_tracker_api/activities/activities_model_test.py

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
1-
from unittest.mock import Mock, patch
2-
import pytest
3-
1+
import copy
2+
from unittest.mock import Mock, patch, ANY
3+
from faker import Faker
44
from commons.data_access_layer.database import EventContext
55
from time_tracker_api.activities.activities_model import (
66
ActivityCosmosDBRepository,
77
ActivityCosmosDBModel,
8+
create_dao,
89
)
910

11+
faker = Faker()
12+
1013

1114
@patch(
1215
'time_tracker_api.activities.activities_model.ActivityCosmosDBRepository.create_sql_condition_for_visibility'
@@ -20,10 +23,10 @@ def test_find_all_with_id_in_list(
2023
activity_repository: ActivityCosmosDBRepository,
2124
):
2225
expected_item = {
23-
'id': 'id1',
24-
'name': 'testing',
25-
'description': 'do some testing',
26-
'tenant_id': 'tenantid1',
26+
'id': faker.uuid4(),
27+
'name': faker.name(),
28+
'description': faker.sentence(nb_words=4),
29+
'tenant_id': faker.uuid4(),
2730
}
2831

2932
query_items_mock = Mock(return_value=[expected_item])
@@ -41,3 +44,25 @@ def test_find_all_with_id_in_list(
4144
activity = result[0]
4245
assert isinstance(activity, ActivityCosmosDBModel)
4346
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)