Merge lp:~vthompson/music-app/mock-home-again into lp:music-app/trusty

Proposed by Victor Thompson
Status: Merged
Approved by: Victor Thompson
Approved revision: 506
Merged at revision: 509
Proposed branch: lp:~vthompson/music-app/mock-home-again
Merge into: lp:music-app/trusty
Diff against target: 150 lines (+0/-116)
1 file modified
tests/autopilot/music_app/tests/__init__.py (+0/-116)
To merge this branch: bzr merge lp:~vthompson/music-app/mock-home-again
Reviewer Review Type Date Requested Status
Andrew Hayzen Approve
Nicholas Skaggs (community) Approve
Ubuntu Phone Apps Jenkins Bot continuous-integration Approve
Review via email: mp+224739@code.launchpad.net

Commit message

* Autopilot to mock home again

Description of the change

This branch reverts some of the test setup such that the test environment is mocked again on the device

To post a comment you must log in.
Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Nicholas Skaggs (nskaggs) wrote :

+1 from me, ahayzen filled me in.

review: Approve
Revision history for this message
Andrew Hayzen (ahayzen) wrote :

Just ran on mako and my music was retained after the test ran :)

Ran 17 tests in 1146.647s
OK

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'tests/autopilot/music_app/tests/__init__.py'
2--- tests/autopilot/music_app/tests/__init__.py 2014-06-27 00:07:49 +0000
3+++ tests/autopilot/music_app/tests/__init__.py 2014-06-27 01:25:59 +0000
4@@ -8,7 +8,6 @@
5 """Music app autopilot tests."""
6
7 import os
8-import subprocess
9 import os.path
10 import shutil
11 import sqlite3
12@@ -48,8 +47,6 @@
13 local_location_dir = os.path.dirname(os.path.dirname(working_dir))
14 local_location = local_location_dir + "/music-app.qml"
15 installed_location = "/usr/share/music-app/music-app.qml"
16- backup_root = os.path.join(
17- os.path.expanduser('~'), '.local/share/com.ubuntu.music/backups')
18
19 def setup_environment(self):
20 if os.path.exists(self.local_location):
21@@ -64,73 +61,9 @@
22 return launch, test_type
23
24 def setUp(self):
25- subprocess.call(["stop", "mediascanner-2.0"])
26-
27- # Restart mediascanner on exit
28- self.addCleanup(subprocess.call, ["start", "mediascanner-2.0"])
29-
30 launch, self.test_type = self.setup_environment()
31-
32- # Use backup and restore to setup test environment
33- #################################################
34- # for now, we will use real /home
35- logger.debug("Backup root folder %s" % self.backup_root)
36-
37- # backup and wipe before testing
38- sqlite_dir = os.path.join(
39- os.environ.get('HOME'), '.local/share/com.ubuntu.music/Databases')
40- self.backup_folder(sqlite_dir)
41- self.addCleanup(lambda: self.restore_folder(sqlite_dir))
42-
43- # backup Music folder and restore it after testing
44- self.backup_folder(os.path.join(os.environ.get('HOME'), 'Music'))
45- self.addCleanup(lambda: self.restore_folder(
46- os.path.join(os.environ.get('HOME'), 'Music')))
47-
48- # backup mediascanner folder and restore it after testing
49- self.backup_folder(os.path.join(os.environ.get('HOME'),
50- '.cache/mediascanner-2.0'))
51- self.addCleanup(lambda: self.restore_folder(os.path.join(
52- os.environ.get('HOME'),
53- '.cache/mediascanner-2.0')))
54-
55- self.home_dir = os.environ['HOME']
56- self._create_music_library()
57-
58- '''
59- #################################################
60- # Use backup and restore to setup test environment
61-
62- # Use mocking fakehome
63- #####################
64 self.home_dir = self._patch_home()
65-
66 self._create_music_library()
67-
68- # we need to also tell upstart about our fake home
69- # and we need to do this all in one shell,
70- # also passing along our fake env (env=env)
71- logger.debug("Launching mediascanner")
72- env = os.environ.copy()
73- sethome = "initctl set-env HOME=" + self.home_dir
74- retcode = subprocess.check_output(sethome + "; \
75- start mediascanner-2.0",
76- env=env,
77- stderr=subprocess.STDOUT,
78- shell=True)
79- logger.debug("mediascanner launched %s" % retcode)
80- time.sleep(10)
81-
82- # we attempt to reset home for future upstart jobs
83- retcode = subprocess.check_output("initctl reset-env",
84- env=env, shell=True)
85- retcode = subprocess.check_output("initctl get-env HOME",
86- env=env, shell=True)
87- logger.debug("reset initctl home %s" % retcode)
88- #####################
89- # Use mocking fakehome
90- '''
91-
92 self.pointing_device = Pointer(self.input_device_class.create())
93 super(MusicTestCase, self).setUp()
94 launch()
95@@ -312,55 +245,6 @@
96 os.remove(in_filename)
97 os.rename(out_filename, in_filename)
98
99- def backup_folder(self, folder):
100- backup_dir = os.path.join(self.backup_root, os.path.basename(folder))
101- logger.debug('Backup dir set to %s' % backup_dir)
102- try:
103- shutil.rmtree(backup_dir)
104- except:
105- pass
106- else:
107- logger.warning("Prexisting backup found and removed")
108-
109- try:
110- shutil.move(folder, backup_dir)
111- except shutil.Error as e:
112- logger.error('Backup error for %s: %s' % (folder, e))
113- except IOError as e:
114- logger.error('Backup error for %s: %s' % (folder, e.strerror))
115- except:
116- logger.error("Unknown error backing up %s" % folder)
117- else:
118- logger.debug('Backed up %s to %s' % (folder, backup_dir))
119-
120- def restore_folder(self, folder):
121- backup_dir = os.path.join(self.backup_root, os.path.basename(folder))
122- logger.debug('Backup dir set to %s' % backup_dir)
123- if os.path.exists(backup_dir):
124- if os.path.exists(folder):
125- try:
126- shutil.rmtree(folder)
127- except shutil.Error as e:
128- logger.error('Restore error for %s: %s' % (folder, e))
129- except IOError as e:
130- logger.error('Restore error for %s: %s' %
131- (folder, e.strerror))
132- except:
133- logger.error("Failed to remove test data for %s" % folder)
134- return
135- try:
136- shutil.move(backup_dir, folder)
137- except shutil.Error as e:
138- logger.error('Restore error for %s: %s' % (folder, e))
139- except IOError as e:
140- logger.error('Restore error for %s: %s' % (folder, e.strerror))
141- except:
142- logger.error('Unknown error restoring %s' % folder)
143- else:
144- logger.debug('Restored %s from %s' % (folder, backup_dir))
145- else:
146- logger.warn('No backup found to restore for %s' % folder)
147-
148 @property
149 def player(self):
150 return self.main_view.get_player()

Subscribers

People subscribed via source and target branches

to status/vote changes: