Merge "Update gstorage, create_cuttlefish_action, and others to be pylint compliant."
diff --git a/internal/lib/gstorage_client.py b/internal/lib/gstorage_client.py
index ebf6087..6c2e1e9 100755
--- a/internal/lib/gstorage_client.py
+++ b/internal/lib/gstorage_client.py
@@ -18,7 +18,6 @@
import io
import logging
-import os
import apiclient
@@ -52,8 +51,8 @@
Returns:
A dictronary representing an object resource.
"""
- request = self.service.objects().get(bucket=bucket_name,
- object=object_name)
+ request = self.service.objects().get(
+ bucket=bucket_name, object=object_name)
return self.Execute(request)
def List(self, bucket_name, prefix=None):
@@ -91,11 +90,10 @@
logger.info("Uploading file: src: %s, bucket: %s, object: %s",
local_src, bucket_name, object_name)
try:
- with io.FileIO(local_src, mode="rb") as fh:
- media = apiclient.http.MediaIoBaseUpload(fh, mime_type)
- request = self.service.objects().insert(bucket=bucket_name,
- name=object_name,
- media_body=media)
+ with io.FileIO(local_src, mode="rb") as upload_file:
+ media = apiclient.http.MediaIoBaseUpload(upload_file, mime_type)
+ request = self.service.objects().insert(
+ bucket=bucket_name, name=object_name, media_body=media)
response = self.Execute(request)
logger.info("Uploaded artifact: %s", response["selfLink"])
return response
@@ -112,8 +110,8 @@
"""
logger.info("Deleting file: bucket: %s, object: %s", bucket_name,
object_name)
- request = self.service.objects().delete(bucket=bucket_name,
- object=object_name)
+ request = self.service.objects().delete(
+ bucket=bucket_name, object=object_name)
self.Execute(request)
logger.info("Deleted file: bucket: %s, object: %s", bucket_name,
object_name)
@@ -158,8 +156,10 @@
errors.ResourceNotFoundError: when file is not found.
"""
item = utils.RetryExceptionType(
- errors.ResourceNotFoundError,
- max_retries=self.GET_OBJ_MAX_RETRY, functor=self.Get,
- sleep_multiplier=self.GET_OBJ_RETRY_SLEEP,
- bucket_name=bucket_name, object_name=object_name)
+ errors.ResourceNotFoundError,
+ max_retries=self.GET_OBJ_MAX_RETRY,
+ functor=self.Get,
+ sleep_multiplier=self.GET_OBJ_RETRY_SLEEP,
+ bucket_name=bucket_name,
+ object_name=object_name)
return item["selfLink"]
diff --git a/public/actions/create_cuttlefish_action.py b/public/actions/create_cuttlefish_action.py
index 40f1b99..b5b1903 100644
--- a/public/actions/create_cuttlefish_action.py
+++ b/public/actions/create_cuttlefish_action.py
@@ -21,7 +21,6 @@
"""
import logging
-import os
from acloud.public.actions import common_operations
from acloud.public.actions import base_device_factory
@@ -38,60 +37,69 @@
class CuttlefishDeviceFactory(base_device_factory.BaseDeviceFactory):
- """A class that can produce a cuttlefish device.
- """
+ """A class that can produce a cuttlefish device.
- def __init__(self, cfg, build_target, build_id, kernel_build_id=None):
- self.credentials = auth.CreateCredentials(cfg, ALL_SCOPES)
+ Attributes:
+ cfg: An AcloudConfig instance.
+ build_target: String,Target name.
+ build_id: String, Build id, e.g. "2263051", "P2804227"
+ kernel_build_id: String, Kernel build id.
- compute_client = cvd_compute_client.CvdComputeClient(cfg, self.credentials)
- super(CuttlefishDeviceFactory, self).__init__(compute_client)
-
- # Private creation parameters
- self._cfg = cfg
- self._build_target = build_target
- self._build_id = build_id
- self._kernel_build_id = kernel_build_id
- self._blank_data_disk_size_gb = cfg.extra_data_disk_size_gb
-
- # Configure clients for interaction with GCE/Build servers
- self._build_client = android_build_client.AndroidBuildClient(
- self.credentials)
-
- # Discover branches
- self._branch = self._build_client.GetBranch(build_target, build_id)
- self._kernel_branch = None
- if kernel_build_id:
- self._kernel_branch = self._build_client.GetBranch(
- cfg.kernel_build_target, kernel_build_id)
-
- def CreateInstance(self):
- """Creates singe configured cuttlefish device.
-
- Override method from parent class.
-
- Returns:
- The name of the created instance.
"""
- # Create host instances for cuttlefish device. Currently one host instance
- # has one cuttlefish device. In the future, these logics should be modified
- # to support multiple cuttlefish devices per host instance.
- instance = self._compute_client.GenerateInstanceName(self._build_id)
+ def __init__(self, cfg, build_target, build_id, kernel_build_id=None):
- # Create an instance from Stable Host Image
- self._compute_client.CreateInstance(
- instance=instance,
- image_name=self._cfg.stable_host_image_name,
- image_project=self._cfg.stable_host_image_project,
- build_target=self._build_target,
- branch=self._branch,
- build_id=self._build_id,
- kernel_branch=self._kernel_branch,
- kernel_build_id=self._kernel_build_id,
- blank_data_disk_size_gb=self._blank_data_disk_size_gb)
+ self.credentials = auth.CreateCredentials(cfg, ALL_SCOPES)
- return instance
+ compute_client = cvd_compute_client.CvdComputeClient(
+ cfg, self.credentials)
+ super(CuttlefishDeviceFactory, self).__init__(compute_client)
+
+ # Private creation parameters
+ self._cfg = cfg
+ self._build_target = build_target
+ self._build_id = build_id
+ self._kernel_build_id = kernel_build_id
+ self._blank_data_disk_size_gb = cfg.extra_data_disk_size_gb
+
+ # Configure clients for interaction with GCE/Build servers
+ self._build_client = android_build_client.AndroidBuildClient(
+ self.credentials)
+
+ # Discover branches
+ self._branch = self._build_client.GetBranch(build_target, build_id)
+ self._kernel_branch = None
+ if kernel_build_id:
+ self._kernel_branch = self._build_client.GetBranch(
+ cfg.kernel_build_target, kernel_build_id)
+
+ def CreateInstance(self):
+ """Creates singe configured cuttlefish device.
+
+ Override method from parent class.
+
+ Returns:
+ A string, representing instance name.
+ """
+
+ # Create host instances for cuttlefish device. Currently one host instance
+ # has one cuttlefish device. In the future, these logics should be modified
+ # to support multiple cuttlefish devices per host instance.
+ instance = self._compute_client.GenerateInstanceName(self._build_id)
+
+ # Create an instance from Stable Host Image
+ self._compute_client.CreateInstance(
+ instance=instance,
+ image_name=self._cfg.stable_host_image_name,
+ image_project=self._cfg.stable_host_image_project,
+ build_target=self._build_target,
+ branch=self._branch,
+ build_id=self._build_id,
+ kernel_branch=self._kernel_branch,
+ kernel_build_id=self._kernel_build_id,
+ blank_data_disk_size_gb=self._blank_data_disk_size_gb)
+
+ return instance
def CreateDevices(cfg,
@@ -102,29 +110,31 @@
serial_log_file=None,
logcat_file=None,
autoconnect=False):
- """Create one or multiple Cuttlefish devices.
+ """Create one or multiple Cuttlefish devices.
- Args:
- cfg: An AcloudConfig instance.
- build_target: Target name.
- build_id: Build id, a string, e.g. "2263051", "P2804227"
- kernel_build_id: Kernel build id, a string.
- num: Number of devices to create.
- serial_log_file: A path to a file where serial output should
+ Args:
+ cfg: An AcloudConfig instance.
+ build_target: String, Target name.
+ build_id: String, Build id, e.g. "2263051", "P2804227"
+ kernel_build_id: String, Kernel build id.
+ num: Integer, Number of devices to create.
+ serial_log_file: String, A path to a file where serial output should
be saved to.
- logcat_file: A path to a file where logcat logs should be saved.
- autoconnect: Create ssh tunnel(s) and adb connect after device creation.
+ logcat_file: String, A path to a file where logcat logs should be saved.
+ autoconnect: Boolean, Create ssh tunnel(s) and adb connect after device creation.
- Returns:
- A Report instance.
- """
- # TODO(fdeng, pinghao): Implement copying files from the instance, including
- # the serial log (kernel log), and logcat log files.
- # TODO(fdeng, pinghao): Implement autoconnect.
- logger.info("Creating a cuttlefish device in project %s, build_target: %s, "
- "build_id: %s, num: %s, serial_log_file: %s, logcat_file: %s, "
- "autoconnect: %s", cfg.project, build_target, build_id, num,
- serial_log_file, logcat_file, autoconnect)
- device_factory = CuttlefishDeviceFactory(cfg, build_target, build_id,
- kernel_build_id)
- return common_operations.CreateDevices("create_cf", cfg, device_factory, num)
+ Returns:
+ A Report instance.
+ """
+ # TODO: Implement copying files from the instance, including
+ # the serial log (kernel log), and logcat log files.
+ # TODO: Implement autoconnect.
+ logger.info(
+ "Creating a cuttlefish device in project %s, build_target: %s, "
+ "build_id: %s, num: %s, serial_log_file: %s, logcat_file: %s, "
+ "autoconnect: %s", cfg.project, build_target, build_id, num,
+ serial_log_file, logcat_file, autoconnect)
+ device_factory = CuttlefishDeviceFactory(cfg, build_target, build_id,
+ kernel_build_id)
+ return common_operations.CreateDevices("create_cf", cfg, device_factory,
+ num)
diff --git a/public/actions/create_cuttlefish_action_test.py b/public/actions/create_cuttlefish_action_test.py
index a8f9c12..8d948bf 100644
--- a/public/actions/create_cuttlefish_action_test.py
+++ b/public/actions/create_cuttlefish_action_test.py
@@ -20,10 +20,9 @@
"""
import uuid
-
+import unittest
import mock
-import unittest
from acloud.internal.lib import android_build_client
from acloud.internal.lib import android_compute_client
from acloud.internal.lib import auth
@@ -33,93 +32,96 @@
class CreateCuttlefishActionTest(driver_test_lib.BaseDriverTest):
- """Test create_cuttlefish_action."""
+ """Test create_cuttlefish_action."""
- IP = "127.0.0.1"
- INSTANCE = "fake-instance"
- IMAGE = "fake-image"
- BUILD_TARGET = "fake-build-target"
- BUILD_ID = "12345"
- KERNEL_BUILD_ID = "54321"
- BRANCH = "fake-branch"
- STABLE_HOST_IMAGE_NAME = "fake-stable-host-image-name"
- STABLE_HOST_IMAGE_PROJECT = "fake-stable-host-image-project"
- EXTRA_DATA_DISK_GB = 4
+ IP = "127.0.0.1"
+ INSTANCE = "fake-instance"
+ IMAGE = "fake-image"
+ BUILD_TARGET = "fake-build-target"
+ BUILD_ID = "12345"
+ KERNEL_BUILD_ID = "54321"
+ BRANCH = "fake-branch"
+ STABLE_HOST_IMAGE_NAME = "fake-stable-host-image-name"
+ STABLE_HOST_IMAGE_PROJECT = "fake-stable-host-image-project"
+ EXTRA_DATA_DISK_GB = 4
- def setUp(self):
- """Set up the test."""
- super(CreateCuttlefishActionTest, self).setUp()
- self.build_client = mock.MagicMock()
- self.Patch(android_build_client, "AndroidBuildClient",
- return_value=self.build_client)
- self.compute_client = mock.MagicMock()
- self.Patch(cvd_compute_client, "CvdComputeClient",
- return_value=self.compute_client)
- self.Patch(android_compute_client, "AndroidComputeClient",
- return_value=self.compute_client)
- self.Patch(auth, "CreateCredentials", return_value=mock.MagicMock())
+ def setUp(self):
+ """Set up the test."""
+ super(CreateCuttlefishActionTest, self).setUp()
+ self.build_client = mock.MagicMock()
+ self.Patch(
+ android_build_client,
+ "AndroidBuildClient",
+ return_value=self.build_client)
+ self.compute_client = mock.MagicMock()
+ self.Patch(
+ cvd_compute_client,
+ "CvdComputeClient",
+ return_value=self.compute_client)
+ self.Patch(
+ android_compute_client,
+ "AndroidComputeClient",
+ return_value=self.compute_client)
+ self.Patch(auth, "CreateCredentials", return_value=mock.MagicMock())
- def _CreateCfg(self):
- """A helper method that creates a mock configuration object."""
- cfg = mock.MagicMock()
- cfg.service_account_name = "fake@service.com"
- cfg.service_account_private_key_path = "/fake/path/to/key"
- cfg.zone = "fake_zone"
- cfg.disk_image_name = "fake_image.tar.gz"
- cfg.disk_image_mime_type = "fake/type"
- cfg.ssh_private_key_path = ""
- cfg.ssh_public_key_path = ""
- cfg.stable_host_image_name = self.STABLE_HOST_IMAGE_NAME
- cfg.stable_host_image_project = self.STABLE_HOST_IMAGE_PROJECT
- cfg.extra_data_disk_size_gb = self.EXTRA_DATA_DISK_GB
- return cfg
+ def _CreateCfg(self):
+ """A helper method that creates a mock configuration object."""
+ cfg = mock.MagicMock()
+ cfg.service_account_name = "fake@service.com"
+ cfg.service_account_private_key_path = "/fake/path/to/key"
+ cfg.zone = "fake_zone"
+ cfg.disk_image_name = "fake_image.tar.gz"
+ cfg.disk_image_mime_type = "fake/type"
+ cfg.ssh_private_key_path = ""
+ cfg.ssh_public_key_path = ""
+ cfg.stable_host_image_name = self.STABLE_HOST_IMAGE_NAME
+ cfg.stable_host_image_project = self.STABLE_HOST_IMAGE_PROJECT
+ cfg.extra_data_disk_size_gb = self.EXTRA_DATA_DISK_GB
+ return cfg
- def testCreateDevices(self):
- """Test CreateDevices."""
- cfg = self._CreateCfg()
+ def testCreateDevices(self):
+ """Test CreateDevices."""
+ cfg = self._CreateCfg()
- # Mock uuid
- fake_uuid = mock.MagicMock(hex="1234")
- self.Patch(uuid, "uuid4", return_value=fake_uuid)
+ # Mock uuid
+ fake_uuid = mock.MagicMock(hex="1234")
+ self.Patch(uuid, "uuid4", return_value=fake_uuid)
- # Mock compute client methods
- self.compute_client.GetInstanceIP.return_value = self.IP
- self.compute_client.GenerateImageName.return_value = self.IMAGE
- self.compute_client.GenerateInstanceName.return_value = self.INSTANCE
+ # Mock compute client methods
+ self.compute_client.GetInstanceIP.return_value = self.IP
+ self.compute_client.GenerateImageName.return_value = self.IMAGE
+ self.compute_client.GenerateInstanceName.return_value = self.INSTANCE
- # Mock build client method
- self.build_client.GetBranch.return_value = self.BRANCH
+ # Mock build client method
+ self.build_client.GetBranch.return_value = self.BRANCH
- # Call CreateDevices
- r = create_cuttlefish_action.CreateDevices(
- cfg, self.BUILD_TARGET, self.BUILD_ID, self.KERNEL_BUILD_ID)
+ # Call CreateDevices
+ report = create_cuttlefish_action.CreateDevices(
+ cfg, self.BUILD_TARGET, self.BUILD_ID, self.KERNEL_BUILD_ID)
- # Verify
- self.compute_client.CreateInstance.assert_called_with(
- instance=self.INSTANCE,
- image_name=self.STABLE_HOST_IMAGE_NAME,
- image_project=self.STABLE_HOST_IMAGE_PROJECT,
- build_target=self.BUILD_TARGET,
- branch=self.BRANCH,
- build_id=self.BUILD_ID,
- kernel_branch=self.BRANCH,
- kernel_build_id=self.KERNEL_BUILD_ID,
- blank_data_disk_size_gb=self.EXTRA_DATA_DISK_GB)
+ # Verify
+ self.compute_client.CreateInstance.assert_called_with(
+ instance=self.INSTANCE,
+ image_name=self.STABLE_HOST_IMAGE_NAME,
+ image_project=self.STABLE_HOST_IMAGE_PROJECT,
+ build_target=self.BUILD_TARGET,
+ branch=self.BRANCH,
+ build_id=self.BUILD_ID,
+ kernel_branch=self.BRANCH,
+ kernel_build_id=self.KERNEL_BUILD_ID,
+ blank_data_disk_size_gb=self.EXTRA_DATA_DISK_GB)
- self.assertEquals(
- r.data,
- {
+ self.assertEquals(report.data, {
"devices": [
{
"instance_name": self.INSTANCE,
"ip": self.IP,
},
],
- }
- )
- self.assertEquals(r.command, "create_cf")
- self.assertEquals(r.status, "SUCCESS")
+ })
+ self.assertEquals(report.command, "create_cf")
+ self.assertEquals(report.status, "SUCCESS")
if __name__ == "__main__":
- unittest.main()
+ unittest.main()
diff --git a/public/config.py b/public/config.py
index 86e305a..f40d001 100755
--- a/public/config.py
+++ b/public/config.py
@@ -46,10 +46,12 @@
import logging
import os
+from google.protobuf import text_format
+
from acloud.internal.proto import internal_config_pb2
from acloud.internal.proto import user_config_pb2
from acloud.public import errors
-from google.protobuf import text_format
+
_CONFIG_DATA_PATH = os.path.join(
os.path.dirname(os.path.abspath(__file__)), "data")
@@ -72,6 +74,7 @@
internal_cfg: A protobuf object that holds internal configurations.
"""
self.service_account_name = usr_cfg.service_account_name
+ # pylint: disable=invalid-name
self.service_account_private_key_path = (
usr_cfg.service_account_private_key_path)
self.creds_cache_file = internal_cfg.creds_cache_file
@@ -83,31 +86,28 @@
self.zone = usr_cfg.zone
self.machine_type = (usr_cfg.machine_type or
internal_cfg.default_usr_cfg.machine_type)
- self.network = (usr_cfg.network or
- internal_cfg.default_usr_cfg.network)
+ self.network = usr_cfg.network or internal_cfg.default_usr_cfg.network
self.ssh_private_key_path = usr_cfg.ssh_private_key_path
self.ssh_public_key_path = usr_cfg.ssh_public_key_path
self.storage_bucket_name = usr_cfg.storage_bucket_name
self.metadata_variable = {
- key: val
- for key, val in
+ key: val for key, val in
internal_cfg.default_usr_cfg.metadata_variable.iteritems()
}
self.metadata_variable.update(usr_cfg.metadata_variable)
self.device_resolution_map = {
- device: resolution
- for device, resolution in
+ device: resolution for device, resolution in
internal_cfg.device_resolution_map.iteritems()
}
self.device_default_orientation_map = {
- device: orientation
- for device, orientation in
+ device: orientation for device, orientation in
internal_cfg.device_default_orientation_map.iteritems()
}
self.no_project_access_msg_map = {
- project: msg for project, msg
- in internal_cfg.no_project_access_msg_map.iteritems()}
+ project: msg for project, msg in
+ internal_cfg.no_project_access_msg_map.iteritems()
+ }
self.min_machine_size = internal_cfg.min_machine_size
self.disk_image_name = internal_cfg.disk_image_name
self.disk_image_mime_type = internal_cfg.disk_image_mime_type
@@ -115,13 +115,11 @@
self.disk_raw_image_name = internal_cfg.disk_raw_image_name
self.disk_raw_image_extension = internal_cfg.disk_raw_image_extension
self.valid_branch_and_min_build_id = {
- branch: min_build_id
- for branch, min_build_id in
+ branch: min_build_id for branch, min_build_id in
internal_cfg.valid_branch_and_min_build_id.iteritems()
}
self.precreated_data_image_map = {
- size_gb: image_name
- for size_gb, image_name in
+ size_gb: image_name for size_gb, image_name in
internal_cfg.precreated_data_image.iteritems()
}
self.extra_data_disk_size_gb = (
@@ -185,8 +183,8 @@
if missing:
raise errors.ConfigError(
"Missing required configuration fields: %s" % missing)
- if (self.extra_data_disk_size_gb and self.extra_data_disk_size_gb
- not in self.precreated_data_image_map):
+ if (self.extra_data_disk_size_gb and self.extra_data_disk_size_gb not in
+ self.precreated_data_image_map):
raise errors.ConfigError(
"Supported extra_data_disk_size_gb options(gb): %s, "
"invalid value: %d" % (self.precreated_data_image_map.keys(),
@@ -224,8 +222,7 @@
usr_cfg = self.LoadConfigFromProtocolBuffer(
config_file, user_config_pb2.UserConfig)
except OSError as e:
- raise errors.ConfigError("Could not load config files: %s" %
- str(e))
+ raise errors.ConfigError("Could not load config files: %s" % str(e))
return AcloudConfig(usr_cfg, internal_cfg)
@staticmethod
diff --git a/public/config_test.py b/public/config_test.py
index 488b051..5c025a2 100644
--- a/public/config_test.py
+++ b/public/config_test.py
@@ -15,10 +15,9 @@
# limitations under the License.
"""Tests for acloud.public.config."""
-
+import unittest
import mock
-import unittest
from acloud.internal.proto import internal_config_pb2
from acloud.internal.proto import user_config_pb2
from acloud.public import config
@@ -96,6 +95,7 @@
def setUp(self):
self.config_file = mock.MagicMock()
+ # pylint: disable=no-member
def testLoadUserConfig(self):
"""Test loading user config."""
self.config_file.read.return_value = self.USER_CONFIG
@@ -115,9 +115,9 @@
self.assertEqual(cfg.resolution, "1200x1200x1200x1200")
self.assertEqual(cfg.client_id, "fake_client_id")
self.assertEqual(cfg.client_secret, "fake_client_secret")
- self.assertEqual({key: val
- for key, val in cfg.metadata_variable.iteritems()},
- {"metadata_1": "metadata_value_1"})
+ self.assertEqual(
+ {key: val for key, val in cfg.metadata_variable.iteritems()},
+ {"metadata_1": "metadata_value_1"})
def testLoadInternalConfig(self):
"""Test loading internal config."""
@@ -137,11 +137,12 @@
self.assertEqual({
key: val
for key, val in cfg.default_usr_cfg.metadata_variable.iteritems()
- }, {"metadata_1": "metadata_value_1",
- "metadata_2": "metadata_value_2"})
+ }, {
+ "metadata_1": "metadata_value_1",
+ "metadata_2": "metadata_value_2"
+ })
self.assertEqual(
- {key: val
- for key, val in cfg.device_resolution_map.iteritems()},
+ {key: val for key, val in cfg.device_resolution_map.iteritems()},
{"nexus5": "1080x1920x32x480"})
device_resolution = {
key: val
@@ -153,21 +154,17 @@
for key, val in cfg.valid_branch_and_min_build_id.iteritems()
}
self.assertEqual(valid_branch_and_min_build_id, {"aosp-master": 0})
- self.assertEqual(
- cfg.default_usr_cfg.stable_host_image_name,
- "fake_stable_host_image_name")
- self.assertEqual(
- cfg.default_usr_cfg.stable_host_image_project,
- "fake_stable_host_image_project")
+ self.assertEqual(cfg.default_usr_cfg.stable_host_image_name,
+ "fake_stable_host_image_name")
+ self.assertEqual(cfg.default_usr_cfg.stable_host_image_project,
+ "fake_stable_host_image_project")
self.assertEqual(cfg.kernel_build_target, "kernel")
# Emulator related
- self.assertEqual(
- cfg.default_usr_cfg.stable_goldfish_host_image_name,
- "fake_stable_goldfish_host_image_name")
- self.assertEqual(
- cfg.default_usr_cfg.stable_goldfish_host_image_project,
- "fake_stable_goldfish_host_image_project")
+ self.assertEqual(cfg.default_usr_cfg.stable_goldfish_host_image_name,
+ "fake_stable_goldfish_host_image_name")
+ self.assertEqual(cfg.default_usr_cfg.stable_goldfish_host_image_project,
+ "fake_stable_goldfish_host_image_project")
self.assertEqual(cfg.emulator_build_target, "sdk_tools_linux")
def testLoadConfigFails(self):
diff --git a/public/report.py b/public/report.py
index 2048329..2ca11da 100755
--- a/public/report.py
+++ b/public/report.py
@@ -89,8 +89,8 @@
"""
if (candidate not in cls.SEVERITY_ORDER or
reference not in cls.SEVERITY_ORDER):
- raise ValueError("%s or %s is not recognized." %
- (candidate, reference))
+ raise ValueError(
+ "%s or %s is not recognized." % (candidate, reference))
return cls.SEVERITY_ORDER[candidate] > cls.SEVERITY_ORDER[reference]
@@ -154,10 +154,11 @@
report_file: A path to a file where result will be dumped to.
If None, will only output result as logs.
"""
- result = dict(command=self.command,
- status=self.status,
- errors=self.errors,
- data=self.data)
+ result = dict(
+ command=self.command,
+ status=self.status,
+ errors=self.errors,
+ data=self.data)
logger.info("Report: %s", json.dumps(result, indent=2))
if not report_file:
return
diff --git a/public/report_test.py b/public/report_test.py
index e1fdc55..1b9fd3f 100644
--- a/public/report_test.py
+++ b/public/report_test.py
@@ -25,39 +25,40 @@
def testAddData(self):
"""test AddData."""
- r = report.Report("create")
- r.AddData("devices", {"instance_name": "instance_1"})
- r.AddData("devices", {"instance_name": "instance_2"})
+ test_report = report.Report("create")
+ test_report.AddData("devices", {"instance_name": "instance_1"})
+ test_report.AddData("devices", {"instance_name": "instance_2"})
expected = {
- "devices": [
- {"instance_name": "instance_1"},
- {"instance_name": "instance_2"}
- ]
+ "devices": [{
+ "instance_name": "instance_1"
+ }, {
+ "instance_name": "instance_2"
+ }]
}
- self.assertEqual(r.data, expected)
+ self.assertEqual(test_report.data, expected)
def testAddError(self):
"""test AddError."""
- r = report.Report("create")
- r.errors.append("some errors")
- r.errors.append("some errors")
- self.assertEqual(r.errors, ["some errors", "some errors"])
+ test_report = report.Report("create")
+ test_report.errors.append("some errors")
+ test_report.errors.append("some errors")
+ self.assertEqual(test_report.errors, ["some errors", "some errors"])
def testSetStatus(self):
"""test SetStatus."""
- r = report.Report("create")
- r.SetStatus(report.Status.SUCCESS)
- self.assertEqual(r.status, "SUCCESS")
+ test_report = report.Report("create")
+ test_report.SetStatus(report.Status.SUCCESS)
+ self.assertEqual(test_report.status, "SUCCESS")
- r.SetStatus(report.Status.FAIL)
- self.assertEqual(r.status, "FAIL")
+ test_report.SetStatus(report.Status.FAIL)
+ self.assertEqual(test_report.status, "FAIL")
- r.SetStatus(report.Status.BOOT_FAIL)
- self.assertEqual(r.status, "BOOT_FAIL")
+ test_report.SetStatus(report.Status.BOOT_FAIL)
+ self.assertEqual(test_report.status, "BOOT_FAIL")
# Test that more severe status won't get overriden.
- r.SetStatus(report.Status.FAIL)
- self.assertEqual(r.status, "BOOT_FAIL")
+ test_report.SetStatus(report.Status.FAIL)
+ self.assertEqual(test_report.status, "BOOT_FAIL")
if __name__ == "__main__":