20 """unity autopilot tests and emulators - top level package."""
27 def running_installed_tests():
28 binary_path = get_binary_path()
29 return binary_path.startswith(
'/usr')
33 """Return the library path to use in this test run."""
34 if running_installed_tests():
35 lib_path = os.path.join(
37 sysconfig.get_config_var(
'MULTIARCH'),
41 binary_path = get_binary_path()
42 lib_path = os.path.dirname(binary_path)
46 def get_default_extra_mock_libraries():
47 mocks_path = get_mocks_library_path()
48 return os.path.join(mocks_path,
'libusermetrics')
51 def get_mocks_library_path():
52 if running_installed_tests():
53 mock_path =
"qml/mocks/"
55 mock_path = os.path.join(
57 sysconfig.get_config_var(
'MULTIARCH'),
60 lib_path = get_lib_path()
61 ld_library_path = os.path.abspath(
68 if not os.path.exists(ld_library_path):
70 "Expected library path does not exists: %s." % (ld_library_path)
72 return ld_library_path
75 def get_binary_path(binary="unity8"):
76 """Return the path to the specified binary."""
77 binary_path = os.path.abspath(
79 os.path.dirname(__file__),
80 "../../../builddir/install/bin/%s" % binary
83 if not os.path.exists(binary_path):
85 binary_path = subprocess.check_output(
87 universal_newlines=
True,
89 except subprocess.CalledProcessError
as e:
90 raise RuntimeError(
"Unable to locate %s binary: %r" % (binary, e))
94 def get_data_dirs(data_dirs_mock_enabled=True):
95 """Prepend a mock data path to XDG_DATA_DIRS."""
96 data_dirs = _get_xdg_env_path()
97 if data_dirs_mock_enabled:
98 mock_data_path = _get_full_mock_data_path()
99 if os.path.exists(mock_data_path):
100 if data_dirs
is not None:
101 data_dirs =
'{0}:{1}'.format(mock_data_path, data_dirs)
103 data_dirs = mock_data_path
107 def _get_full_mock_data_path():
108 if running_installed_tests():
109 data_path =
"/usr/share/unity8/mocks/data"
111 data_path =
"../../mocks/data"
112 return os.path.abspath(
114 os.path.dirname(__file__),
120 def _get_xdg_env_path():
121 path = os.getenv(
"XDG_DATA_DIRS")
123 path = _get_xdg_upstart_env()
127 def _get_xdg_upstart_env():
129 return subprocess.check_output([
134 ], universal_newlines=
True).rstrip()
135 except subprocess.CalledProcessError:
140 grid_size = os.getenv(
'GRID_UNIT_PX')
141 if grid_size
is None:
143 "Environment variable GRID_UNIT_PX has not been set."
145 return int(grid_size)