Skip to content

Commit f87e778

Browse files
committed
automate branded client
1 parent a21beff commit f87e778

File tree

8 files changed

+39
-6
lines changed

8 files changed

+39
-6
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,3 +178,4 @@ FakesAssemblies/
178178
test/gui/config.ini
179179
test/gui/reports
180180
*/**/__pycache__/
181+
test/gui/users.json

test/gui/shared/scripts/bdd_hooks.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
from helpers.FilesHelper import prefix_path_namespace, cleanup_created_paths
3636
from helpers.ReportHelper import save_video_recording, take_screenshot, is_video_enabled
3737
import helpers.api.oc10 as oc
38+
from helpers.UserHelper import init_predefined_users
3839

3940
from pageObjects.Toolbar import Toolbar
4041
from pageObjects.AccountSetting import AccountSetting
@@ -56,6 +57,8 @@
5657
@OnFeatureStart
5758
def hook(context):
5859
init_config()
60+
if get_config("predefined_users"):
61+
init_predefined_users()
5962

6063

6164
# runs before every scenario

test/gui/shared/scripts/helpers/ConfigHelper.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ def get_default_home_dir():
7474
'tempFolderPath': 'TEMP_FOLDER_PATH',
7575
'clientConfigDir': 'CLIENT_CONFIG_DIR',
7676
'guiTestReportDir': 'GUI_TEST_REPORT_DIR',
77+
'branded_client': 'BRANDED_CLIENT',
78+
'predefined_users': 'PREDEFINED_USERS',
7779
'ocis': 'OCIS',
7880
'record_video_on_failure': 'RECORD_VIDEO_ON_FAILURE',
7981
}
@@ -97,6 +99,8 @@ def get_default_home_dir():
9799
'tempFolderPath': os.path.join(get_client_root_path(), 'temp'),
98100
'clientConfigDir': get_config_home(),
99101
'guiTestReportDir': os.path.abspath('../reports'),
102+
'branded_client': 'ocis',
103+
'predefined_users': False,
100104
'ocis': False,
101105
'record_video_on_failure': False,
102106
'files_for_upload': os.path.join(CURRENT_DIR.parent.parent, 'files-for-upload'),

test/gui/shared/scripts/helpers/SetupClientHelper.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
from helpers.ConfigHelper import get_config, set_config, is_windows
1111
from helpers.ReportHelper import is_video_enabled
1212

13+
from helpers.UserHelper import get_username_for_user, get_password_for_user
14+
1315

1416
def substitute_inline_codes(value):
1517
value = value.replace('%local_server%', get_config('localBackendUrl'))
@@ -37,9 +39,8 @@ def get_client_details(details):
3739
if row[0] == 'server':
3840
client_details.update({'server': row[1]})
3941
elif row[0] == 'user':
40-
client_details.update({'user': row[1]})
41-
elif row[0] == 'password':
42-
client_details.update({'password': row[1]})
42+
client_details.update({'user': get_username_for_user(row[1])})
43+
client_details.update({'password': get_password_for_user(row[1])})
4344
elif row[0] == 'sync_folder':
4445
client_details.update({'sync_folder': row[1]})
4546
return client_details

test/gui/shared/scripts/helpers/UserHelper.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
from base64 import b64encode
22
from typing import NamedTuple
3+
import json
4+
import os
35

46

57
class User(NamedTuple):
@@ -72,3 +74,20 @@ def get_displayname_for_user(username):
7274

7375
def get_password_for_user(username):
7476
return get_user_info(username, "password")
77+
78+
79+
def get_username_for_user(username):
80+
return get_user_info(username, "username")
81+
82+
83+
def init_predefined_users():
84+
global test_users
85+
with open(os.path.abspath("../users.json")) as f:
86+
users = json.load(f)
87+
for key, value in users.items():
88+
test_users.update({key: User(
89+
username=value["username"],
90+
password=value["password"],
91+
displayname=value["displayname"],
92+
email=value["email"],
93+
)})

test/gui/shared/scripts/helpers/WebUIHelper.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import re
2+
import random
23
import squish
34
from playwright.sync_api import sync_playwright, expect
45

test/gui/shared/scripts/helpers/api/provisioning.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ def add_user_to_group(user, group_name):
3232

3333

3434
def create_user(username):
35+
if get_config("predefined_users"):
36+
return
37+
3538
if username in UserHelper.test_users:
3639
user = UserHelper.test_users[username]
3740
else:

test/gui/shared/steps/account_context.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
get_client_details,
1111
get_resource_path,
1212
)
13-
from helpers.UserHelper import get_displayname_for_user, get_password_for_user
13+
from helpers.UserHelper import get_displayname_for_user, get_password_for_user, get_username_for_user
1414
from helpers.SyncHelper import (
1515
wait_for_initial_sync_to_complete,
1616
listen_sync_status_for_item,
@@ -28,6 +28,8 @@ def step(context):
2828

2929
@Then('the account with displayname "|any|" and host "|any|" should be displayed')
3030
def step(context, displayname, _):
31+
if get_config('predefined_users'):
32+
displayname = get_displayname_for_user(displayname.split()[0].strip())
3133
displayname = substitute_inline_codes(displayname)
3234
Toolbar.account_exists(displayname)
3335

@@ -48,9 +50,8 @@ def step(context, displayname, host):
4850

4951
@Given('user "|any|" has set up a client with default settings')
5052
def step(context, username):
51-
password = get_password_for_user(username)
5253
account_details = get_client_details(
53-
[['server', '%local_server%'], ['user', username], ['password', password]]
54+
[['server', '%local_server%'], ['user', username]]
5455
)
5556
start_client()
5657
AccountConnectionWizard.add_account(account_details)

0 commit comments

Comments
 (0)