def test_get_last_entry( find_partition_key_value_mock, event_context: EventContext, time_entry_repository: TimeEntryCosmosDBRepository, ): expected_item = { 'id': 'id', 'start_date': '2021-03-22T10:00:00.000Z', 'end_date': "2021-03-22T11:00:00.000Z", 'description': 'do some testing', 'tenant_id': 'tenant_id', 'project_id': 'project_id', 'activity_id': 'activity_id', 'technologies': ['python'], } query_items_mock = Mock(return_value=iter([expected_item])) time_entry_repository.container = Mock() time_entry_repository.container.query_items = query_items_mock time_entry = time_entry_repository.get_last_entry( 'id1', ['id1'], event_context ) find_partition_key_value_mock.assert_called_once() assert isinstance(time_entry, TimeEntryCosmosDBModel) assert time_entry.__dict__ == expected_item
def test_find_interception_with_date_range_should_return_true_if_there_are_collisions(): owner_id = Faker().uuid4() tenant_id = Faker().uuid4() entry_start_date = "2020-10-01T05:00:00.000Z" entry_end_date = "2020-10-01T10:00:00.000Z" collision_entry = { "project_id": Faker().uuid4(), "activity_id": Faker().uuid4(), "description": Faker().paragraph(nb_sentences=2), "start_date": entry_start_date, "end_date": entry_end_date, "owner_id": Faker().uuid4(), "tenant_id": tenant_id, } time_entry_repository = TimeEntryCosmosDBRepository() query_items_mock = Mock(return_value=[collision_entry]) time_entry_repository.container = Mock() time_entry_repository.container.query_items = query_items_mock exist_collision_entries = ( time_entry_repository.find_interception_with_date_range( start_date=entry_start_date, end_date=entry_end_date, owner_id=owner_id, tenant_id=tenant_id, ) ) assert exist_collision_entries is True
def test_find_interception_with_date_range_should_return_false_if_there_are_not_collisions(): entry_start_date = "2020-10-01T05:00:00.000Z" entry_end_date = "2020-10-01T10:00:00.000Z" time_entry_repository = TimeEntryCosmosDBRepository() query_items_mock = Mock(return_value=[]) time_entry_repository.container = Mock() time_entry_repository.container.query_items = query_items_mock exist_collision_entries = ( time_entry_repository.find_interception_with_date_range( start_date=entry_start_date, end_date=entry_end_date, owner_id=Faker().uuid4(), tenant_id=Faker().uuid4(), ) ) assert exist_collision_entries is False
def test_find_all_time_entries_new_version( add_complementary_info_mock, generate_params_mock, get_page_size_or_mock, find_partition_key_value_mock, event_context: EventContext, time_entry_repository: TimeEntryCosmosDBRepository, ): expected_item = { 'id': 'id', 'start_date': '2021-03-22T10:00:00.000Z', 'end_date': "2021-03-22T11:00:00.000Z", 'description': 'do some testing', 'tenant_id': 'tenant_id', 'project_id': 'project_id', 'activity_id': 'activity_id', 'technologies': ['python'], } query_items_mock = Mock(return_value=[expected_item]) time_entry_repository.container = Mock() time_entry_repository.container.query_items = query_items_mock time_entry_repository.add_complementary_info = query_items_mock result = time_entry_repository.find_all( conditions={"user_id": "*"}, event_context=event_context, date_range={ 'start_date': "2021-03-22T10:00:00.000Z", 'end_date': "2021-03-22T11:00:00.000Z", }, ) find_partition_key_value_mock.assert_called_once() get_page_size_or_mock.assert_called_once() assert len(result) == 1 time_entry = result[0] assert time_entry == expected_item
def test_update_last_entry( event_context: EventContext, time_entry_repository: TimeEntryCosmosDBRepository, expected_item, running_item, last_item_update, ): query_items_mock = Mock(return_value=iter([expected_item])) time_entry_repository.container = Mock() time_entry_repository.container.query_items = query_items_mock partial_update_mock = Mock(return_value=[last_item_update]) time_entry_repository.partial_update = partial_update_mock time_entry_repository.update_last_entry( running_item.get('owner_id'), running_item.get('start_date'), running_item.get('id_running_entry'), event_context, ) partial_update_mock.assert_called_once() query_items_mock.assert_called_once()