Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -290,15 +290,7 @@ def test_updated_item_without_deleted_key_should_call_validate_data(
@patch(
'time_tracker_api.time_entries.time_entries_repository.TimeEntryCosmosDBRepository.add_complementary_info'
)
@patch(
'commons.feature_toggles.feature_toggle_manager.FeatureToggleManager.get_azure_app_configuration_client'
)
@patch(
'commons.feature_toggles.feature_toggle_manager.FeatureToggleManager.is_toggle_enabled_for_user'
)
def test_find_all_v2(
is_toggle_enabled_for_user_mock,
get_azure_app_configuration_client_mock,
add_complementary_info_mock,
create_custom_sql_conditions_mock,
create_sql_where_conditions_mock,
Expand All @@ -309,7 +301,6 @@ def test_find_all_v2(
event_context: EventContext,
time_entry_repository: TimeEntryCosmosDBRepository,
):
is_toggle_enabled_for_user_mock.return_value = True
expected_item = {
'id': 'id',
'start_date': '2021-03-22T10:00:00.000Z',
Expand Down
56 changes: 0 additions & 56 deletions tests/time_tracker_api/time_entries/time_entries_namespace_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -137,22 +137,12 @@ def test_create_time_entry_with_missing_req_field_should_return_bad_request(
repository_create_mock.assert_not_called()


@patch(
'commons.feature_toggles.feature_toggle_manager.FeatureToggleManager.get_azure_app_configuration_client'
)
@patch(
'commons.feature_toggles.feature_toggle_manager.FeatureToggleManager.is_toggle_enabled_for_user'
)
def test_list_all_time_entries(
is_toggle_enabled_for_user_mock,
get_azure_app_configuration_client_mock,
client: FlaskClient,
mocker: MockFixture,
valid_header: dict,
time_entries_dao,
):
is_toggle_enabled_for_user_mock.return_value = True

dao_get_all_mock = mocker.patch.object(
time_entries_dao, 'get_all', return_value=[]
)
Expand Down Expand Up @@ -232,15 +222,7 @@ def test_get_time_entry_should_succeed_with_valid_id(
(True, ['id1', 'id1']),
],
)
@patch(
'commons.feature_toggles.feature_toggle_manager.FeatureToggleManager.get_azure_app_configuration_client'
)
@patch(
'commons.feature_toggles.feature_toggle_manager.FeatureToggleManager.is_toggle_enabled_for_user'
)
def test_get_time_entries_by_type_of_user_when_is_user_tester(
is_toggle_enabled_for_user_mock,
get_azure_app_configuration_client_mock,
get_test_user_ids_mock,
is_test_user_mock,
client: FlaskClient,
Expand All @@ -249,7 +231,6 @@ def test_get_time_entries_by_type_of_user_when_is_user_tester(
current_user_is_tester,
expected_user_ids,
):
is_toggle_enabled_for_user_mock.return_value = True
test_user_id = "id1"
non_test_user_id = "id2"
te1 = TimeEntryCosmosDBModel(
Expand Down Expand Up @@ -322,15 +303,7 @@ def test_get_time_entries_by_type_of_user_when_is_user_tester(
(False, ['id1', 'id1']),
],
)
@patch(
'commons.feature_toggles.feature_toggle_manager.FeatureToggleManager.get_azure_app_configuration_client'
)
@patch(
'commons.feature_toggles.feature_toggle_manager.FeatureToggleManager.is_toggle_enabled_for_user'
)
def test_get_time_entries_by_type_of_user_when_is_not_user_tester(
is_toggle_enabled_for_user_mock,
get_azure_app_configuration_client_mock,
get_test_user_ids_mock,
is_test_user_mock,
client: FlaskClient,
Expand All @@ -339,7 +312,6 @@ def test_get_time_entries_by_type_of_user_when_is_not_user_tester(
current_user_is_tester,
expected_user_ids,
):
is_toggle_enabled_for_user_mock.return_value = True
test_user_id = "id1"
non_test_user_id = "id2"
te1 = TimeEntryCosmosDBModel(
Expand Down Expand Up @@ -806,21 +778,12 @@ def test_create_with_valid_uuid_format_should_return_created(
('/time-entries'),
],
)
@patch(
'commons.feature_toggles.feature_toggle_manager.FeatureToggleManager.get_azure_app_configuration_client'
)
@patch(
'commons.feature_toggles.feature_toggle_manager.FeatureToggleManager.is_toggle_enabled_for_user'
)
def test_get_all_passes_date_range_built_from_params_to_find_all(
is_toggle_enabled_for_user_mock,
get_azure_app_configuration_client_mock,
client: FlaskClient,
valid_header: dict,
url: str,
time_entries_dao,
):
is_toggle_enabled_for_user_mock.return_value = True
time_entries_dao.repository.find_all = Mock(return_value=[])

response = client.get(url, headers=valid_header)
Expand Down Expand Up @@ -852,24 +815,14 @@ def test_get_all_passes_date_range_built_from_params_to_find_all(
),
],
)
@patch(
'commons.feature_toggles.feature_toggle_manager.FeatureToggleManager.get_azure_app_configuration_client'
)
@patch(
'commons.feature_toggles.feature_toggle_manager.FeatureToggleManager.is_toggle_enabled_for_user'
)
def test_get_all_passes_date_range_to_find_all_with_default_tz_offset(
is_toggle_enabled_for_user_mock,
get_azure_app_configuration_client_mock,
client: FlaskClient,
valid_header: dict,
time_entries_dao,
url: str,
start_date: str,
end_date: str,
):
is_toggle_enabled_for_user_mock.return_value = True

time_entries_dao.repository.find_all = Mock(return_value=[])

response = client.get(url, headers=valid_header)
Expand Down Expand Up @@ -923,23 +876,14 @@ def test_get_all_passes_date_range_to_find_all_with_default_tz_offset(
),
],
)
@patch(
'commons.feature_toggles.feature_toggle_manager.FeatureToggleManager.get_azure_app_configuration_client'
)
@patch(
'commons.feature_toggles.feature_toggle_manager.FeatureToggleManager.is_toggle_enabled_for_user'
)
def test_get_all_passes_date_range_to_find_all_with_given_tz_offset(
is_toggle_enabled_for_user_mock,
get_azure_app_configuration_client_mock,
client: FlaskClient,
valid_header: dict,
time_entries_dao,
url: str,
start_date: str,
end_date: str,
):
is_toggle_enabled_for_user_mock.return_value = True
time_entries_dao.repository.find_all = Mock(return_value=[])

response = client.get(url, headers=valid_header)
Expand Down
38 changes: 4 additions & 34 deletions time_tracker_api/time_entries/time_entries_dao.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,39 +92,6 @@ def build_custom_query(self, is_admin: bool, conditions: dict = None):
)
return custom_query

def get_all_old(self, conditions: dict = None, **kwargs) -> list:
event_ctx = self.create_event_context("read-many")
conditions.update({"owner_id": event_ctx.user_id})
is_complete_query = conditions.get("user_id") == '*'
custom_query = self.build_custom_query(
is_admin=event_ctx.is_admin,
conditions=conditions,
)
date_range = self.handle_date_filter_args(args=conditions)
limit = conditions.get("limit", None)
conditions.pop("limit", None)
azure_connection = AzureConnection()
current_user_is_tester = azure_connection.is_test_user(
event_ctx.user_id
)
time_entries_list = self.repository.find_all_old(
event_ctx,
conditions=conditions,
custom_sql_conditions=custom_query,
date_range=date_range,
max_count=limit,
)
if not current_user_is_tester and is_complete_query:
test_user_ids = azure_connection.get_test_user_ids()
time_entries_list = [
time_entry
for time_entry in time_entries_list
if time_entry.owner_id not in test_user_ids
]
return time_entries_list
else:
return time_entries_list

def get_all(self, conditions: dict = None, **kwargs) -> list:
event_ctx = self.create_event_context("read-many")
conditions.update({"owner_id": event_ctx.user_id})
Expand Down Expand Up @@ -272,7 +239,10 @@ def update(self, id, data: dict, description=None):

if data.get('update_last_entry_if_overlap', None):
self.repository.update_last_entry(
data.get('owner_id'), data.get('start_date'), data.get('id'), event_ctx
data.get('owner_id'),
data.get('start_date'),
data.get('id'),
event_ctx,
)

return self.repository.partial_update(
Expand Down
8 changes: 1 addition & 7 deletions time_tracker_api/time_entries/time_entries_namespace.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@
)
from time_tracker_api.time_entries.time_entries_dao import create_dao

from commons.feature_toggles.feature_toggle_manager import FeatureToggleManager

faker = Faker()

ns = api.namespace(
Expand Down Expand Up @@ -239,11 +237,7 @@ class TimeEntries(Resource):
def get(self):
"""List all time entries"""
conditions = attributes_filter.parse_args()
find_all_version = FeatureToggleManager('find_all_version')
if find_all_version.is_toggle_enabled_for_user():
return time_entries_dao.get_all(conditions=conditions)
else:
return time_entries_dao.get_all_old(conditions=conditions)
return time_entries_dao.get_all(conditions=conditions)

@ns.doc('create_time_entry')
@ns.expect(time_entry_input)
Expand Down
58 changes: 0 additions & 58 deletions time_tracker_api/time_entries/time_entries_repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -172,64 +172,6 @@ def add_complementary_info(self, time_entries=None, max_count=None):
abort(HTTPStatus.NOT_FOUND, "Time entry not found")
return time_entries

def find_all_old(
self,
event_context: EventContext,
conditions: dict = None,
custom_sql_conditions: List[str] = None,
date_range: dict = None,
**kwargs,
):
conditions = conditions if conditions else {}
custom_sql_conditions = (
custom_sql_conditions if custom_sql_conditions else []
)
date_range = date_range if date_range else {}

custom_sql_conditions.append(
self.create_sql_date_range_filter(date_range)
)

custom_params = self.generate_params(date_range)
time_entries = CosmosDBRepository.find_all(
self,
event_context=event_context,
conditions=conditions,
custom_sql_conditions=custom_sql_conditions,
custom_params=custom_params,
max_count=kwargs.get("max_count", None),
offset=kwargs.get("offset", 0),
)

if time_entries:
custom_conditions = create_in_condition(time_entries, "project_id")
custom_conditions_activity = create_in_condition(
time_entries, "activity_id"
)

project_dao = projects_model.create_dao()
projects = project_dao.get_all(
custom_sql_conditions=[custom_conditions],
visible_only=False,
max_count=kwargs.get("max_count", None),
)

add_project_info_to_time_entries(time_entries, projects)

activity_dao = activities_model.create_dao()
activities = activity_dao.get_all(
custom_sql_conditions=[custom_conditions_activity],
visible_only=False,
max_count=kwargs.get("max_count", None),
)
add_activity_name_to_time_entries(time_entries, activities)

users = AzureConnection().users()
add_user_email_to_time_entries(time_entries, users)
elif not time_entries and len(conditions) > 1:
abort(HTTPStatus.NOT_FOUND, "Time entry not found")
return time_entries

def find_all(
self,
conditions,
Expand Down