mostly run analyzer tests on travis
* [x] regonfigured the build matrix with more php jobs and a separate python job (we can add more python jobs later) * [x] run tests on travis' trusty beta container (it's closer to what we need anyway) * [x] install packages needed for analyzer tests in build env * [x] added docs on how to run nosetests locally * [x] don't run initctl in analyzer setup so setup can also be used on travis (and add it to the install script directly) * [x] ignore replaygain checks on travis (it has proven quite impossible to get the needed python-gi module to work in the provided virtualenv) I tried a lot of solutions to get the replaygain checks to run. I needed to decide that this has gone far enough, maybe someone who is more of a pythonista than me can take a crack at it and get it solved. Even without running those tests on CI/CD there are still plenty others. This PR only has parts of what are needed for getting python tests running on travis as per #15. I only took a quick shot at anything not analyzer and figured I would not be able to "fix" them without digging a bit deeper (ie. also getting rid of std_err_override).
This commit is contained in:
parent
4557395a86
commit
9b3d0c90da
5 changed files with 122 additions and 12 deletions
|
@ -48,11 +48,7 @@ setup(name='airtime_analyzer',
|
|||
zip_safe=False,
|
||||
data_files=data_files)
|
||||
|
||||
# Reload the initctl config so that "service start airtime_analyzer" works
|
||||
# Remind users to reload the initctl config so that "service start airtime_analyzer" works
|
||||
if data_files:
|
||||
print "Reloading initctl configuration"
|
||||
call(['initctl', 'reload-configuration'])
|
||||
print "Run \"sudo service airtime_analyzer restart\" now."
|
||||
|
||||
|
||||
# TODO: Should we start the analyzer here or not?
|
||||
print "Remember to reload the initctl configuration"
|
||||
print "Run \"sudo initctl reload-configuration; sudo service airtime_analyzer restart\" now."
|
||||
|
|
|
@ -1,6 +1,21 @@
|
|||
from nose.tools import *
|
||||
from airtime_analyzer.replaygain_analyzer import ReplayGainAnalyzer
|
||||
|
||||
'''
|
||||
The tests in here were all tagged with the 'rgain' tag so the can be exluded from being run
|
||||
with nosetest -a '!rgain'. This was needed due to the fact that it is not readily possible
|
||||
to install replaygain on a containerized travis instance.
|
||||
|
||||
We can either give running replaygain test on travis another shot after ubuntu getsan updated
|
||||
gi instrospection allowing us to install gi and gobject into the virtualenv, or we can switch
|
||||
to a full machine and stop using 'sudo: false' on travis.
|
||||
|
||||
Deactivating these tests is a bad fix for now and I plan on looking into it again after
|
||||
most everything else is up and running. For those interesed the tests seem to work locally
|
||||
albeit my results not being up to the given tolerance of 0.30 (which I'm assuming is my rig's
|
||||
problem and would work on travis if replaygain was available).
|
||||
'''
|
||||
|
||||
def check_default_metadata(metadata):
|
||||
''' Check that the values extract by Silan/CuePointAnalyzer on our test audio files match what we expect.
|
||||
:param metadata: a metadata dictionary
|
||||
|
@ -29,43 +44,54 @@ def test_invalid_filepath():
|
|||
def test_mp3_utf8():
|
||||
metadata = ReplayGainAnalyzer.analyze(u'tests/test_data/44100Hz-16bit-stereo-utf8.mp3', dict())
|
||||
check_default_metadata(metadata)
|
||||
test_mp3_utf8.rgain = True
|
||||
|
||||
def test_mp3_dualmono():
|
||||
metadata = ReplayGainAnalyzer.analyze(u'tests/test_data/44100Hz-16bit-dualmono.mp3', dict())
|
||||
check_default_metadata(metadata)
|
||||
test_mp3_dualmono.rgain = True
|
||||
|
||||
def test_mp3_jointstereo():
|
||||
metadata = ReplayGainAnalyzer.analyze(u'tests/test_data/44100Hz-16bit-jointstereo.mp3', dict())
|
||||
check_default_metadata(metadata)
|
||||
test_mp3_jointstereo.rgain = True
|
||||
|
||||
def test_mp3_simplestereo():
|
||||
metadata = ReplayGainAnalyzer.analyze(u'tests/test_data/44100Hz-16bit-simplestereo.mp3', dict())
|
||||
check_default_metadata(metadata)
|
||||
test_mp3_simplestereo.rgain = True
|
||||
|
||||
def test_mp3_stereo():
|
||||
metadata = ReplayGainAnalyzer.analyze(u'tests/test_data/44100Hz-16bit-stereo.mp3', dict())
|
||||
check_default_metadata(metadata)
|
||||
test_mp3_stereo.rgain = True
|
||||
|
||||
def test_mp3_mono():
|
||||
metadata = ReplayGainAnalyzer.analyze(u'tests/test_data/44100Hz-16bit-mono.mp3', dict())
|
||||
check_default_metadata(metadata)
|
||||
test_mp3_mono.rgain = True
|
||||
|
||||
def test_ogg_stereo():
|
||||
metadata = ReplayGainAnalyzer.analyze(u'tests/test_data/44100Hz-16bit-stereo.ogg', dict())
|
||||
check_default_metadata(metadata)
|
||||
test_ogg_stereo = True
|
||||
|
||||
def test_invalid_wma():
|
||||
metadata = ReplayGainAnalyzer.analyze(u'tests/test_data/44100Hz-16bit-stereo-invalid.wma', dict())
|
||||
test_invalid_wma.rgain = True
|
||||
|
||||
def test_mp3_missing_id3_header():
|
||||
metadata = ReplayGainAnalyzer.analyze(u'tests/test_data/44100Hz-16bit-mp3-missingid3header.mp3', dict())
|
||||
test_mp3_missing_id3_header.rgain = True
|
||||
|
||||
def test_m4a_stereo():
|
||||
metadata = ReplayGainAnalyzer.analyze(u'tests/test_data/44100Hz-16bit-stereo.m4a', dict())
|
||||
check_default_metadata(metadata)
|
||||
test_m4a_stereo.rgain = True
|
||||
|
||||
''' WAVE is not supported by python-rgain yet
|
||||
def test_wav_stereo():
|
||||
metadata = ReplayGainAnalyzer.analyze(u'tests/test_data/44100Hz-16bit-stereo.wav', dict())
|
||||
check_default_metadata(metadata)
|
||||
'''
|
||||
test_wav_stereo.rgain = True
|
||||
'''
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue