blob: 1249de662c5c10f86a6ee1afa39430d373abf8f9 [file] [log] [blame]
# 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_TouchpadMTB'
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)
class MockTouchpadDevice:
"""A fake touchpad device for the purpose of running unit tests.
Should provide the device_description generated by evemu-describe on
the chromebook machine.
"""
def __init__(self, device_description):
self.device_description = device_description
import touch_device
self.touch_device = touch_device.TouchpadDevice('/dev/null')
def get_edges(self):
"""Mock touchpad edges based on device description."""
return self.touch_device.get_edges(self.device_description)
def get_dimensions(self):
"""Mock dimensions based on device description."""
return self.touch_device.get_dimensions(self.device_description)
def get_resolutions(self):
"""Mock resolutions based on device description."""
return self.touch_device.get_resolutions(self.device_description)
set_paths_for_tests()