diff --git a/requirements.txt b/requirements.txt index 377c7c9f97eac1d0c40fe4289561fc668c3902f9..90e189fe79eb878c9fc871a5f6e8306a4c968d2d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -16,3 +16,4 @@ setuptools>=40.6.2 wheel>=0.33.1 pytz>=2019.1 -e git+https://open.greenhost.net/greenhost/cloud-api#egg=greenhost_cloud +-e git+https://open.greenhost.net/openappstack/oas_behave#egg=oas_behave diff --git a/test/behave/features/environment.py b/test/behave/features/environment.py deleted file mode 100644 index d8058db1ec337c41ff65ff5b4279122f18b18b79..0000000000000000000000000000000000000000 --- a/test/behave/features/environment.py +++ /dev/null @@ -1,90 +0,0 @@ -"""Basic setup for behave using chrome(ium) or firefox.""" -import behave_webdriver -import os -import re -import time - - -def save_screenshot(context, step): - """Save a screenshot to ./screenshots.""" - timestamp = time.strftime("%Y-%m-%dT%H:%M:%S") - filename = re.sub(r'\W', '-', '{} failed {}'.format(timestamp, - str(step.name))) - filepath = os.path.join('screenshots', filename + '.png') - if not os.path.exists('screenshots'): - os.mkdir('screenshots') - - print('Saving screenshot to %s' % filepath) - context.behave_driver.save_screenshot(filepath) - - -def before_all(context): - """Run at the very beginning.""" - def setup_chrome(): - from behave_webdriver.driver import ChromeOptions - chrome_options = ChromeOptions() - if headless == 'True': - chrome_options.add_argument('--headless') - chrome_options.add_argument('--no-sandbox') - chrome_options.add_argument('--disable-dev-shm-usage') - context.behave_driver = behave_webdriver.Chrome( - chrome_options=chrome_options) - - def setup_firefox(): - from behave_webdriver.driver import FirefoxOptions - firefox_options = FirefoxOptions() - if headless == 'True': - firefox_options.add_argument('--headless') - context.behave_driver = behave_webdriver.Firefox( - firefox_options=firefox_options, - service_log_path='/tmp/firefox.log') - - userdata = context.config.userdata - headless = userdata.get('headless', 'False') - browser = userdata.get('browser', 'chrome') - if browser == 'chrome': - setup_chrome() - elif browser == 'firefox': - setup_firefox() - - -def before_tag(context, tag): - """Define steps run before each tag.""" - def get_values(app): - values = {} - values['url'] = userdata.get(app + '.url') - values['username'] = \ - userdata.get(app + '.username', 'admin') - values['password'] = \ - userdata.get(app + '.password') - assert values['url'], '{0}.url variable missing in' \ - 'userdata. Provide it with "-D {0}.url".'.format(app) - assert values['username'], '{0}.username variable missing in' \ - 'userdata. Provide it with "-D {0}.username".'.format(app) - assert values['password'], '{0}.password variable missing in' \ - 'userdata. Provide it with "-D {0}.password".'.format(app) - return(values) - - userdata = context.config.userdata - if tag == 'grafana': - context.grafana = get_values('grafana') - - if tag == 'nextcloud': - context.nextcloud = get_values('nextcloud') - - -def after_all(context): - """Cleanup after tests run.""" - context.behave_driver.quit() - - -def after_step(context, step): - """Save screeshot if step fails.""" - if step.status == 'failed': - save_screenshot(context, step) - print("Console log output:") - for message in context.behave_driver.get_log('browser'): - print(" Level: {}".format(message['level'])) - print(" Timestamp: {}".format(message['timestamp'])) - print(" Source: {}".format(message['source'])) - print(" Message: {}\n".format(message['message'])) diff --git a/test/behave/features/steps/login.py b/test/behave/features/steps/login.py deleted file mode 100644 index b45ad5b90eb67616aa108e61e3c212cba674a031..0000000000000000000000000000000000000000 --- a/test/behave/features/steps/login.py +++ /dev/null @@ -1,56 +0,0 @@ -"""Custom steps for login tests.""" - -import random -import string - -from behave import given, when -from behave_webdriver.steps import * - - -def before_all(context): - pass # login and save cookies here - -@when(u'I open the onlyoffice URL') -@given(u'I open the onlyoffice URL') -def step_impl(context): - """Open onlyoffice URL.""" - print(context.nextcloud) - context.behave_driver.get(context.config.userdata.get('onlyoffice.url')) - -@when(u'I open the nextcloud URL') -@given(u'I open the nextcloud URL') -def step_impl(context): - """Open nextcloud URL.""" - context.behave_driver.get(context.nextcloud['url']) - - -@when(u'I open the grafana URL') -@given(u'I open the grafana URL') -def step_impl(context): - """Open grafana URL.""" - context.behave_driver.get(context.grafana['url']) - -@when(u'I enter the "{section}" "{cred_type}" in the inputfield "{element}"') -def step_impl(context, section, cred_type, element): - """Enter username/password into login inputfields.""" - elem = context.behave_driver.get_element(element) - elem.clear() - - context_section = getattr(context, section) - value = context_section[cred_type] - elem.send_keys(value) - -@when(u'I add a random string to the inputfield "{element}"') -def step_impl(context, element): - """Add a random string of 20 characters to the specified input field""" - random_string = ''.join(random.choices(string.ascii_letters, k=20)) - context.execute_steps( - 'When I add "{}" to the inputfield "{}"'.format( - random_string, element)) - -@when(u'I close the nextcloud welcome wizard if it exists') -def step_impl(context): - """Checks if the #firstrunwizard element exists and closes it if so""" - if context.behave_driver.element_exists("#firstrunwizard"): - context.execute_steps( - 'When I click on the element "a.close.icon-close"')