3 # This file is part of DisOrder.
4 # Copyright (C) 2007 Richard Kettlewell
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 2 of the License, or
9 # (at your option) any later version.
11 # This program is distributed in the hope that it will be useful, but
12 # WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 # General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, write to the Free Software
18 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
22 """Utility module used by tests"""
24 import os
,os
.path
,subprocess
,sys
,disorder
29 open(b
,"w").write(open(a
).read())
34 Make track with relative path S exist"""
35 trackpath
= "%s/tracks/%s" %
(testroot
, s
)
36 trackdir
= os
.path
.dirname(trackpath
)
37 if not os
.path
.exists(trackdir
):
39 copyfile("%s/sounds/slap.ogg" % topsrcdir
, trackpath
)
42 maketrack("Joe Bloggs/First Album/01:First track.ogg")
43 maketrack("Joe Bloggs/First Album/02:Second track.ogg")
44 maketrack("Joe Bloggs/First Album/03:Third track.ogg")
45 maketrack("Joe Bloggs/First Album/04:Fourth track.ogg")
46 maketrack("Joe Bloggs/First Album/05:Fifth track.ogg")
47 maketrack("Joe Bloggs/First Album/05:Fifth track.ogg")
48 maketrack("Joe Bloggs/Second Album/01:First track.ogg")
49 maketrack("Joe Bloggs/Second Album/02:Second track.ogg")
50 maketrack("Joe Bloggs/Second Album/03:Third track.ogg")
51 maketrack("Joe Bloggs/Second Album/04:Fourth track.ogg")
52 maketrack("Joe Bloggs/Second Album/05:Fifth track.ogg")
53 maketrack("Joe Bloggs/Second Album/05:Fifth track.ogg")
54 maketrack("Joe Bloggs/First Album/01:First track.ogg")
55 maketrack("Joe Bloggs/First Album/02:Second track.ogg")
56 maketrack("Joe Bloggs/First Album/03:Third track.ogg")
57 maketrack("Joe Bloggs/First Album/04:Fourth track.ogg")
58 maketrack("Joe Bloggs/First Album/05:Fifth track.ogg")
59 maketrack("Fred Smith/Boring/01:Dull.ogg")
60 maketrack("Fred Smith/Boring/02:Tedious.ogg")
61 maketrack("Fred Smith/Boring/03:Drum Solo.ogg")
62 maketrack("Fred Smith/Boring/04:Yawn.ogg")
63 maketrack("misc/blahblahblah.ogg")
64 maketrack("Various/Greatest Hits/01:Jim Whatever - Spong.ogg")
65 maketrack("Various/Greatest Hits/02:Joe Bloggs - Yadda.ogg")
73 Start the daemon for test called TEST."""
79 errs
= open("%s/%s.log" %
(testroot
, test
), "w")
81 print " starting daemon"
82 daemon
= subprocess
.Popen(["disorderd",
84 "--config", "%s/config" % testroot
],
86 disorder
._configfile
= "%s/config" % testroot
87 disorder
._userconf
= False
92 Stop the daemon if it has not stopped already"""
96 print " stopping daemon"
97 os
.kill(daemon
.pid
, 15)
99 print " daemon has stopped"
102 def run(test
, setup
=None, report
=True, name
=None):
112 except AssertionError, e
:
128 Recursively delete directory D"""
129 if os
.path
.lexists(d
):
131 for dd
in os
.listdir(d
):
132 remove_dir("%s/%s" %
(d
, dd
))
137 # -----------------------------------------------------------------------------
143 testroot
= "%s/testroot" % os
.getcwd()
144 topsrcdir
= os
.path
.abspath(os
.getenv("topsrcdir"))
147 open("%s/config" % testroot
, "w").write(
148 """player *.ogg shell 'echo "$TRACK" >> %s/played.log'
150 collection fs ASCII %s/tracks
151 scratch %s/scratch.ogg
153 stopword 01 02 03 04 05 06 07 08 09 10
154 stopword 1 2 3 4 5 6 7 8 9
155 stopword 11 12 13 14 15 16 17 18 19 20
156 stopword 21 22 23 24 25 26 27 28 29 30
157 stopword the a an and to too in on of we i am as im for is
162 player *.mp3 execraw disorder-decode
163 player *.ogg execraw disorder-decode
164 player *.wav execraw disorder-decode
165 player *.flac execraw disorder-decode
166 tracklength *.mp3 disorder-tracklength
167 tracklength *.ogg disorder-tracklength
168 tracklength *.wav disorder-tracklength
169 tracklength *.flac disorder-tracklength
170 """ %
(testroot
, testroot
, testroot
, testroot
))
171 copyfile("%s/sounds/scratch.ogg" % topsrcdir
,
172 "%s/scratch.ogg" % testroot
)