From: Thomas Fillon Date: Thu, 10 Apr 2014 18:36:56 +0000 (+0200) Subject: Remove duplicate tests agains bad type in test_AnalyzerResult X-Git-Tag: 0.5.5~1^2~38^2~57 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=9d797b9a4c41f1895631775fc2e47b8c91aa31c1;p=timeside.git Remove duplicate tests agains bad type in test_AnalyzerResult --- diff --git a/tests/test_AnalyzerResult.py b/tests/test_AnalyzerResult.py index e0dd58d..4fc1ca3 100755 --- a/tests/test_AnalyzerResult.py +++ b/tests/test_AnalyzerResult.py @@ -27,6 +27,64 @@ class TestAnalyzerResult(unittest.TestCase): start=0, duration=20, channels=2) + def tearDown(self): + pass + +#good_numpy_data_types = [ +# 'float64', +# 'float32', +## 'float16', +# 'int64', +# 'int16', +# 'int32', +# 'int8', +# 'uint16', +# 'uint32', +# 'uint64', +# 'uint8', +#] +from timeside.analyzer.core import numpy_data_types as good_numpy_data_types + +bad_numpy_data_types = [ + # not understood by json or yaml + 'float128', + # Not supported by h5py for version < 2.2 + 'float16', + # complex can not be serialized in json + 'complex256', + 'complex128', + 'complex64', + # ? + 'datetime64', + 'timedelta64', + 'unicode_', + 'string_' + ] + + +def create_good_method_func(numpy_data_type): + def method(self): + "numpy %s" % str(numpy_data_type)[7:-1] + self.result.data_object.value = numpy_data_type(pi) + return method + + +def create_bad_method_func(numpy_data_type): + def method(self): + "numpy %s" % numpy_data_type + try: + data = getattr(numpy, numpy_data_type)(pi) + except ValueError: + data = getattr(numpy, numpy_data_type)() + self.assertRaises(TypeError, self.result.data_object.__setattr__, 'value', data) + return method + +class TestAnalyzerResultBadType(TestAnalyzerResult): + """ test AnalyzerResult on bad data type""" + pass + +class TestAnalyzerResultGoodType(TestAnalyzerResult): + """ test AnalyzerResult on good data type""" def testOnFloat(self): "float result" self.result.data_object.value = 1.2 @@ -39,10 +97,12 @@ class TestAnalyzerResult(unittest.TestCase): "list result" self.result.data_object.value = [1., 2.] + @unittest.skip("String have to be handled through label metadata") def testOnString(self): "string result" self.result.data_object.value = "hello" + @unittest.skip("String have to be handled through label metadata") def testOnListOfString(self): "list of strings result" self.result.data_object.value = ["hello", "hola"] @@ -63,6 +123,7 @@ class TestAnalyzerResult(unittest.TestCase): "numpy 3d array of int32" self.result.data_object.value = ones([2, 3, 2], dtype='int32') + @unittest.skip("String have to be handled through label metadata") def testOnNumpyArrayOfStrings(self): "numpy array of strings" self.result.data_object.value = array(['hello', 'hola']) @@ -75,77 +136,29 @@ class TestAnalyzerResult(unittest.TestCase): "None" self.result.data_object.value = None + @unittest.skip("String have to be handled through label metadata") def testOnUnicode(self): - "None" - self.result.data_object.value = None - - def tearDown(self): - pass - -#good_numpy_data_types = [ -# 'float64', -# 'float32', -## 'float16', -# 'int64', -# 'int16', -# 'int32', -# 'int8', -# 'uint16', -# 'uint32', -# 'uint64', -# 'uint8', -#] -from timeside.analyzer.core import numpy_data_types as good_numpy_data_types + "Unicode" + self.result.data_object.value = u'\u0107' -bad_numpy_data_types = [ - # not understood by json or yaml - 'float128', - # Not supported by h5py for version < 2.2 - 'float16', - # complex can not be serialized in json - 'complex256', - 'complex128', - 'complex64', - # ? - 'datetime64', - 'timedelta64', - ] - - -def create_good_method_func(numpy_data_type): - def method(self): - "numpy %s" % str(numpy_data_type)[7:-1] - import numpy - self.result.data_object.value = numpy_data_type(pi) - return method - - -def create_bad_method_func(numpy_data_type): - def method(self): - "numpy %s" % numpy_data_type - import numpy - try: - data = getattr(numpy, numpy_data_type)(pi) - except ValueError: - data = getattr(numpy, numpy_data_type)() - self.assertRaises(TypeError, self.result.data_object.__setattr__, 'value', data) - return method + for numpy_data_type in good_numpy_data_types: test_method = create_good_method_func(numpy_data_type) str_type = str(numpy_data_type)[13:-2] # keep only type string test_method.__name__ = 'testOnNumpy_%s' % str_type test_method.__doc__ = 'groks a numpy %s' % str_type - setattr(TestAnalyzerResult, test_method.__name__, test_method) + setattr(TestAnalyzerResultGoodType, test_method.__name__, test_method) for numpy_data_type in bad_numpy_data_types: test_method = create_bad_method_func(numpy_data_type) test_method.__name__ = 'testOnNumpy_%s' % numpy_data_type test_method.__doc__ = 'gasps on numpy %s' % numpy_data_type - setattr(TestAnalyzerResult, test_method.__name__, test_method) + setattr(TestAnalyzerResultBadType, test_method.__name__, test_method) -class TestAnalyzerResultNumpy(TestAnalyzerResult): + +class TestAnalyzerResultNumpy(TestAnalyzerResultGoodType): """ test AnalyzerResult numpy serialize """ def tearDown(self): @@ -158,7 +171,7 @@ class TestAnalyzerResultNumpy(TestAnalyzerResult): self.assertEqual(d_numpy, results) -class TestAnalyzerResultHdf5(TestAnalyzerResult): +class TestAnalyzerResultHdf5(TestAnalyzerResultGoodType): """ test AnalyzerResult hdf5 serialize """ def tearDown(self): @@ -171,7 +184,7 @@ class TestAnalyzerResultHdf5(TestAnalyzerResult): self.assertEqual(results, res_hdf5) -class TestAnalyzerResultYaml(TestAnalyzerResult): +class TestAnalyzerResultYaml(TestAnalyzerResultGoodType): """ test AnalyzerResult yaml serialize """ def tearDown(self): results = AnalyzerResultContainer(self.result) @@ -187,7 +200,7 @@ class TestAnalyzerResultYaml(TestAnalyzerResult): self.assertEqual(results, d_yaml) -class TestAnalyzerResultXml(TestAnalyzerResult): +class TestAnalyzerResultXml(TestAnalyzerResultGoodType): """ test AnalyzerResult xml serialize """ def tearDown(self): results = AnalyzerResultContainer([self.result]) @@ -205,7 +218,7 @@ class TestAnalyzerResultXml(TestAnalyzerResult): self.assertEqual(d_xml, results) -class TestAnalyzerResultJson(TestAnalyzerResult): +class TestAnalyzerResultJson(TestAnalyzerResultGoodType): """ test AnalyzerResult """ def tearDown(self): results = AnalyzerResultContainer([self.result]) @@ -226,7 +239,7 @@ class TestAnalyzerResultJson(TestAnalyzerResult): self.assertEqual(d_json, results) -class TestAnalyzerResultAsDict(TestAnalyzerResult): +class TestAnalyzerResultAsDict(TestAnalyzerResultGoodType): """ test AnalyzerResult as Dictionnary""" def tearDown(self): diff --git a/tests/test_decoding_stack.py b/tests/test_decoding_stack.py old mode 100644 new mode 100755