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
11 changes: 7 additions & 4 deletions apps/sage_intacct/dependent_fields.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import logging
import traceback
from datetime import datetime, timezone
from time import sleep

Expand Down Expand Up @@ -218,7 +219,8 @@ def post_dependent_cost_code(import_log: ImportLog, dependent_field_setting: Dep
platform.dependent_fields.bulk_post_dependent_expense_field_values(payload_set)
posted_cost_codes.update(cost_code_names)
processed_batches += 1
except Exception as exception:
except Exception:
exception = traceback.format_exc()
is_errored = True
logger.error(f'Exception while posting dependent cost code | Error: {exception} | Payload: {payload}')

Expand Down Expand Up @@ -308,7 +310,8 @@ def post_dependent_cost_type(import_log: ImportLog, dependent_field_setting: Dep
platform.dependent_fields.bulk_post_dependent_expense_field_values(payload_set)
CostType.objects.filter(task_name=cost_types['task_name'], task_id=cost_types['task_id'], workspace_id=dependent_field_setting.workspace_id).update(is_imported=True, updated_at=datetime.now(timezone.utc))
processed_batches += 1
except Exception as exception:
except Exception:
exception = traceback.format_exc()
is_errored = True
logger.error(f'Exception while posting dependent cost type | Error: {exception} | Payload: {payload}')

Expand Down Expand Up @@ -439,8 +442,8 @@ def import_dependent_fields_to_fyle(workspace_id: str) -> None:
except SageIntacctSDKError as e:
exception = "Sage Intacct SDK Error"
logger.info('Sage Intacct SDK Error - %s', e)
except Exception as e:
exception = e.__str__()
except Exception:
exception = traceback.format_exc()
logger.error('Exception while importing dependent fields to fyle - %s', exception)
finally:
if cost_type_import_log and cost_type_import_log.status == 'IN_PROGRESS':
Expand Down
20 changes: 20 additions & 0 deletions tests/test_sageintacct/test_dependent_fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,26 @@ def test_import_dependent_fields_to_fyle(db, mocker, create_cost_type, create_de
assert cost_type_import_log.error_log == 'Sage Intacct SDK Error'


def test_import_dependent_fields_to_fyle_generic_exception(db, mocker, create_cost_type, create_dependent_field_setting):
"""
Test import_dependent_fields_to_fyle with generic exception to cover traceback.format_exc()
"""
workspace_id = 1

mocker.patch('apps.sage_intacct.dependent_fields.connect_to_platform', return_value=mocker.MagicMock())
mocker.patch('apps.sage_intacct.dependent_fields.sync_sage_intacct_attributes', side_effect=Exception('Unexpected error'))

import_dependent_fields_to_fyle(workspace_id)

cost_code_import_log = ImportLog.objects.filter(attribute_type='COST_CODE', workspace_id=workspace_id).first()
assert cost_code_import_log.status == 'FAILED'
assert 'Unexpected error' in cost_code_import_log.error_log

cost_type_import_log = ImportLog.objects.filter(attribute_type='COST_TYPE', workspace_id=workspace_id).first()
assert cost_type_import_log.status == 'FAILED'
assert 'Unexpected error' in cost_type_import_log.error_log


def test_construct_custom_field_placeholder():
"""
Test construct_custom_field_placeholder
Expand Down
Loading