| # Copyright (c) 2012 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """This module provides some utils for unit tests.""" |
| |
| import os |
| import sys |
| |
| |
| def set_paths_for_tests(): |
| """Set the project path and autotest input utility path for test modules.""" |
| pwd = os.getcwd() |
| project = 'firmware_TouchMTB' |
| if os.path.basename(pwd) != project: |
| msg = 'Error: execute the unittests in the directory of %s!' |
| print msg % project |
| sys.exit(-1) |
| # Append the project path |
| sys.path.append(pwd) |
| # Append the autotest input utility path |
| sys.path.append(os.path.join(pwd, '../../bin/input/')) |
| |
| |
| def get_tests_path(): |
| """Get the path for unit tests.""" |
| return os.path.join(os.getcwd(), 'tests') |
| |
| |
| def get_tests_data_path(): |
| """Get the data path for unit tests.""" |
| return os.path.join(get_tests_path(), 'data') |
| |
| |
| def get_device_description_path(): |
| """Get the path for device description files.""" |
| return os.path.join(get_tests_path(), 'device') |
| |
| |
| def parse_tests_data(filename, gesture_dir=''): |
| """Parse the unit tests data.""" |
| import mtb |
| filepath = os.path.join(get_tests_data_path(), gesture_dir, filename) |
| with open(filepath) as test_file: |
| return mtb.MtbParser().parse(test_file) |
| |
| |
| def create_mocked_devices(): |
| """Create mocked devices of specified platforms.""" |
| from firmware_constants import PLATFORM |
| from touch_device import TouchDevice |
| |
| description_path = get_device_description_path() |
| mocked_device = {} |
| for platform in PLATFORM.LIST: |
| description_filename = '%s.touchpad' % platform |
| description_filepath = os.path.join(description_path, |
| description_filename) |
| if not os.path.isfile(description_filepath): |
| mocked_device[platform] = None |
| warn_msg = 'Warning: device description file %s does not exist' |
| print warn_msg % description_filepath |
| continue |
| mocked_device[platform] = TouchDevice( |
| device_node='/dev/null', |
| device_description_file=description_filepath) |
| return mocked_device |
| |
| |
| set_paths_for_tests() |