Skip to content

Commit dfeb2cf

Browse files
committed
automate branded client
1 parent a21beff commit dfeb2cf

File tree

7 files changed

+37
-5
lines changed

7 files changed

+37
-5
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: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ def get_default_home_dir():
7474
'tempFolderPath': 'TEMP_FOLDER_PATH',
7575
'clientConfigDir': 'CLIENT_CONFIG_DIR',
7676
'guiTestReportDir': 'GUI_TEST_REPORT_DIR',
77+
'predefined_users': 'PREDEFINED_USERS',
7778
'ocis': 'OCIS',
7879
'record_video_on_failure': 'RECORD_VIDEO_ON_FAILURE',
7980
}
@@ -97,6 +98,7 @@ def get_default_home_dir():
9798
'tempFolderPath': os.path.join(get_client_root_path(), 'temp'),
9899
'clientConfigDir': get_config_home(),
99100
'guiTestReportDir': os.path.abspath('../reports'),
101+
'predefined_users': False,
100102
'ocis': False,
101103
'record_video_on_failure': False,
102104
'files_for_upload': os.path.join(CURRENT_DIR.parent.parent, 'files-for-upload'),

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
from helpers.ConfigHelper import get_config, set_config, is_windows
1111
from helpers.ReportHelper import is_video_enabled
12+
from helpers.UserHelper import get_username_for_user, get_password_for_user
1213

1314

1415
def substitute_inline_codes(value):
@@ -37,9 +38,8 @@ def get_client_details(details):
3738
if row[0] == 'server':
3839
client_details.update({'server': row[1]})
3940
elif row[0] == 'user':
40-
client_details.update({'user': row[1]})
41-
elif row[0] == 'password':
42-
client_details.update({'password': row[1]})
41+
client_details.update({'user': get_username_for_user(row[1])})
42+
client_details.update({'password': get_password_for_user(row[1])})
4343
elif row[0] == 'sync_folder':
4444
client_details.update({'sync_folder': row[1]})
4545
return client_details

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

Lines changed: 22 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,23 @@ 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+
with open(os.path.abspath("../users.json"), encoding="utf-8") as f:
85+
users = json.load(f)
86+
for key, value in users.items():
87+
test_users.update(
88+
{
89+
key: User(
90+
username=value["username"],
91+
password=value["password"],
92+
displayname=value["displayname"],
93+
email=value["email"],
94+
)
95+
}
96+
)

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: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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)