Skip to content

Commit bba3187

Browse files
authored
Settings initial refactoring (#38)
1 parent a1771ea commit bba3187

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+297
-223
lines changed

JDI/core/interfaces/element_index_type.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33

44
class ElementIndexType(Enum):
55
nums = "Nums"
6-
names = "Names"
6+
names = "Names"

JDI/core/logger/jdi_logger.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
from __future__ import with_statement
2+
23
import json
34
import logging
45
import logging.config
6+
from io import open
57

68
from JDI.core.settings.jdi_settings import PropertyPath
7-
from io import open
89

910

1011
class JDILogger(object):
11-
JDI_LOGGING_CONFIG_FILE_PATH = PropertyPath().get_property_file(file_name_init="logging.json")
12+
JDI_LOGGING_CONFIG_FILE_PATH = PropertyPath("logging.json").get_property_file()
1213

1314
def __init__(self, name="JDI Logger"):
1415

JDI/core/settings/jdi_settings.py

Lines changed: 29 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,21 @@
1-
from __future__ import print_function
1+
import logging
2+
from pathlib import Path
23

34
from JDI.jdi_assert.base.base_matcher import BaseMatcher
4-
import os
55

6-
try:
7-
FileNotFoundError
8-
except NameError:
9-
FileNotFoundError = IOError
6+
logger = logging.Logger(__name__)
107

118

129
class PropertyPath:
13-
def get_property_file(self, file_name_init="jdi.properties"):
14-
file_name = file_name_init
15-
i = 0
16-
dir_to_search = os.getcwd()
17-
print(dir_to_search)
18-
while True and i < 100:
19-
try:
20-
open(file_name)
21-
return file_name
22-
except FileNotFoundError:
23-
dir_to_search = os.path.dirname(dir_to_search)
24-
file_name = os.path.join(dir_to_search, file_name_init)
25-
i = i + 1
26-
raise FileNotFoundError("There is not property file with name '" + file_name_init + "' in your project")
27-
28-
path = property(get_property_file)
10+
def __init__(self, filename="jdi.properties"):
11+
self._filename = Path(filename)
12+
13+
def get_property_file(self):
14+
logger.info("Directory to search {dir_to_search}".format(dir_to_search=self._filename))
15+
if self._filename.exists():
16+
return self._filename
17+
else:
18+
raise FileNotFoundError("There is not property file with name '" + self._filename + "' in your project")
2919

3020

3121
class log:
@@ -38,48 +28,50 @@ def to_do_info_logging(self):
3828
@to_do_info_logging.setter
3929
def set_value(self, value):
4030
self.val = value
31+
4132
@to_do_info_logging.getter
4233
def get_value(self):
4334
return self.val
4435

4536

46-
class JDISettings(object):
37+
class JDISettings:
4738

4839
JDI_SETTINGS_FILE_PATH = PropertyPath().get_property_file()
4940

5041
__wait_element_sec = 20
5142
_driver_factory = None
5243
__logger = None
53-
_jdi_settings = None
44+
_jdi_settings = dict()
5445
asserter = BaseMatcher()
5546

5647
@staticmethod
57-
def get_driver_factory(): return JDISettings._driver_factory
48+
def get_driver_factory():
49+
return JDISettings._driver_factory
5850

5951
@staticmethod
6052
def _read_jdi_settings():
61-
if JDISettings._jdi_settings is None:
62-
f = open(JDISettings.JDI_SETTINGS_FILE_PATH)
53+
with open(JDISettings.JDI_SETTINGS_FILE_PATH) as f:
6354
JDISettings._jdi_settings = dict()
64-
for line in f:
65-
param = line.split("=")
66-
JDISettings._jdi_settings[param[0]] = param[1].strip()
55+
for line in f.readlines():
56+
if not line.startswith("#"):
57+
param = line.split("=")
58+
JDISettings._jdi_settings[param[0]] = param[1].strip()
6759

6860
@staticmethod
69-
def get_driver_path(): return JDISettings.get_setting_by_name("drivers_folder")
61+
def get_driver_path():
62+
return JDISettings.get_setting_by_name("drivers_folder")
7063

7164
@staticmethod
7265
def get_setting_by_name(setting_name):
73-
if JDISettings._jdi_settings is None or setting_name in JDISettings._jdi_settings:
66+
if not JDISettings._jdi_settings:
7467
JDISettings._read_jdi_settings()
75-
return JDISettings._jdi_settings[setting_name] if setting_name in JDISettings._jdi_settings else None
68+
return JDISettings._jdi_settings.get(setting_name, None)
7669

7770
@staticmethod
7871
def get_current_timeout_sec():
79-
prop = JDISettings.get_setting_by_name("timeout_wait_element")
80-
return JDISettings.__wait_element_sec if prop is None else prop
72+
timeout_wait_element = JDISettings.get_setting_by_name("timeout_wait_element")
73+
return JDISettings.__wait_element_sec if timeout_wait_element is None else timeout_wait_element
8174

8275
@staticmethod
8376
def get_domain():
84-
return JDISettings.get_setting_by_name("domain")
85-
77+
return JDISettings.get_setting_by_name("domain")

JDI/web/os_action/jdi_win32.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
import win32com.client
21
import time
32

3+
import win32com.client
4+
45

56
class jdi_win32:
67
@staticmethod

JDI/web/selenium/driver/selenium_driver_factory.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import os
22

3-
from selenium.webdriver.chrome.webdriver import WebDriver as ChromeDriver
4-
from selenium.webdriver.remote.webdriver import WebDriver as RemoteDriver
53
from selenium.webdriver.chrome.options import Options as ChromeOptions
6-
from selenium.webdriver.firefox.options import Options as FirefoxOptions
4+
from selenium.webdriver.chrome.webdriver import WebDriver as ChromeDriver
75
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
6+
from selenium.webdriver.firefox.options import Options as FirefoxOptions
7+
from selenium.webdriver.remote.webdriver import WebDriver as RemoteDriver
88

9+
from JDI.core.settings.jdi_settings import JDISettings
910
from JDI.web.selenium.driver.driver_types import DriverTypes
1011
from JDI.web.selenium.driver.web_driver_provider import WebDriverProvider
11-
from JDI.core.settings.jdi_settings import JDISettings
1212

1313

1414
class SeleniumDriverFactory(object):

JDI/web/selenium/driver/timer.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from __future__ import division
2+
23
import time
34

45

JDI/web/selenium/driver/web_driver_provider.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import os
2+
23
from JDI.core.settings.jdi_settings import JDISettings
34

5+
46
class WebDriverProvider(object):
57

68
@staticmethod

JDI/web/selenium/elements/actions/waiter.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import time
22

3+
34
def waiter_decorator(method_to_decorate):
45
def waiter(self, *args):
56
for i in range(0, 20):

JDI/web/selenium/elements/base/base_element.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
from JDI.web.selenium.elements.api_interact.get_element_module import GetElementModule
1+
from JDI.web.selenium.elements.api_interact.get_element_module import \
2+
GetElementModule
23

34

45
class BaseElement(object):

JDI/web/selenium/elements/base/clickable.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
from JDI.web.selenium.elements.base.element import Element
21
from JDI.core.utils.decorators import scenario
2+
from JDI.web.selenium.elements.base.element import Element
33

44

55
class Clickable(Element):

0 commit comments

Comments
 (0)