1- from __future__ import print_function
1+ import logging
2+ from pathlib import Path
23
34from 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
129class 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
3121class 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" )
0 commit comments