summaryrefslogtreecommitdiff
path: root/service/test/functional/features/environment.py
diff options
context:
space:
mode:
Diffstat (limited to 'service/test/functional/features/environment.py')
-rw-r--r--service/test/functional/features/environment.py41
1 files changed, 32 insertions, 9 deletions
diff --git a/service/test/functional/features/environment.py b/service/test/functional/features/environment.py
index 9f8507b2..98c7fa99 100644
--- a/service/test/functional/features/environment.py
+++ b/service/test/functional/features/environment.py
@@ -29,6 +29,8 @@ from pixelated.config.site import PixelatedSite
from pixelated.resources.features_resource import FeaturesResource
from test.support.integration import AppTestClient
from steps.common import DEFAULT_IMPLICIT_WAIT_TIMEOUT_IN_S
+from steps import utils
+from ..page_objects import BackupAccountPage
class UnsuportedWebDriverError(Exception):
@@ -51,19 +53,30 @@ def before_all(context):
if not context.host.startswith('http'):
context.host = 'https://{}'.format(context.host)
- hostname = urlparse(context.host).hostname
- context.signup_url = 'https://{}/signup'.format(hostname)
- context.login_url = 'https://mail.{}/login'.format(hostname)
- context.backup_account_url = 'https://mail.{}/backup-account'.format(hostname)
+ context.hostname = urlparse(context.host).hostname
+ context.signup_url = 'https://{}/signup'.format(context.hostname)
+ context.inbox_url = 'https://mail.{}'.format(context.hostname)
+ context.login_url = 'https://mail.{}/login'.format(context.hostname)
+ context.backup_account_url = 'https://mail.{}/backup-account'.format(context.hostname)
+ context.account_recovery_url = 'https://mail.{}/account-recovery'.format(context.hostname)
context.username = 'testuser_{}'.format(uuid.uuid4())
+ context.user_email = '{}@{}'.format(context.username, context.hostname)
if 'localhost' in context.host:
_mock_user_agent(context)
context.login_url = context.multi_user_url + '/login'
context.backup_account_url = context.single_user_url + '/backup-account'
+ context.account_recovery_url = context.single_user_url + '/account-recovery'
context.username = 'username'
+def before_tag(context, tag):
+ if tag == "require_user":
+ context.username = 'testuser_{}'.format(uuid.uuid4())
+ context.user_email = '{}@{}'.format(context.username, context.hostname)
+ utils.create_user(context)
+
+
def _setup_webdriver(context):
browser = context.config.userdata.get('webdriver', 'chrome')
supported_webdrivers = {
@@ -122,13 +135,24 @@ def after_feature(context, feature):
context.last_mail = None
+def after_scenario(context, scenario):
+ _logout(context)
+ context.browser.refresh()
+
+
def after_step(context, step):
- _debug_on_error(context, step)
- _save_screenshot(context, step)
+ if step.status == 'failed':
+ _debug_on_error(context, step)
+ _save_screenshot(context, step)
+ _logout(context)
+
+
+def _logout(context):
+ context.browser.delete_all_cookies()
def _debug_on_error(context, step):
- if step.status == 'failed' and context.config.userdata.getbool("debug"):
+ if context.config.userdata.getbool("debug"):
try:
import ipdb
ipdb.post_mortem(step.exc_traceback)
@@ -138,8 +162,7 @@ def _debug_on_error(context, step):
def _save_screenshot(context, step):
- if (step.status == 'failed' and
- context.config.userdata.getbool("screenshots", True)):
+ if context.config.userdata.getbool("screenshots", True):
timestamp = time.strftime("%Y-%m-%d-%H-%M-%S")
filename = _slugify('{} failed {}'.format(timestamp, str(step.name)))
filepath = os.path.join('screenshots', filename + '.png')