Commit 7f10c735 authored by Jérome Perrin's avatar Jérome Perrin

*: fix used-before-assignment and possibly-used-before-assignment from pylint 3.2.0

parent db909373
Pipeline #34615 canceled with stage
in 0 seconds
......@@ -64,35 +64,35 @@ line_list = context.AccountingTransaction_getAccountingTransactionLineList(
if not cancellation_amount:
line_list.reverse()
# guess portal_type to create lines
if line_list:
# guess portal_type to create lines
line_portal_type = line_list[0].getPortalType()
for line in line_list:
new_line = reversal.newContent( portal_type=line_portal_type )
new_line.edit(
source=line.getSource(portal_type='Account'),
destination=line.getDestination(portal_type='Account'),
quantity= - line.getQuantity(), )
if line.getSourceTotalAssetPrice():
new_line.setSourceTotalAssetPrice( - line.getSourceTotalAssetPrice() )
if line.getDestinationTotalAssetPrice():
new_line.setDestinationTotalAssetPrice(
- line.getDestinationTotalAssetPrice() )
new_line.setCancellationAmount(cancellation_amount)
# copy some values if they are defined explicitly on line
for prop in [ 'source_section', 'destination_section',
'source_payment', 'destination_payment',
'source_project', 'destination_project',
'source_function', 'destination_function',
'source_funding', 'destination_funding',
'source_payment_request', 'destination_payment_request',
'resource', 'product_line', 'string_index' ]:
if line.getProperty(prop) != context.getProperty(prop):
new_line.setProperty(prop, line.getProperty(prop))
for line in line_list:
new_line = reversal.newContent( portal_type=line_portal_type )
new_line.edit(
source=line.getSource(portal_type='Account'),
destination=line.getDestination(portal_type='Account'),
quantity= - line.getQuantity(), )
if line.getSourceTotalAssetPrice():
new_line.setSourceTotalAssetPrice( - line.getSourceTotalAssetPrice() )
if line.getDestinationTotalAssetPrice():
new_line.setDestinationTotalAssetPrice(
- line.getDestinationTotalAssetPrice() )
new_line.setCancellationAmount(cancellation_amount)
# copy some values if they are defined explicitly on line
for prop in [ 'source_section', 'destination_section',
'source_payment', 'destination_payment',
'source_project', 'destination_project',
'source_function', 'destination_function',
'source_funding', 'destination_funding',
'source_payment_request', 'destination_payment_request',
'resource', 'product_line', 'string_index' ]:
if line.getProperty(prop) != context.getProperty(prop):
new_line.setProperty(prop, line.getProperty(prop))
if plan:
reversal.plan()
......
......@@ -55,6 +55,7 @@ shopping_cart_items = context.SaleOrder_getShoppingCartItemList()
# get category like size and variation
category = request.form.get('field_variation_box_your_category', '')
base_category = ''
if category:
[base_category, category] = category.split('/', 1)
variation = request.form.get('field_variation_box_your_variation', None)
......
......@@ -37,8 +37,7 @@ else:
variation_dict["start_date"] = date
variation_dict["stop_date"] = date+0.00001
if web_site_value is not None:
price_currency_value = web_site_value.WebSite_getShoppingCartDefaultCurrency()
price_currency_value = web_site_value.WebSite_getShoppingCartDefaultCurrency()
movement = context.newContent(
temp_object=True,
......
......@@ -28,6 +28,8 @@ elif aggregation_level == "week":
sql_format = "%Y-%u"
elif aggregation_level == "day":
sql_format = "%Y-%m-%d"
else:
raise ValueError("Unsupported aggregation level %s" % aggregation_level)
if to_date is not None:
to_date = atTheEndOfPeriod(to_date, period=aggregation_level)
count_kw = {}
......
......@@ -29,9 +29,10 @@ import io
import six
if six.PY3:
long = int # pylint:disable=redefined-builtin
long_or_int = int
from email.generator import _make_boundary as choose_boundary
else:
long_or_int = long # pylint:disable=undefined-variable
from mimetools import choose_boundary # pylint:disable=import-error
class BigFile(File):
......@@ -193,13 +194,13 @@ class BigFile(File):
else:
# Date
date = if_range.split( ';')[0]
try: mod_since=long(DateTime(date).timeTime())
try: mod_since=long_or_int(DateTime(date).timeTime())
except Exception: mod_since=None
if mod_since is not None:
last_mod = self._data_mtime()
if last_mod is None:
last_mod = 0
last_mod = long(last_mod)
last_mod = long_or_int(last_mod)
if last_mod > mod_since:
# Modified, so send a normal response. We delete
# the ranges, which causes us to skip to the 200
......
......@@ -78,6 +78,8 @@ class CategoriesSpreadsheetConfiguratorItem(ConfiguratorItemMixin, XMLObject):
"Base Category %s should be created" % bc_id))
if fixit:
bc = ctool.newContent(id=bc_id)
else:
continue
if fixit:
for category_info in category_list:
......
......@@ -228,6 +228,7 @@ class ConfiguratorTool(BaseTool):
return response
## show next form in transitions
html = None
rendered = False
while rendered is False:
if need_validation == 1:
......
......@@ -595,7 +595,7 @@ class TestERP5Catalog(ERP5TypeTestCase, LogInterceptor):
uid_dict = {}
for _ in range(UID_BUFFER_SIZE * 3):
uid = portal_catalog.newUid()
self.assertIsInstance(uid, long)
self.assertIsInstance(uid, long) # pylint:disable=possibly-used-before-assignment
self.assertNotIn(uid, uid_dict)
uid_dict[uid] = None
......
......@@ -11,6 +11,7 @@ Upgrade link for the specific type of display
import re
link_href = re.findall("href=['\"](.*?)['\"]", link_string)[0]
link_title = ''
# XXX flag if broken link
if link_href.find("http") == -1:
......
......@@ -30,6 +30,7 @@ from base64 import b64encode
from Products.ERP5Type.Utils import bytes2str, str2bytes
blank = ''
slide_content = blank
flags = re.MULTILINE|re.DOTALL|re.IGNORECASE
details_separator = '</section><section class="ci-notes-continue"><section><h1>cont.</h1></section>'
pref = context.getPortalObject().portal_preferences
......
......@@ -264,6 +264,8 @@ class TestCRM(BaseTestCRM):
getter_id = "getDestinationRelatedValue"
elif direction == "incoming":
getter_id = "getSourceRelatedValue"
else:
raise ValueError(direction)
related_event = getattr(pers1, getter_id)(portal_type='Mail Message')
self.assertNotEqual(None, related_event)
self.assertEqual('The Event Title', related_event.getTitle())
......@@ -1673,9 +1675,7 @@ class TestCRMMailSend(BaseTestCRM):
# answer event must have been created
self.assertEqual(len(self.portal.event_module), 2)
for ev in self.portal.event_module.objectValues():
if ev.getId() != first_event_id:
answer_event = ev
answer_event, = [ev for ev in self.portal.event_module.objectValues() if ev.getId() != first_event_id]
# check properties of answer event
self.assertEqual(answer_event.getSimulationState(), "started")
......
......@@ -551,6 +551,8 @@ class TestCrmReports(CrmTestCase):
event=second_event_inc1
direction='Incoming'
campaign=ticket.getTitle()
else:
raise AssertionError(i)
self.checkLineProperties(data_line_list[i],
campaign = campaign,
direction = direction,
......@@ -861,6 +863,8 @@ class TestCrmReports(CrmTestCase):
event=second_event_inc1
direction='Incoming'
meeting=ticket.getTitle()
else:
raise AssertionError(i)
self.checkLineProperties(data_line_list[i],
meeting = meeting,
direction = direction,
......@@ -1171,6 +1175,8 @@ class TestCrmReports(CrmTestCase):
event=second_event_out1
direction='Outgoing'
support_request=ticket.getTitle()
else:
raise AssertionError(i)
self.checkLineProperties(data_line_list[i],
support_request = support_request,
direction = direction,
......@@ -1481,6 +1487,8 @@ class TestCrmReports(CrmTestCase):
event=second_event_inc1
direction='Incoming'
sale_opportunity=ticket.getTitle()
else:
raise AssertionError(i)
self.checkLineProperties(data_line_list[i],
sale_opportunity = sale_opportunity,
direction = direction,
......@@ -1753,6 +1761,8 @@ class TestCrmReports(CrmTestCase):
pSupportRequest = 0
punassigned = 0
ptotal = 2
else:
raise AssertionError(i)
self.checkLineProperties(data_line_list[i],
validation_state = pvalidation_state,
Campaign = pCampaign,
......@@ -1816,6 +1826,8 @@ class TestCrmReports(CrmTestCase):
pSupportRequest = 0
punassigned = 0
ptotal = 1
else:
raise AssertionError(i)
self.checkLineProperties(data_line_list[i],
validation_state = pvalidation_state,
Campaign = pCampaign,
......@@ -2124,6 +2136,8 @@ class TestCrmReports(CrmTestCase):
pexpired = 0
presponded = 0
ptotal = 2
else:
raise AssertionError(i)
self.checkLineProperties(data_line_list[i],
ticket_title = pticket_title,
ticket_type = pticket_type,
......
......@@ -22,6 +22,7 @@ def Listbox_getBrainValue(self, brain, obj, select, can_check_local_property, ed
ListBox.py / getValueList
"""
tales = False
default_field_value = None
# Use a widget, if any.
if editable_field is not None:
......
......@@ -4,8 +4,7 @@ Base_translateString = portal.Base_translateString
preserved_parameter_dict = {}
Base_doAction = select_action.split()
if len(Base_doAction) != 0:
doAction0 = Base_doAction[0]
doAction0 = Base_doAction[0]
kw['keep_items'] = preserved_parameter_dict
......
......@@ -202,37 +202,37 @@ def generateDomainTreeList(url_tool, domain_tool, domain, depth, domain_list):
def getDomainSelection(domain_list):
root_dict = {}
if len(domain_list) > 0:
if domain_list:
category_tool = portal.portal_categories
domain_tool = portal.portal_domains
preference_tool = portal.portal_preferences
url_tool = portal.portal_url
for base_domain_id in domain_list:
domain = None
if category_tool is not None:
domain = category_tool.restrictedTraverse(base_domain_id, None)
if domain is not None :
root_dict[base_domain_id] = getattr(
domain,
preference_tool.getPreference(
'preferred_category_child_item_list_method_id',
'getCategoryChildCompactLogicalPathItemList'
)
)(local_sort_id=('int_index', 'translated_title'), checked_permission='View',
filter_node=0, display_none_category=0)
elif domain_tool is not None:
try:
domain = domain_tool.getDomainByPath(base_domain_id, None)
except KeyError:
domain = None
if domain is not None:
# XXX Implement recursive fetch
domain_list = []
generateDomainTreeList(url_tool, domain_tool, domain, 0, domain_list)
root_dict[base_domain_id] = domain_list
for base_domain_id in domain_list:
domain = None
if category_tool is not None:
domain = category_tool.restrictedTraverse(base_domain_id, None)
if domain is not None :
root_dict[base_domain_id] = getattr(
domain,
preference_tool.getPreference(
'preferred_category_child_item_list_method_id',
'getCategoryChildCompactLogicalPathItemList'
)
)(local_sort_id=('int_index', 'translated_title'), checked_permission='View',
filter_node=0, display_none_category=0)
elif domain_tool is not None:
try:
domain = domain_tool.getDomainByPath(base_domain_id, None)
except KeyError:
domain = None
if domain is not None:
# XXX Implement recursive fetch
domain_list = []
generateDomainTreeList(url_tool, domain_tool, domain, 0, domain_list)
root_dict[base_domain_id] = domain_list
return root_dict
......@@ -2170,7 +2170,7 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None,
# XXX If only available on brains, maybe better to call on aq_self
getBrainListItemUrlDict = getattr(brain, 'getListItemUrlDict', None)
is_getListItemUrlDict_calculated = True
if getBrainListItemUrlDict is not None:
if getBrainListItemUrlDict is not None: # pylint:disable=possibly-used-before-assignment
# Check if we can get URL result from the brain
try:
url_parameter_dict = getBrainListItemUrlDict(
......
......@@ -44,10 +44,9 @@ delivery_count = len(source_section_list)
for item in object_list:
source_section = item.Item_getCurrentOwnerValue()
if source_section is not None:
if source_section.getUid() is not None:
pl_value = pl_dict[str(source_section.getUid())]
pl_value = pl_dict[str(source_section.getUid())]
else:
pl_value = pl_dict['UID']
pl_value = pl_dict['UID']
source = item.Item_getCurrentSiteValue()
resource = item.Item_getResourceValue()
......
......@@ -189,6 +189,7 @@ class TestKM(TestKMMixIn):
self.tic()
pads = knowledge_pad_module.ERP5Site_getKnowledgePadListForUser()
self.assertEqual(2, len(pads))
new_pad = None
for pad in pads:
pad = pad.getObject()
if pad == default_pad:
......
......@@ -884,6 +884,7 @@ class TestProductionOrderMixin(TestOrderMixin):
'operation/operation1')
component_resource = sequence.get('component1')
# for consumed_movement in (applied_rule.cr_1, applied_rule.cr_2):
operation_movement = component_movement = None
for consumed_movement in simulation_movement_list:
if consumed_movement.getResourceValue() == operation_resource:
operation_movement = consumed_movement
......@@ -1096,6 +1097,7 @@ class TestProductionOrderMixin(TestOrderMixin):
'operation/operation1')
component_resource = sequence.get('component1')
# for consumed_movement in (applied_rule.cr_1, applied_rule.cr_2):
operation_movement = component_movement = None
for consumed_movement in simulation_movement_list:
if consumed_movement.getResourceValue() == operation_resource:
operation_movement = consumed_movement
......@@ -1216,6 +1218,7 @@ class TestProductionOrderMixin(TestOrderMixin):
operation_resource = resource.portal_categories.resolveCategory(
'operation/operation2')
component_resource = sequence.get('component2')
operation_movement = component_movement = None
for consumed_movement in simulation_movement_list:
if consumed_movement.getResourceValue() == operation_resource:
operation_movement = consumed_movement
......
......@@ -12,7 +12,7 @@ for line in result:
resource = line.getResourceValue()
if resource is not None:
sender = line.getResourceValue().getPurchaseSupplyLineSource()
line.setCategoryMembership('source', sender)
line.setCategoryMembership('source', sender)
line.setCategoryMembership('price_currency', price_currency)
return result
......@@ -16,7 +16,7 @@ if selection_name is not None:
resource = line.getResourceValue()
if resource is not None:
sender = line.getResourceValue().getPurchaseSupplyLineSource()
line.setCategoryMembership('source', sender)
line.setCategoryMembership('source', sender)
line.setCategoryMembership('price_currency', price_currency)
result = aal.getTotalPrice()
......
......@@ -135,8 +135,7 @@ class ResourceVariationTestCase(ERP5TypeTestCase):
colour.newContent(portal_type='Category', title='Red',
reference='l',id='red')
if not self.portal_categories.hasContent('individual_aspect'):
aspect = self.portal_categories.newContent(portal_type='Base Category',
aspect = self.portal_categories.newContent(portal_type='Base Category',
title='Individual Aspect',
reference='individual_aspect',
id='individual_aspect',
......
......@@ -52,12 +52,10 @@ for requirement_item in requirements_items:
has_1st_level_requirement = True
new_1st_level_requirement = []
new_1st_level_requirement_title = requirement_item['title']
description_dict[new_1st_level_requirement_title] = ''
else:
has_1st_level_requirement = False
if has_1st_level_requirement:
description_dict[new_1st_level_requirement_title] = ''
# the item has a second level requirement, built it
if requirement_item['sub_title'] not in ('', None):
has_2nd_level_requirement = True
......
......@@ -477,6 +477,7 @@ class ERP5Conduit(XMLSyncUtilsMixin):
if get_target_parent:
result_list = result_list[:-1]
first_object = True
sub_context = None
while result_list:
object_block = result_list[0][0]
sub_context_id = result_list[0][3]
......
......@@ -147,6 +147,7 @@ class TaskDistributionTestCase(ERP5TypeTestCase):
"""start_count: number of test line to start
stop_count: number of test line to stop
"""
# pylint:disable=possibly-used-before-assignment
status_dict = {}
test_result_path, revision = self._createTestResult(revision=revision,
test_list=['testFoo', 'testBar'], test_title=test_title, node_title=node_title)
......@@ -168,6 +169,7 @@ class TaskDistributionTestCase(ERP5TypeTestCase):
self.assertEqual(test_result.getSimulationState(), "stopped")
else:
self.assertEqual(test_result.getSimulationState(), "started")
# pylint:enable=possibly-used-before-assignment
def _cleanupTestResult(self):
self.tic()
......
......@@ -21,7 +21,7 @@ if line_portal_type in portal.getPortalSaleTypeList():
section_uid = context.getSourceSectionUid()
elif line_portal_type in portal.getPortalPurchaseTypeList():
section_uid = context.getDestinationSectionUid()
elif line_portal_type in portal.getPortalInternalTypeList() + portal.getPortalInventoryMovementTypeList():
else:
section_uid = None
len_line_list = len(line_list)
used_id = [] # list use to make sure we do not generate two line with same id/uid
......
......@@ -29,6 +29,7 @@ for line in listbox:
product = source_document.getResourceValue()
else:
source_document = None
product = None
# update original line/cell if given
if source_document is not None:
......
......@@ -43,6 +43,7 @@ elif line_portal_type in portal.getPortalInternalTypeList():
elif line_portal_type in portal.getPortalInventoryMovementTypeList():
section_uid = None
no_inventory = True
supply_cell_portal_type = supply_line_id = None
use_list = portal.portal_preferences.getPreferredPurchaseUseList() \
+ portal.portal_preferences.getPreferredSaleUseList()
else:
......
......@@ -51,6 +51,8 @@ elif aggregation_level == "week":
date_format = "%Y-%U"
elif aggregation_level == "day":
date_format = "%Y-%m-%d"
else:
raise ValueError("Unsupported aggregation_level: %s" % aggregation_level)
if from_date is not None and at_date is not None:
catalog_params['delivery.start_date'] = {
......
......@@ -253,6 +253,7 @@ if force_base_url:
root_url = "/".join(base_url.split("/", 3)[:3])
if root_url != base_url:
base_url = "/".join(base_url.split("/")[:-1])
request_protocol = 'https:'
else:
request_protocol = context.REQUEST.SERVER_URL.split(":", 1)[0] + ":"
root_url = base_url_root_object.absolute_url()
......
......@@ -986,7 +986,8 @@ class ImmobilisableItem(Item, Amount):
raw_annuity_price = annuity_start_price * current_ratio
elif price_calculation_basis == "period recalculated start price":
raw_annuity_price = local_period_start_price * current_ratio
else:
raise ValueError("Unsupported price_calculation_basis: %s" % price_calculation_basis)
# Apply the prorata temporis on the raw annuity value
if annuity_number and \
price_calculation_basis == 'period recalculated start price' and \
......
......@@ -271,7 +271,7 @@ class AmountGeneratorMixin:
- is rounding really well supported (ie. before and after aggregation)
very likely not - proxying before or after must be decided
"""
# pylint:disable=self-cls-assignment
# pylint:disable=self-cls-assignment,possibly-used-before-assignment
# It is the only place where we can import this
portal = self.getPortalObject()
getRoundingProxy = portal.portal_roundings.getRoundingProxy
......
......@@ -87,7 +87,7 @@ class _Policy(six.with_metaclass(_PolicyMetaClass, object)):
if attr == 'merge_parent':
self.merge_parent = value = self.context.getRootAppliedRule().getPath()
else:
object.__getattribute__(self, attr)
value = object.__getattribute__(self, attr)
return value
def deferAll(self):
......
......@@ -8,6 +8,7 @@ request=context.REQUEST
# We stop doing this
#base_category = context.getBaseCategoryId()
base_category = None
redirect_url = None
o = context.restrictedTraverse(object_path)
......
......@@ -42,7 +42,7 @@ skin_id_list = context.getTemplateSkinIdList()
if skin_id_list:
if bt_title in skin_id_list:
main_skin_id = bt_title
elif skin_id_list:
else:
main_skin_id = skin_id_list[0]
form_path = '%s/%s' % (main_skin_id, field_library_id)
form = getForm(portal.portal_skins[main_skin_id], field_library_id)
......
......@@ -8,56 +8,61 @@ class CompatibilityDisableChecker(checkers.BaseChecker):
name = "compatibility-disable"
msgs = {
"E9990": (
"E9999": (
"not-an-iterable",
"not-an-iterable",
"",
),
"E9991": (
"E9998": (
"misplaced-bare-raise",
"misplaced-bare-raise",
"",
),
"W9992": (
"E9997": (
"unused-private-member",
"unused-private-member",
"",
),
"E9993": (
"E9996": (
"using-constant-test",
"using-constant-test",
""
),
"E9994": (
"E9995": (
"modified-iterating-list",
"modified-iterating-list",
"",
),
"E9995": (
"E9994": (
"unsubscriptable-object",
"unsubscriptable-object",
"",
),
"E9996": (
"E9993": (
"invalid-unary-operand-type",
"invalid-unary-operand-type",
"",
),
"E9997": (
"E9992": (
"unbalanced-dict-unpacking",
"unbalanced-dict-unpacking",
"",
),
"E9998": (
"E9991": (
"self-cls-assignment",
"self-cls-assignment",
"",
),
"E9999": (
"E9990": (
"deprecated-class",
"deprecated-class",
"",
),
"E9989": (
"possibly-used-before-assignment",
"possibly-used-before-assignment",
""
)
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment