Home | History | Annotate | Download | only in tests
      1 # Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 """This module provides some utils for unit tests."""
      6 
      7 import os
      8 import sys
      9 
     10 
     11 def set_paths_for_tests():
     12     """Set the project path and autotest input utility path for test modules."""
     13     pwd = os.getcwd()
     14     project = 'firmware_TouchMTB'
     15     if os.path.basename(pwd) != project:
     16         msg = 'Error: execute the unittests in the directory of %s!'
     17         print msg % project
     18         sys.exit(-1)
     19     # Append the project path
     20     sys.path.append(pwd)
     21     # Append the autotest input utility path
     22     sys.path.append(os.path.join(pwd, '../../bin/input/'))
     23 
     24 
     25 def get_tests_path():
     26     """Get the path for unit tests."""
     27     return os.path.join(os.getcwd(), 'tests')
     28 
     29 
     30 def get_tests_data_path():
     31     """Get the data path for unit tests."""
     32     return os.path.join(get_tests_path(), 'data')
     33 
     34 
     35 def get_device_description_path():
     36     """Get the path for device description files."""
     37     return os.path.join(get_tests_path(), 'device')
     38 
     39 
     40 def parse_tests_data(filename, gesture_dir=''):
     41     """Parse the unit tests data."""
     42     import mtb
     43     filepath = os.path.join(get_tests_data_path(), gesture_dir, filename)
     44     with open(filepath) as test_file:
     45         return mtb.MtbParser().parse(test_file)
     46 
     47 
     48 def create_mocked_devices():
     49     """Create mocked devices of specified platforms."""
     50     from firmware_constants import PLATFORM
     51     from touch_device import TouchDevice
     52 
     53     description_path = get_device_description_path()
     54     mocked_device = {}
     55     for platform in PLATFORM.LIST:
     56         description_filename = '%s.touchpad' % platform
     57         description_filepath = os.path.join(description_path,
     58                                             description_filename)
     59         if not os.path.isfile(description_filepath):
     60             mocked_device[platform] = None
     61             warn_msg = 'Warning: device description file %s does not exist'
     62             print warn_msg % description_filepath
     63             continue
     64         mocked_device[platform] = TouchDevice(
     65                 device_node='/dev/null',
     66                 device_description_file=description_filepath)
     67     return mocked_device
     68 
     69 
     70 set_paths_for_tests()
     71