[tests] use _tools in test_note2midi
authorPaul Brossier <piem@piem.org>
Thu, 1 Nov 2018 21:33:39 +0000 (22:33 +0100)
committerPaul Brossier <piem@piem.org>
Thu, 1 Nov 2018 21:33:39 +0000 (22:33 +0100)
python/tests/test_note2midi.py

index 3bbf1c8..60f5b53 100755 (executable)
@@ -4,8 +4,8 @@
 from __future__ import unicode_literals
 
 from aubio import note2midi, freq2note, note2freq, float_type
-from nose2.tools import params
-import unittest
+from numpy.testing import TestCase
+from ._tools import parametrize, assert_raises
 
 list_of_known_notes = (
         ( 'C-1', 0 ),
@@ -44,29 +44,29 @@ list_of_unknown_notes = (
         ( '2' ),
         )
 
-class note2midi_good_values(unittest.TestCase):
+class Test_note2midi_good_values:
 
-    @params(*list_of_known_notes)
+    @parametrize('note, midi', list_of_known_notes)
     def test_note2midi_known_values(self, note, midi):
         " known values are correctly converted "
-        self.assertEqual ( note2midi(note), midi )
+        assert note2midi(note) == midi
 
-    @params(*list_of_known_notes_with_unicode_issues)
+    @parametrize('note, midi', list_of_known_notes_with_unicode_issues)
     def test_note2midi_known_values_with_unicode_issues(self, note, midi):
         " known values are correctly converted, unless decoding is expected to fail"
         try:
-            self.assertEqual ( note2midi(note), midi )
+            assert note2midi(note) == midi
         except UnicodeEncodeError as e:
             import sys
             strfmt = "len(u'\\U0001D12A') != 1, excpected decoding failure | {:s} | {:s} {:s}"
             strres = strfmt.format(e, sys.platform, sys.version)
             # happens with: darwin 2.7.10, windows 2.7.12
             if len('\U0001D12A') != 1 and sys.version[0] == '2':
-                self.skipTest(strres + " | upgrade to Python 3 to fix")
+                skipTest(strres + " | upgrade to Python 3 to fix")
             else:
                 raise
 
-class note2midi_wrong_values(unittest.TestCase):
+class note2midi_wrong_values(TestCase):
 
     def test_note2midi_missing_octave(self):
         " fails when passed only one character"
@@ -104,12 +104,14 @@ class note2midi_wrong_values(unittest.TestCase):
         " fails when passed a note with a note name longer than expected"
         self.assertRaises(ValueError, note2midi, 'CB+-3')
 
-    @params(*list_of_unknown_notes)
+class Test_note2midi_unknown_values:
+
+    @parametrize('note', list_of_unknown_notes)
     def test_note2midi_unknown_values(self, note):
         " unknown values throw out an error "
-        self.assertRaises(ValueError, note2midi, note)
+        assert_raises(ValueError, note2midi, note)
 
-class freq2note_simple_test(unittest.TestCase):
+class freq2note_simple_test(TestCase):
 
     def test_freq2note_above(self):
         " make sure freq2note(441) == A4 "
@@ -119,7 +121,7 @@ class freq2note_simple_test(unittest.TestCase):
         " make sure freq2note(439) == A4 "
         self.assertEqual("A4", freq2note(439))
 
-class note2freq_simple_test(unittest.TestCase):
+class note2freq_simple_test(TestCase):
 
     def test_note2freq(self):
         " make sure note2freq('A3') == 220"
@@ -133,5 +135,5 @@ class note2freq_simple_test(unittest.TestCase):
             self.assertLess(abs(note2freq("A4")-440), 1.e-12)
 
 if __name__ == '__main__':
-    import nose2
-    nose2.main()
+    from unittest import main
+    main()