Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,22 @@ def _validate_configuration(
"""Validate the job config and data and prepare the arguments
for the Zapper `provision` API.
"""
# We prefer using username/password in provision_plan
# while username/password are not defined in test_data
provision_plan = self.job_data.get("provision_data", {}).get(
"provision_plan", {}
)

config = provision_plan.get("config", {})

default_uname = config.get("username", "ubuntu")
default_password = config.get("password", "ubuntu")

username = self.job_data.get("test_data", {}).get(
"test_username", "ubuntu"
"test_username", default_uname
)
password = self.job_data.get("test_data", {}).get(
"test_password", "ubuntu"
"test_password", default_password
)
ubuntu_sso_email = self.job_data["provision_data"].get(
"ubuntu_sso_email"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ def test_validate_configuration_ubuntu_sso_email(self):
self.assertEqual(args, ())
self.assertDictEqual(kwargs, expected)

def test_validate_configuration_provision_plan(self):
def test_validate_configuration_provision_plan_without_test_data(self):
"""Test the function validates a custom test plan
when provided.
"""
Expand All @@ -85,6 +85,63 @@ def test_validate_configuration_provision_plan(self):

args, kwargs = device._validate_configuration()

expected = {
"username": "admin",
"password": "admin",
"custom_provision_plan": {
"config": {
"project_name": "name",
"username": "admin", # this gets overridden
"password": "admin",
"serial_console": {
"port": "/dev/ttySanity1",
"baud_rate": 115200,
},
"network": "eth0",
},
"run_stage": [
{"initial_login": {"method": "system-user"}},
],
},
"urls": [],
"preset": None,
"preset_kwargs": None,
}
self.maxDiff = None
self.assertEqual(args, ())
self.assertDictEqual(expected, kwargs)

def test_validate_configuration_provision_plan_with_test_data(self):
"""Test the function validates a custom test plan
when provided.
"""
device = DeviceConnector({})
device.job_data = {
"provision_data": {
"provision_plan": {
"config": {
"project_name": "name",
"username": "admin",
"password": "admin",
"serial_console": {
"port": "/dev/ttySanity1",
"baud_rate": 115200,
},
"network": "eth0",
},
"run_stage": [
{"initial_login": {"method": "system-user"}},
],
}
},
"test_data": {
"test_username": "ubuntu",
"test_password": "ubuntu",
},
}

args, kwargs = device._validate_configuration()

expected = {
"username": "ubuntu",
"password": "ubuntu",
Expand Down