Skip to content

Commit 066b52b

Browse files
committed
ci: line too long fixing and Options browser_preferences property
1 parent 28a6634 commit 066b52b

File tree

4 files changed

+36
-5
lines changed

4 files changed

+36
-5
lines changed

pydoll/browser/chromium/base.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -639,7 +639,6 @@ def _set_browser_preferences_in_user_data_dir(self, user_data_dir: str):
639639
preferences = existing_prefs
640640
else:
641641
preferences = self.options.browser_preferences
642-
643642
with open(preferences_path, 'w', encoding='utf-8') as json_file:
644643
json.dump(preferences, json_file, indent=2)
645644

pydoll/browser/interfaces.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@ def start_timeout(self) -> int:
2121
def add_argument(self, argument: str):
2222
pass
2323

24+
@property
25+
@abstractmethod
26+
def browser_preferences(self) -> dict:
27+
pass
28+
2429

2530
class BrowserOptionsManager(ABC):
2631
@abstractmethod

pydoll/browser/options.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,8 @@ def browser_preferences(self, preferences: dict):
118118

119119
def _set_pref_path(self, path: list, value):
120120
"""
121-
Safely sets a nested value in self._browser_preferences, creating intermediate dicts as needed.
121+
Safely sets a nested value in self._browser_preferences,
122+
creating intermediate dicts as needed.
122123
123124
Arguments:
124125
path -- List of keys representing the nested
@@ -204,7 +205,9 @@ def password_manager_enabled(self, enabled: bool):
204205
"""
205206
self._password_manager_enabled = enabled
206207
self._set_pref_path(['profile', 'password_manager_enabled'], self._password_manager_enabled)
207-
self._set_pref_path(['credentials_enable_service'], self._password_manager_enabled) # todo: colocar em outra propriedade
208+
self._set_pref_path(
209+
['credentials_enable_service'], self._password_manager_enabled
210+
) # todo: colocar em outra propriedade
208211

209212
@property
210213
def block_notifications(self) -> bool:

tests/test_browser/test_browser_options.py

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import pytest
2-
32
from pydoll.browser.options import ChromiumOptions as Options
4-
3+
from pydoll.browser.interfaces import Options as OptionsInterface
54
from pydoll.exceptions import ArgumentAlreadyExistsInOptions, WrongPrefsDict
65

76

@@ -161,3 +160,28 @@ def test_wrong_dict_prefs_error():
161160
"download": {"directory_upgrade": True},
162161
}
163162
}
163+
164+
165+
def test_options_interface_enforcement():
166+
with pytest.raises(TypeError):
167+
OptionsInterface()
168+
class IncompleteOptions(OptionsInterface):
169+
pass
170+
with pytest.raises(TypeError):
171+
IncompleteOptions()
172+
class CompleteOptions(OptionsInterface):
173+
@property
174+
def arguments(self):
175+
return []
176+
@property
177+
def binary_location(self):
178+
return ''
179+
@property
180+
def start_timeout(self):
181+
return 0
182+
def add_argument(self, argument):
183+
pass
184+
@property
185+
def browser_preferences(self):
186+
return {}
187+
CompleteOptions()

0 commit comments

Comments
 (0)