From a40d5e9b455d863306d20bae645a9213a1144f28 Mon Sep 17 00:00:00 2001 From: jcalarcon98 Date: Tue, 3 Aug 2021 12:39:52 -0500 Subject: [PATCH 1/2] fix: TT-303 Create activity with active status fixed --- .../activities/activities_model_test.py | 41 ++++++++++++++++--- .../activities/activities_model.py | 13 +++--- 2 files changed, 43 insertions(+), 11 deletions(-) diff --git a/tests/time_tracker_api/activities/activities_model_test.py b/tests/time_tracker_api/activities/activities_model_test.py index fe84ce3a..9834f45e 100644 --- a/tests/time_tracker_api/activities/activities_model_test.py +++ b/tests/time_tracker_api/activities/activities_model_test.py @@ -1,12 +1,19 @@ -from unittest.mock import Mock, patch - +import copy +from unittest.mock import Mock, patch, ANY +from faker import Faker from commons.data_access_layer.database import EventContext from time_tracker_api.activities.activities_model import ( ActivityCosmosDBRepository, ActivityCosmosDBModel, + create_dao, ) +faker = Faker() + +@patch( + 'time_tracker_api.activities.activities_model.ActivityCosmosDBRepository.create_sql_condition_for_visibility' +) @patch( 'time_tracker_api.activities.activities_model.ActivityCosmosDBRepository.find_partition_key_value' ) @@ -16,10 +23,10 @@ def test_find_all_with_id_in_list( activity_repository: ActivityCosmosDBRepository, ): expected_item = { - 'id': 'id1', - 'name': 'testing', - 'description': 'do some testing', - 'tenant_id': 'tenantid1', + 'id': faker.uuid4(), + 'name': faker.name(), + 'description': faker.sentence(nb_words=4), + 'tenant_id': faker.uuid4(), } query_items_mock = Mock(return_value=[expected_item]) @@ -37,3 +44,25 @@ def test_find_all_with_id_in_list( activity = result[0] assert isinstance(activity, ActivityCosmosDBModel) assert activity.__dict__ == expected_item + + +def test_create_activity_should_add_active_status( + mocker, +): + activity_payload = { + 'name': faker.name(), + 'description': faker.sentence(nb_words=5), + 'tenant_id': faker.uuid4(), + } + activity_repository_create_mock = mocker.patch.object( + ActivityCosmosDBRepository, 'create' + ) + + activity_dao = create_dao() + activity_dao.create(activity_payload) + + expect_argument = copy.copy(activity_payload) + expect_argument['status'] = 'active' + activity_repository_create_mock.assert_called_with( + data=expect_argument, event_context=ANY + ) diff --git a/time_tracker_api/activities/activities_model.py b/time_tracker_api/activities/activities_model.py index 2a1de900..83f10fff 100644 --- a/time_tracker_api/activities/activities_model.py +++ b/time_tracker_api/activities/activities_model.py @@ -10,11 +10,7 @@ from time_tracker_api.database import CRUDDao, APICosmosDBDao from typing import List, Callable from commons.data_access_layer.database import EventContext -from utils.repository import ( - convert_list_to_tuple_string, - create_sql_in_condition, -) -from utils.query_builder import CosmosDBQueryBuilder, Order +from utils.query_builder import CosmosDBQueryBuilder class ActivityDao(CRUDDao): @@ -150,6 +146,13 @@ def get_all( ) return activities + def create(self, activity_payload: dict): + event_ctx = self.create_event_context('create') + activity_payload['status'] = 'active' + return self.repository.create( + data=activity_payload, event_context=event_ctx + ) + def create_dao() -> ActivityDao: repository = ActivityCosmosDBRepository() From 15d4fb23bffa97cde003fd84f56ff8497c7c209e Mon Sep 17 00:00:00 2001 From: jcalarcon98 Date: Fri, 6 Aug 2021 12:20:08 -0500 Subject: [PATCH 2/2] fix: TT-303 Rebase master branch --- tests/time_tracker_api/activities/activities_model_test.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/time_tracker_api/activities/activities_model_test.py b/tests/time_tracker_api/activities/activities_model_test.py index 9834f45e..37c61e0f 100644 --- a/tests/time_tracker_api/activities/activities_model_test.py +++ b/tests/time_tracker_api/activities/activities_model_test.py @@ -11,9 +11,6 @@ faker = Faker() -@patch( - 'time_tracker_api.activities.activities_model.ActivityCosmosDBRepository.create_sql_condition_for_visibility' -) @patch( 'time_tracker_api.activities.activities_model.ActivityCosmosDBRepository.find_partition_key_value' )