topsrcdir=${top_srcdir} \
${PYTHON} ${srcdir}/alltests
-EXTRA_DIST=alltests dtest.py nothing.py version.py
+EXTRA_DIST=alltests dtest.py nothing.py version.py dbversion.py
#! /usr/bin/env python
import dtest
-tests = ["nothing", "version", "files"]
+tests = ["nothing", "version", "files", "dbversion"]
for test in tests:
print "Test '%s'" % test
--- /dev/null
+#! /usr/bin/env python
+import dtest,time,disorder,sys,re
+
+def test():
+ """Database version tests"""
+ # Start up with dbversion 1
+ config = "%s/config" % dtest.testroot
+ configsave = "%s.save" % config
+ dtest.copyfile(config, configsave)
+ open(config, "a").write("dbversion 1\n")
+ dtest.start_daemon()
+ time.sleep(2)
+ dtest.stop_daemon()
+ # Revert to default configuration
+ dtest.copyfile(configsave, config)
+ dtest.start_daemon()
+ time.sleep(2)
+ c = disorder.client()
+ try:
+ v = c.version()
+ print "unexpected success"
+ ok = False
+ except disorder.communicationError, e:
+ if re.search("connection refused", str(e)):
+ print "unexpected error: %s" % e
+ ok = False
+ else:
+ ok = True
+ dtest.stop_daemon()
+ if not ok:
+ sys.exit(1)
+
+if __name__ == '__main__':
+ dtest.run(test)
copyfile("%s/sounds/scratch.ogg" % topsrcdir,
"%s/scratch.ogg" % testroot)
-def start_daemon(test):
- """start_daemon(TEST)
-Start the daemon for test called TEST."""
- global daemon
- assert daemon == None
- if test == None:
- errs = sys.stderr
- else:
- errs = open("%s.log" % test, "w")
+def start_daemon():
+ """start_daemon()
+Start the daemon."""
+ global daemon,errs
+ assert daemon is None
server = None
print " starting daemon"
daemon = subprocess.Popen(["disorderd",
"--foreground",
"--config", "%s/config" % testroot],
stderr=errs)
- disorder._configfile = "%s/config" % testroot
- disorder._userconf = False
def stop_daemon():
"""stop_daemon()
Stop the daemon if it has not stopped already"""
global daemon
+ assert daemon is not None
rc = daemon.poll()
if rc == None:
print " stopping daemon"
daemon = None
def run(test, setup=None, report=True, name=None):
- global tests
+ global tests,errs
tests += 1
if setup == None:
setup = stdtracks
+ errs = open("%s.log" % test.__name__, "w") # HNGGGH. nO.
+ disorder._configfile = "%s/config" % testroot
+ disorder._userconf = False
common_setup()
setup()
- start_daemon(name)
try:
try:
test()
failures += 1
print e
finally:
- stop_daemon()
+ if daemon is not None:
+ stop_daemon()
if report:
if failures:
print " FAILED"
import dtest,time,disorder,sys
def test():
- """Ask the server its version number"""
+ """Check that the file listing comes out right"""
+ dtest.start_daemon()
time.sleep(5) # give rescan a chance
c = disorder.client()
failures = 0
def test():
"""Just start the server and then stop it a few seconds later"""
+ dtest.start_daemon()
time.sleep(2)
if __name__ == '__main__':
def test():
"""Ask the server its version number"""
+ dtest.start_daemon()
time.sleep(2) # give the daemon a chance to start up
c = disorder.client()
v = c.version()