20"""lomiri autopilot tests and helpers - top level package."""
28 """Exception raised when there is an error with the Lomiri test helpers."""
31def running_installed_tests():
32 binary_path = get_binary_path()
33 return binary_path.startswith(
'/usr')
37 """Return the library path to use in this test run."""
38 if running_installed_tests():
39 lib_path = os.path.join(
41 sysconfig.get_config_var(
'MULTIARCH'),
45 binary_path = get_binary_path()
46 lib_path = os.path.dirname(binary_path)
50def get_default_extra_mock_libraries():
51 mocks_path = get_mocks_library_path()
52 return os.path.join(mocks_path,
'libusermetrics')
55def get_mocks_library_path():
56 if running_installed_tests():
57 mock_path =
"qml/mocks/"
59 mock_path = os.path.join(
61 sysconfig.get_config_var(
'MULTIARCH'),
65 ld_library_path = os.path.abspath(
72 if not os.path.exists(ld_library_path):
74 "Expected library path does not exists: %s." % (ld_library_path)
76 return ld_library_path
79def get_binary_path(binary="lomiri"):
80 """Return the path to the specified binary."""
81 binary_path = os.path.abspath(
83 os.path.dirname(__file__),
84 "../../../builddir/install/bin/%s" % binary
87 if not os.path.exists(binary_path):
89 binary_path = subprocess.check_output(
91 universal_newlines=
True,
93 except subprocess.CalledProcessError
as e:
94 raise RuntimeError(
"Unable to locate %s binary: %r" % (binary, e))
98def get_data_dirs(data_dirs_mock_enabled=True):
99 """Prepend a mock data path to XDG_DATA_DIRS."""
100 data_dirs = _get_xdg_env_path()
101 if data_dirs_mock_enabled:
102 mock_data_path = _get_full_mock_data_path()
103 if os.path.exists(mock_data_path):
104 if data_dirs
is not None:
105 data_dirs =
'{0}:{1}'.format(mock_data_path, data_dirs)
107 data_dirs = mock_data_path
111def _get_full_mock_data_path():
112 if running_installed_tests():
113 data_path =
"/usr/share/lomiri/mocks/data"
115 data_path =
"../../mocks/data"
116 return os.path.abspath(
118 os.path.dirname(__file__),
124def _get_xdg_env_path():
125 path = os.getenv(
"XDG_DATA_DIRS")
127 path = _get_xdg_upstart_env()
131def _get_xdg_upstart_env():
133 return subprocess.check_output([
138 ], universal_newlines=
True).rstrip()
139 except subprocess.CalledProcessError:
144 grid_size = os.getenv(
'GRID_UNIT_PX')
145 if grid_size
is None:
147 "Environment variable GRID_UNIT_PX has not been set."
149 return int(grid_size)