[py] instance attributes in Timeout class are now being set through setter… #12186
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Thanks for contributing to Selenium!
A PR well described will help maintainers to quickly review and merge it
Before submitting your PR, please check our contributing guidelines.
Avoid large PRs, help reviewers by making them as simple and short as possible.
Description
[py] all assignments to instance attributes in
Timeouts
class are now being set through setter method.Motivation and Context
In class
Timeouts
undercommon/timeouts.py
, three instance attributes are being set in the__init__
method.self._implicit_wait
,self._page_load
andself._script
.The problem with this approach is that we are directly assigning converted values from
self._convert
method to internal variablesself._implicit_wait
,self._page_load
andself._script
by by-passing setter methods (@implicit_wait.setter
,@page_load.setter
,@script.setter
) while creating of the object.The setter methods comes into play only when we are directly assigning values to instance attributes, e.g.
self.implicit_wait = 10
orself.page_load = 30
. Now this assignment goes through setter methods.Ultimately the setter methods are setting values to internal variables
_implicit_wait
,_page_load
and_script
.So the change that I am suggesting is that, instead of directly assigning internal attributes in
__init__
method, let the assignment go through setter method.self.implicit_wait = implicit_wait
self.page_load = page_load
self.script = script
the above statements would call corresponding setter methods, which in-turn sets internal attributes
_implicit_wait
,_page_load
and_script
. In this case we are doing an assignment to a property descriptor (data descriptor) which goes through@implicit_wait.setter
,@page_load.setter
,@script.setter
methods.Types of changes
Checklist