New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 618961 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Increase re-usability of factory code in other codebases

Project Member Reported by kitching@google.com, Jun 10 2016

Issue description

Recently, in the Chrome OS Factory repository, more and more independent frameworks and self-contained projects are being created.  Many of existing Factory code would be useful for these projects, however it is undesirable to create a full dependency on all of cros.factory.  Therefore, we will work to modularize certain parts of Goofy such that they can be included in other independent codebases.

Current concrete plans include, but will not be limited to:

- Separate cros.factory.utils, by using relative imports instead of imports within the cros.factory namespace.

- Move args.py into the utils package.
 
Cc: hungte@chromium.org kitching@chromium.org shunhsingou@chromium.org
Owner: conradlo@chromium.org
Status: Untriaged (was: Unconfirmed)
Project Member

Comment 2 by sheriffbot@chromium.org, Jun 10 2016

Labels: Hotlist-Google
Project Member

Comment 3 by bugdroid1@chromium.org, Jun 12 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/factory/+/b83e45d08aab185865973d714b8dae8fffa73497

commit b83e45d08aab185865973d714b8dae8fffa73497
Author: Joel Kitching <kitching@google.com>
Date: Fri Jun 10 09:27:57 2016

deps: allow for relative package imports in dependency checks

deps.py would previously run chdir into the Python file which
it is checking before trying to import it.  This caused failures
on modules with relative imports, since they must be imported
under a package namespace.

Modify deps.py to instead chdir into the file's parent directory,
so that it will be able to import properly in this case.

BUG=chromium:618961
TEST=Locally

Change-Id: I09a2899f3bc61949a4ba6d49e854f27e265b0428
Reviewed-on: https://chromium-review.googlesource.com/351420
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>

[modify] https://crrev.com/b83e45d08aab185865973d714b8dae8fffa73497/py/tools/deps.py

Project Member

Comment 4 by bugdroid1@chromium.org, Jun 13 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/factory/+/7965f4c431b31f1f5b129048c944b0d366f5f534

commit 7965f4c431b31f1f5b129048c944b0d366f5f534
Author: Joel Kitching <kitching@google.com>
Date: Fri Jun 10 10:01:25 2016

arg_utils: move to utils and remove cros.factory dependency

Rename:
  test/args.py -> utils/arg_utils.py
  test/args_unittest.py -> utils/arg_utils_unittest.py

Update arg_utils.py to use relative imports.  Now arg_utils is
more portable and can be used in non-cros.factory source trees.

BUG=chromium:618961
TEST=Locally

Change-Id: Ia0ef614e58be61d525652f4f1c75221f11322c08
Reviewed-on: https://chromium-review.googlesource.com/351421
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>

[add] https://crrev.com/7965f4c431b31f1f5b129048c944b0d366f5f534/py/utils/arg_utils.py
[modify] https://crrev.com/7965f4c431b31f1f5b129048c944b0d366f5f534/py/test/args.py
[rename] https://crrev.com/7965f4c431b31f1f5b129048c944b0d366f5f534/py/utils/arg_utils_unittest.py

Project Member

Comment 5 by bugdroid1@chromium.org, Jun 13 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/factory/+/a8be7966a27d8b54c9b90358dd6eac04b3629016

commit a8be7966a27d8b54c9b90358dd6eac04b3629016
Author: Joel Kitching <kitching@google.com>
Date: Wed Jun 08 09:35:01 2016

utils: remove dependency on cros.factory

TLDR: utils modules can now be used in other codebases, but only
some import methods are functional:
  YES  from utils import file_utils
  YES  from other.software.utils import file_utils
   NO  import file_utils

Utils currently do not have any dependencies on cros.factory code,
except for the unittests of file_utils and sys_utils.

Modify all utils modules to use relative imports, so these modules
can be more portable and included in other non-cros.factory software
that exists in the same repository.

Since using relative imports puts limitations on how modules can be
imported and invoked, keep unittests with imports under the
cros.factory namespace, so that we can continue to run them as
"./xyz_utils_unittest.py".

Since using relative imports implies a "package", the utils modules
can no longer be imported directly, and must be imported under
*some* namespace (not necessarily cros.factory).  So, for example,
one could be in a Python shell started in the `py` directory, and
invoke `from utils import file_utils`.  Or, one could make a
symbolic link pointing to the `py/utils` directory and perform
similar imports.

BUG=chromium:618961
TEST=Locally

Change-Id: I5081ad0fafcabc8f4790b20e5e0d81d85a00646f
Reviewed-on: https://chromium-review.googlesource.com/350611
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>

[modify] https://crrev.com/a8be7966a27d8b54c9b90358dd6eac04b3629016/py/utils/net_utils.py
[modify] https://crrev.com/a8be7966a27d8b54c9b90358dd6eac04b3629016/py/utils/jsonrpc_utils.py
[modify] https://crrev.com/a8be7966a27d8b54c9b90358dd6eac04b3629016/py/utils/sync_utils.py
[modify] https://crrev.com/a8be7966a27d8b54c9b90358dd6eac04b3629016/py/utils/shelve_utils.py
[modify] https://crrev.com/a8be7966a27d8b54c9b90358dd6eac04b3629016/py/utils/file_utils.py
[modify] https://crrev.com/a8be7966a27d8b54c9b90358dd6eac04b3629016/py/utils/server_utils.py
[modify] https://crrev.com/a8be7966a27d8b54c9b90358dd6eac04b3629016/py/utils/ssh_utils.py
[add] https://crrev.com/a8be7966a27d8b54c9b90358dd6eac04b3629016/py/utils/README
[modify] https://crrev.com/a8be7966a27d8b54c9b90358dd6eac04b3629016/py/utils/schema.py
[modify] https://crrev.com/a8be7966a27d8b54c9b90358dd6eac04b3629016/py/utils/debug_utils.py
[modify] https://crrev.com/a8be7966a27d8b54c9b90358dd6eac04b3629016/py/utils/gpio_utils.py
[modify] https://crrev.com/a8be7966a27d8b54c9b90358dd6eac04b3629016/py/utils/time_utils.py
[modify] https://crrev.com/a8be7966a27d8b54c9b90358dd6eac04b3629016/py/utils/service_utils.py
[modify] https://crrev.com/a8be7966a27d8b54c9b90358dd6eac04b3629016/py/utils/sys_utils.py

Project Member

Comment 6 by bugdroid1@chromium.org, Jun 14 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/factory/+/83bf6d779836cded7bbc6d99f488cbb04e36ec40

commit 83bf6d779836cded7bbc6d99f488cbb04e36ec40
Author: Joel Kitching <kitching@google.com>
Date: Fri Jun 10 09:04:18 2016

arg_utils: update factory code to use utils.arg_utils

test/args.py has been relocated to utils/arg_utils.py.
Update factory code to reflect this change.

BUG=chromium:618961
TEST=Locally

Change-Id: I45ce27e72b5993c34cf067707fe51a71a6b527f0
Reviewed-on: https://chromium-review.googlesource.com/351422
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>

[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/audio.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/power_under_stress.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/display_point.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/display_images.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/simple_storage_stress_test.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/lid_switch/lid_switch.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/probe_sim.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/offline_test/shell/fetch_log.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/finalize_accessory.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/keyboard_smt.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/partition_table.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/gps/gps.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/verify_root_partition.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/probe_cellular_info_unittest.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/charger.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/flash_netboot.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/update_kernel.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/raiden_display.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/sensor_movement.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/brightness/brightness.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/hwmon_probe.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/recovery_button.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/ping_test.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/backlight_max_brightness_vpd.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/usb_probe.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/probe_cellular_info.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/suspend_resume.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/check_image_version.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/brightness/lcd_backlight.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/video_playback.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/sync_shopfloor.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/wifi_throughput.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/developer_switch.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/write_device_data_to_vpd.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/wifi_rf.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/serial_echo.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/fan_speed.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/removable_storage/removable_storage.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/e2e_test/e2e_test.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/bad_blocks.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/offline_test/offline_test.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/spatial_sensor_calibration.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/emmc_check_fw_version.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/stressapptest.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/station_entry.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/shutdown/shutdown.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/led/led.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/brightness/led_brightness.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/start/start.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/raiden_cc_flip_check.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/touch_device_fw_update.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/ext_display/ext_display.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/serial_echo_unittest.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/bft_fixture.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/pointing_device.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/vswr/vswr.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/finalize/finalize.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/display_idle.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/button.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/battery_cycle.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/smart_check_fw_version.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/ec_temp_sensors.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/call_shopfloor.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/fastboot_flash.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/touchpad.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/mlb_version.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/thermal_slope.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/camera.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/raiden_cc2_pull_test.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/cellular_switch_firmware.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/gyroscope.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/accelerometers_calibration.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/blocking_charge.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/i2c_probe.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/hwid_v3.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/lightbar.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/doc/generate_rsts_unittest.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/ethernet.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/countdown.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/check_wifi_calibration.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/memory_size.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/run_pytest.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/bluetooth.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/ac_power.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/barcode_scan_to_file.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/accelerometers_lid_angle.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/read_device_data_from_vpd.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/goofy/invocation.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/summary/summary.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/raiden_charge.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/keyboard/keyboard.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/execpython.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/emmc_check_extcsd.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/camera_fixture.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/touchscreen.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/tpm_verify_ek.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/touchscreen_wrap.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/interrupt/interrupt.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/webgl_aquarium.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/clear_tpm_owner_request.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/buzzer.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/tablet_rotation.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/select_aux_field.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/light_sensor.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/message/message.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/verify_components.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/ectool_i2c_dev_id.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/audio_loop/audio_loop.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/ec_battery.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/touchscreen_calibration/touchscreen_calibration.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/vpd_from_http.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/hwid.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/probe_sim_card_tray.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/wireless_antenna.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/audio_basic.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/simple_battery.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/backlight.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/usb.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/wireless_radiotap.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/sysfs_battery.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/update_firmware.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/select_for_sampling.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/rf_radiated/rf_radiated.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/sync_time.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/arduino_digital_pins.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/doc/test_api.rst
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/touchscreen_uniformity.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/write_protect_switch.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/tablet_mode.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/webrtc_camera.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/scan/scan.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/battery_current.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/display.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/nop.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/chameleon/chameleon.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/dut/utils.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/update_device_data.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/thermal_load.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/vpd.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/verify_touch_device_fw.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/select_components.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/line_check_item.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/verify_value.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/lte_verify_config.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/offline_test/shell/deploy.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/tpm_diagnosis.py
[modify] https://crrev.com/83bf6d779836cded7bbc6d99f488cbb04e36ec40/py/test/pytests/audio_quality.py

Project Member

Comment 7 by bugdroid1@chromium.org, Jun 15 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/factory/+/ecc8566308398b118b8678a76f40c2be2cf0e55c

commit ecc8566308398b118b8678a76f40c2be2cf0e55c
Author: Joel Kitching <kitching@google.com>
Date: Mon Jun 13 09:13:19 2016

arg_utils: create custom exception class for errors

Create custom exception class ArgError so that clients
can differentiate a problem with argument validation versus
some other piece of code throwing a ValueError exception.

BUG=chromium:618961, chromium:609069 
TEST=Locally

Change-Id: I8e777398cc2cf03e2cb237180628c01a7237f56a
Reviewed-on: https://chromium-review.googlesource.com/351824
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>

[modify] https://crrev.com/ecc8566308398b118b8678a76f40c2be2cf0e55c/py/utils/arg_utils.py

Project Member

Comment 8 by bugdroid1@chromium.org, Jun 23 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/factory/+/ff5271869299e51dc8012fd26ea5cf25b2491e34

commit ff5271869299e51dc8012fd26ea5cf25b2491e34
Author: Joel Kitching <kitching@google.com>
Date: Thu Jun 23 09:09:00 2016

minijack: move to minijack namespace

Minijack was adding its base folder to sys.path, and importing its
modules with their full name starting from the base folder.

Add the parent directory instead, so that modules live under the
'minijack.*' namespace.  Additionally, relocate external libraries
to the external dir, also add this to sys.path, and change their
references to use the 'minijack.external.*' namespace.

Finally, modify the 'lint' command in the factory Makefile to
reflect this path change accordingly.

Before:

  import db
  from apiclient.discovery import build

Now:

  from minijack import db
  from minijack.external.apiclient.discovery import build

BUG=chromium:618961
TEST=Run tests locally

Change-Id: I3385fba09ff5bdef7c957ddc4057f3cccc3cb34a
Reviewed-on: https://chromium-review.googlesource.com/355334
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>

[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/oauth2client/locked_file.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/db/models_unittest.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/httplib2/__init__.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/gflags.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/datatypes_unittest.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/Makefile
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/db/sqlite.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/archiver.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/uritemplate/__init__.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/apiclient/model.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/minijack_common.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/oauth2client/appengine.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/main.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/oauth2client/file.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/workers_unittest.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/models.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/httplib2/iri2uri.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/frontend/query_view.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/oauth2client/__init__.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/frontend/urls.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/db/cloud_sql.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/exporters/device_exporter.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/db/base.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/oauth2client/multistore_file.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/exporters/component_exporter.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/workers.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/oauth2client/client.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/oauth2client/django_orm.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/archiver_unittest.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/exporters/event_attr_exporter.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/apiclient/http.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/oauth2client/crypt.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/oauth2client/xsrfutil.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/db/models.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/apiclient/mimeparse.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/gflags_validators.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/oauth2client/gce.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/httplib2/socks.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/oauth2client/keyring_storage.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/oauth2client/anyjson.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/apiclient/errors.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/apiclient/__init__.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/oauth2client/clientsecrets.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/dump_db.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/apiclient/push.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/db/db_unittest.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/db/query_unittest.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/apiclient/schema.py
[add] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/__init__.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/exporters/test_exporter.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/db/__init__.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/frontend/views.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/apiclient/discovery.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/oauth2client/tools.py
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/httplib2/cacerts.txt
[rename] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/external/oauth2client/util.py
[modify] https://crrev.com/ff5271869299e51dc8012fd26ea5cf25b2491e34/py/minijack/db/bigquery.py

Status: Assigned (was: Untriaged)

Sign in to add a comment