-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix disable attribute #222
Changes from 2 commits
31a4239
98b4ce6
4aea045
c0e68fb
90afe7b
4ca097f
510429d
6f2871a
7641ef2
4ccd251
34c2b4d
2cbfe17
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -77,7 +77,7 @@ def construct_fyle_payload( | |||||||||||||
return payload | ||||||||||||||
|
||||||||||||||
|
||||||||||||||
def disable_projects(workspace_id: int, projects_to_disable: Dict, *args, **kwargs): | ||||||||||||||
def disable_projects(workspace_id: int, projects_to_disable: Dict, is_import_to_fyle_enabled: bool = False, *args, **kwargs): | ||||||||||||||
""" | ||||||||||||||
Disable projects in Fyle when the projects are updated in Sage 300. | ||||||||||||||
This is a callback function that is triggered from accounting_mappings. | ||||||||||||||
|
@@ -92,6 +92,10 @@ def disable_projects(workspace_id: int, projects_to_disable: Dict, *args, **kwar | |||||||||||||
} | ||||||||||||||
|
||||||||||||||
""" | ||||||||||||||
if not is_import_to_fyle_enabled or len(projects_to_disable) == 0: | ||||||||||||||
logger.info("Skipping disabling projects in Fyle | WORKSPACE_ID: %s", workspace_id) | ||||||||||||||
return | ||||||||||||||
|
||||||||||||||
fyle_credentials = FyleCredential.objects.get(workspace_id=workspace_id) | ||||||||||||||
platform = PlatformConnector(fyle_credentials=fyle_credentials) | ||||||||||||||
platform.projects.sync() | ||||||||||||||
|
@@ -103,6 +107,11 @@ def disable_projects(workspace_id: int, projects_to_disable: Dict, *args, **kwar | |||||||||||||
|
||||||||||||||
project_values = [] | ||||||||||||||
for projects_map in projects_to_disable.values(): | ||||||||||||||
if not use_code_in_naming and projects_map['value'] == projects_map['updated_value']: | ||||||||||||||
continue | ||||||||||||||
elif use_code_in_naming and (projects_map['value'] == projects_map['updated_value'] and projects_map['code'] == projects_map['update_code']): | ||||||||||||||
continue | ||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Refactor Suggestion: Combine Conditional Checks The separate conditional checks for Consider refactoring the conditionals to use a single line with a logical OR operator, as suggested by the static analysis tool: - if not use_code_in_naming and projects_map['value'] == projects_map['updated_value']:
- continue
- elif use_code_in_naming and (projects_map['value'] == projects_map['updated_value'] and projects_map['code'] == projects_map['update_code']):
- continue
+ if (not use_code_in_naming and projects_map['value'] == projects_map['updated_value']) or (use_code_in_naming and projects_map['value'] == projects_map['updated_value'] and projects_map['code'] == projects_map['update_code']):
+ continue Committable suggestion
Suggested change
ToolsRuff
|
||||||||||||||
|
||||||||||||||
project_name = prepend_code_to_name(prepend_code_in_name=use_code_in_naming, value=projects_map['value'], code=projects_map['code']) | ||||||||||||||
project_values.append(project_name) | ||||||||||||||
|
||||||||||||||
|
@@ -115,9 +124,9 @@ def disable_projects(workspace_id: int, projects_to_disable: Dict, *args, **kwar | |||||||||||||
|
||||||||||||||
# Expense attribute value map is as follows: {old_project_name: destination_id} | ||||||||||||||
expense_attribute_value_map = {} | ||||||||||||||
for k, v in projects_to_disable.items(): | ||||||||||||||
for destination_id, v in projects_to_disable.items(): | ||||||||||||||
project_name = prepend_code_to_name(prepend_code_in_name=use_code_in_naming, value=v['value'], code=v['code']) | ||||||||||||||
expense_attribute_value_map[project_name] = k | ||||||||||||||
expense_attribute_value_map[project_name] = destination_id | ||||||||||||||
|
||||||||||||||
expense_attributes = ExpenseAttribute.objects.filter(**filters) | ||||||||||||||
|
||||||||||||||
|
@@ -142,8 +151,9 @@ def disable_projects(workspace_id: int, projects_to_disable: Dict, *args, **kwar | |||||||||||||
if bulk_payload: | ||||||||||||||
logger.info(f"Disabling Projects in Fyle | WORKSPACE_ID: {workspace_id} | COUNT: {len(bulk_payload)}") | ||||||||||||||
platform.projects.post_bulk(bulk_payload) | ||||||||||||||
update_and_disable_cost_code(workspace_id, projects_to_disable, platform, use_code_in_naming) | ||||||||||||||
platform.projects.sync() | ||||||||||||||
else: | ||||||||||||||
logger.info(f"No Projects to Disable in Fyle | WORKSPACE_ID: {workspace_id}") | ||||||||||||||
update_and_disable_cost_code(workspace_id, projects_to_disable, platform, use_code_in_naming) | ||||||||||||||
platform.projects.sync() | ||||||||||||||
|
||||||||||||||
return bulk_payload |
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -1,7 +1,7 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import logging | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
from django.utils.module_loading import import_string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
from fyle_accounting_mappings.models import DestinationAttribute, MappingSetting | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
from apps.workspaces.models import Sage300Credential | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
from apps.workspaces.models import Sage300Credential, ImportSetting | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
from sage_desktop_sdk.sage_desktop_sdk import SageDesktopSDK | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
from apps.sage300.models import CostCategory | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
from apps.mappings.models import Version | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -131,7 +131,7 @@ def _remove_credit_card_vendors(self): | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
logger.info(f'Deleting {vendor_count} credit card vendors from workspace_id {self.workspace_id}') | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
credit_card_vendor.delete() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
def _sync_data(self, data_gen, attribute_type, display_name, workspace_id, field_names, is_generator: bool = True, vendor_type_mapping = None): | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
def _sync_data(self, data_gen, attribute_type, display_name, workspace_id, field_names, is_generator: bool = True, vendor_type_mapping = None, is_import_to_fyle_enabled: bool = False): | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
""" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Synchronize data from Sage Desktop SDK to your application | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
:param data: Data to synchronize | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -159,7 +159,8 @@ def _sync_data(self, data_gen, attribute_type, display_name, workspace_id, field | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
attribute_type, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
workspace_id, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
True, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
attribute_disable_callback_path=ATTRIBUTE_CALLBACK_MAP[source_type] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
attribute_disable_callback_path=ATTRIBUTE_CALLBACK_MAP[source_type], | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
is_import_to_fyle_enabled=is_import_to_fyle_enabled | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
else: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DestinationAttribute.bulk_create_or_update_destination_attributes( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -185,7 +186,10 @@ def sync_accounts(self): | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
""" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
version = Version.objects.get(workspace_id=self.workspace_id).account | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
accounts = self.connection.accounts.get_all(version=version) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
self._sync_data(accounts, 'ACCOUNT', 'accounts', self.workspace_id, ['code', 'version']) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
is_import_to_fyle_enabled = self.is_imported_enabled('ACCOUNT', self.workspace_id) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
self._sync_data(accounts, 'ACCOUNT', 'accounts', self.workspace_id, ['code', 'version'], is_import_to_fyle_enabled=is_import_to_fyle_enabled) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return [] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
def sync_vendors(self): | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -201,14 +205,16 @@ def sync_vendors(self): | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
vendor_types = None | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
vendor_type_mapping = None | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
is_import_to_fyle_enabled = self.is_imported_enabled('VENDOR', self.workspace_id) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if not DestinationAttribute.objects.filter(workspace_id=self.workspace_id, attribute_type='VENDOR_TYPE').exists(): | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
vendor_types = self.connection.vendors.get_vendor_types() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
self._sync_data(vendor_types, 'VENDOR_TYPE', 'vendor_type', self.workspace_id, ['version']) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
vendor_types = DestinationAttribute.objects.filter(workspace_id=self.workspace_id, attribute_type='VENDOR_TYPE').values('destination_id', 'value').distinct() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
vendor_type_mapping = {vendor_type['destination_id']: vendor_type['value'] for vendor_type in vendor_types} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
self._sync_data(vendors, 'VENDOR', 'vendor', self.workspace_id, field_names, vendor_type_mapping=vendor_type_mapping) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
self._sync_data(vendors, 'VENDOR', 'vendor', self.workspace_id, field_names, vendor_type_mapping=vendor_type_mapping, is_import_to_fyle_enabled=is_import_to_fyle_enabled) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return [] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
def sync_jobs(self): | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -220,7 +226,10 @@ def sync_jobs(self): | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
field_names = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
'code', 'status', 'version', 'account_prefix_id', 'created_on_utc' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
self._sync_data(jobs, 'JOB', 'job', self.workspace_id, field_names) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
is_import_to_fyle_enabled = self.is_imported_enabled('JOB', self.workspace_id) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
self._sync_data(jobs, 'JOB', 'job', self.workspace_id, field_names, is_import_to_fyle_enabled=is_import_to_fyle_enabled) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return [] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
def sync_standard_cost_codes(self): | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -317,3 +326,28 @@ def get_source_type(self, attribute_type, workspace_id): | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
source_type = 'CATEGORY' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return source_type | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
def is_imported_enabled(self, attribute_type, workspace_id): | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
""" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Check if import is enabled for the attribute type | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
:param attribute_type: Type of the attribute | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
:return: Whether import is enabled | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
""" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
is_import_to_fyle_enabled = False | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import_settings = ImportSetting.objects.filter(workspace_id=self.workspace_id).first() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if not import_settings: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return is_import_to_fyle_enabled | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if attribute_type == 'ACCOUNT' and import_settings.import_categories: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
is_import_to_fyle_enabled = True | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
elif attribute_type == 'VENDOR' and import_settings.import_vendors_as_merchants: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
is_import_to_fyle_enabled = True | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
elif attribute_type == 'JOB': | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mapping_setting = MappingSetting.objects.filter(workspace_id=workspace_id, destination_field='JOB').first() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if mapping_setting and mapping_setting.import_to_fyle: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
is_import_to_fyle_enabled = True | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return is_import_to_fyle_enabled | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+330
to
+353
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Review of The method effectively encapsulates the logic for checking import settings based on the attribute type, enhancing code readability and maintainability. However, the static analysis tool suggests a potential improvement:
Refactor the method to combine similar conditions, improving the clarity and reducing redundancy: - if attribute_type == 'ACCOUNT' and import_settings.import_categories:
- is_import_to_fyle_enabled = True
- elif attribute_type == 'VENDOR' and import_settings.import_vendors_as_merchants:
- is_import_to_fyle_enabled = True
+ if (attribute_type == 'ACCOUNT' and import_settings.import_categories) or \
+ (attribute_type == 'VENDOR' and import_settings.import_vendors_as_merchants):
+ is_import_to_fyle_enabled = True Committable suggestion
Suggested change
ToolsRuff
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -124,7 +124,7 @@ def test_disable_projects( | |
|
||
disable_cost_code_call = mocker.patch('apps.sage300.dependent_fields.update_and_disable_cost_code') | ||
|
||
disable_projects(workspace_id, projects_to_disable) | ||
disable_projects(workspace_id, projects_to_disable, is_import_to_fyle_enabled=True) | ||
|
||
assert bulk_post_call.call_count == 1 | ||
assert sync_call.call_count == 2 | ||
|
@@ -139,10 +139,10 @@ def test_disable_projects( | |
} | ||
} | ||
|
||
disable_projects(workspace_id, projects_to_disable) | ||
disable_projects(workspace_id, projects_to_disable, is_import_to_fyle_enabled=True) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Check the assertions for correctness. The assertions following the
Consider correcting the assertion on line 145: - disable_cost_code_call.call_count == 1
+ assert disable_cost_code_call.call_count == 1 Also applies to: 144-145 |
||
assert bulk_post_call.call_count == 1 | ||
assert sync_call.call_count == 4 | ||
disable_cost_code_call.call_count == 2 | ||
assert sync_call.call_count == 3 | ||
disable_cost_code_call.call_count == 1 | ||
|
||
# Test disable projects with code in naming | ||
import_settings = ImportSetting.objects.get(workspace_id=workspace_id) | ||
|
@@ -178,7 +178,7 @@ def test_disable_projects( | |
'id': 'source_id_123' | ||
}] | ||
|
||
assert disable_projects(workspace_id, projects_to_disable) == payload | ||
assert disable_projects(workspace_id, projects_to_disable, is_import_to_fyle_enabled=True) == payload | ||
|
||
|
||
def test_update_and_disable_cost_code( | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Refinement of loop conditions.
The loop conditions have been refined to ensure that categories are only processed if their values have changed. This prevents unnecessary updates and enhances performance. However, the static analysis tool suggests combining these conditions using a logical
or
operator to simplify the code.Consider refactoring the conditions to use a single
if
statement with a logicalor
, which can make the code cleaner and potentially easier to maintain:Committable suggestion
Tools
Ruff