diff options
author | Thais Siqueira <thais.siqueira@gmail.com> | 2017-04-17 17:27:55 -0300 |
---|---|---|
committer | Thais Siqueira <thais.siqueira@gmail.com> | 2017-04-17 17:27:55 -0300 |
commit | e6c10b18616edcbf9548af03c9d07a018100f07c (patch) | |
tree | d7c9df407548f300def5dc4d8793a3778d83ffa0 /service/test/functional/features | |
parent | e7f9489d73551eba9434efe2e39ba5e75ab003d7 (diff) |
Logs user out after failed functional test
https://github.com/pixelated/project-issues/issues/433
with @anikarni
Diffstat (limited to 'service/test/functional/features')
4 files changed, 18 insertions, 8 deletions
diff --git a/service/test/functional/features/environment.py b/service/test/functional/features/environment.py index bc2e1283..379583bc 100644 --- a/service/test/functional/features/environment.py +++ b/service/test/functional/features/environment.py @@ -30,6 +30,7 @@ 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): @@ -135,12 +136,21 @@ def after_feature(context, feature): 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, step) + + +def _logout(context, step): + if context.browser.current_url == context.inbox_url: + utils.log_out() + elif context.browser.current_url == context.backup_account_url: + BackupAccountPage().logout() 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) @@ -150,8 +160,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') diff --git a/service/test/functional/features/page_objects/__init__.py b/service/test/functional/features/page_objects/__init__.py index 920bf541..af50948c 100644 --- a/service/test/functional/features/page_objects/__init__.py +++ b/service/test/functional/features/page_objects/__init__.py @@ -17,3 +17,4 @@ from account_recovery_page import AccountRecoveryPage from base_page import BasePage from inbox_page import InboxPage +from backup_account_page import BackupAccountPage diff --git a/service/test/functional/features/page_objects/inbox_page.py b/service/test/functional/features/page_objects/inbox_page.py index 67ef1375..a6b5fef7 100644 --- a/service/test/functional/features/page_objects/inbox_page.py +++ b/service/test/functional/features/page_objects/inbox_page.py @@ -15,7 +15,7 @@ # along with Pixelated. If not, see <http://www.gnu.org/licenses/>. from base_page import BasePage -from common import execute_ignoring_staleness +from steps.common import execute_ignoring_staleness class InboxPage(BasePage): diff --git a/service/test/functional/features/steps/login.py b/service/test/functional/features/steps/login.py index a9dbb257..338550b3 100644 --- a/service/test/functional/features/steps/login.py +++ b/service/test/functional/features/steps/login.py @@ -57,8 +57,8 @@ def see_interstitial(context): @then(u'I should see the inbox') -def see_interstitial(context): - find_element_by_css_selector(context, 'ul#mail-list') +def see_inbox(context): + _see_inbox(context) @then(u'I logout') |