Skip to content

Commit

Permalink
fixed #51: Merge branch 'SergeyPirogov-feature/env-config-variables'
Browse files Browse the repository at this point in the history
  • Loading branch information
yashaka committed Feb 23, 2017
2 parents 74f0096 + 171a77f commit fcf073c
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 18 deletions.
5 changes: 4 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@

## 1.0.0ax (next from master branch)
- naming changes:
- tbd...
- tbd
- upcoming breaking changes:
- selene.config.app_host renamed to selene.config.base_url
- selene.config.app_host still works but will be removed in next versions

## 1.0.0a8 (released 16.02.2017)
- new features added
Expand Down
37 changes: 23 additions & 14 deletions selene/config.py
Original file line number Diff line number Diff line change
@@ -1,27 +1,36 @@
# todo: make the properties also "object oriented" to support different configs per different SeleneDriver instances
# todo: make the properties also 'object oriented' to support different configs per different SeleneDriver instances
import itertools
import os
import time

from selene.browsers import Browser
from selene.helpers import env

timeout = 4
poll_during_waits = 0.1
app_host = ''

timeout = env('selene_timeout') or 4
poll_during_waits = env('selene_poll_during_waits') or 0.1

base_url = env('selene_base_url') or ''
app_host = None
# todo: we may probably refactor selene.config to selene.browser.config where config - is an object, not a module
# todo: then it would be better to add warnings.warn("use base_url instead", DeprecationWarning)

# todo: make cashing work (currently will not work...)
cash_elements = False
"""To cash all elements after first successful find
config.cash_elements = True"""
cash_elements = env('selene_cache_elements') == 'True' or False
'''To cash all elements after first successful find
config.cash_elements = True'''

browser_name = env('selene_browser_name') or Browser.FIREFOX

maximize_window = False if env('selene_maximize_window') == 'False' else True

hold_browser_open = env('selene_hold_browser_open') == 'True' or False

browser_name = Browser.FIREFOX
maximize_window = True
hold_browser_open = False
counter = itertools.count(start=int(round(time.time() * 1000)))

screenshot_folder = os.path.join(os.path.expanduser("~"),
".selene",
"screenshots",
str(next(counter)))
screenshot_folder = env('selene_screenshot_folder') or os.path.join(os.path.expanduser('~'),
'.selene',
'screenshots',
str(next(counter)))

desired_capabilities = None
7 changes: 7 additions & 0 deletions selene/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,10 @@ def css_or_by_to_by(css_selector_or_by):
if isinstance(css_selector_or_by, str):
return (By.CSS_SELECTOR, css_selector_or_by)
raise TypeError('css_selector_or_by should be str with CSS selector or Tuple[by:str, value:str]')


def env(key):
try:
return os.environ[key]
except KeyError:
return None
8 changes: 5 additions & 3 deletions selene/tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,18 +31,20 @@ def visit(absolute_or_relative_url):
"""
Loads a web page in the current browser session.
:param absolute_or_relative_url:
an absolute url to web page in case of config.app_host is not specified,
an absolute url to web page in case of config.base_url is not specified,
otherwise - relative url correspondingly
:Usage:
visit('http://mydomain.com/subpage1')
visit('http://mydomain.com/subpage2')
# OR
config.app_host = 'http://mydomain.com'
config.base_url = 'http://mydomain.com'
visit('/subpage1')
visit('/subpage2')
"""
get_driver().get(selene.config.app_host + absolute_or_relative_url)
# todo: refactor next line when app_host is removed
base_url = selene.config.app_host if selene.config.app_host else selene.config.base_url
get_driver().get(base_url + absolute_or_relative_url)


def s(css_selector_or_by):
Expand Down

0 comments on commit fcf073c

Please sign in to comment.