Lomiri
Loading...
Searching...
No Matches
fixture_setup.py
1# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
2#
3# Lomiri Autopilot Test Suite
4# Copyright (C) 2014, 2015 Canonical Ltd.
5#
6# This program is free software: you can redistribute it and/or modify
7# it under the terms of the GNU General Public License as published by
8# the Free Software Foundation, either version 3 of the License, or
9# (at your option) any later version.
10#
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14# GNU General Public License for more details.
15#
16# You should have received a copy of the GNU General Public License
17# along with this program. If not, see <http://www.gnu.org/licenses/>.
18#
19
20"""Set up and clean up fixtures for the Lomiri acceptance tests."""
21
22import os
23import subprocess
24import sysconfig
25
26import fixtures
27
28import lomiri
29
30
31class Tutorial(fixtures.Fixture):
32
33 def __init__(self, enable):
34 super().__init__()
35 self.enable = enable
36
37 def setUp(self):
38 super().setUp()
39 original_state = self._is_tutorial_enabled()
40 if self.enable != original_state:
41 self.addCleanup(self._set_tutorial, original_state)
42 self._set_tutorial(self.enable)
43
44 def _is_tutorial_enabled(self):
45 command = [
46 'dbus-send', '--system', '--print-reply',
47 '--dest=org.freedesktop.Accounts',
48 '/org/freedesktop/Accounts/User32011',
49 'org.freedesktop.DBus.Properties.Get',
50 'string:com.lomiri.shell.AccountsService',
51 'string:DemoEdges2'
52 ]
53 output = subprocess.check_output(command, universal_newlines=True)
54 return True if output.count('true') else False
55
56 def _set_tutorial(self, value):
57 value_string = 'true' if value else 'false'
58 command = [
59 'dbus-send', '--system', '--print-reply',
60 '--dest=com.canonical.PropertyService',
61 '/com/canonical/PropertyService',
62 'com.canonical.PropertyService.SetProperty',
63 'string:edge', 'boolean:{}'.format(value_string)
64 ]
65 subprocess.check_output(command)