diff options
Diffstat (limited to 'silx/io/test/test_spech5.py')
-rw-r--r-- | silx/io/test/test_spech5.py | 72 |
1 files changed, 26 insertions, 46 deletions
diff --git a/silx/io/test/test_spech5.py b/silx/io/test/test_spech5.py index 1d04c6f..b842243 100644 --- a/silx/io/test/test_spech5.py +++ b/silx/io/test/test_spech5.py @@ -1,6 +1,6 @@ # coding: utf-8 # /*########################################################################## -# Copyright (C) 2016-2017 European Synchrotron Radiation Facility +# Copyright (C) 2016-2018 European Synchrotron Radiation Facility # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -22,7 +22,6 @@ # # ############################################################################*/ """Tests for spech5""" -import gc from numpy import array_equal import os import io @@ -32,11 +31,10 @@ import unittest import datetime from functools import partial -from silx.test import utils +from silx.utils import testutils from .. import spech5 -from ..spech5 import (SpecH5, SpecH5Group, - SpecH5Dataset, spec_date_to_iso8601) +from ..spech5 import (SpecH5, SpecH5Dataset, spec_date_to_iso8601) from .. import specfile try: @@ -46,7 +44,7 @@ except ImportError: __authors__ = ["P. Knobel"] __license__ = "MIT" -__date__ = "26/07/2017" +__date__ = "12/02/2018" sftext = """#F /tmp/sf.dat #E 1455180875 @@ -216,7 +214,7 @@ class TestSpecH5(unittest.TestCase): @classmethod def setUpClass(cls): fd, cls.fname = tempfile.mkstemp() - if sys.version < '3.0': + if sys.version_info < (3, ): os.write(fd, sftext) else: os.write(fd, bytes(sftext, 'ascii')) @@ -230,9 +228,7 @@ class TestSpecH5(unittest.TestCase): self.sfh5 = SpecH5(self.fname) def tearDown(self): - # fix Win32 permission error when deleting temp file - del self.sfh5 - gc.collect() + self.sfh5.close() def testContainsFile(self): self.assertIn("/1.2/measurement", self.sfh5) @@ -275,9 +271,9 @@ class TestSpecH5(unittest.TestCase): def testDate(self): # start time is in Iso8601 format self.assertEqual(self.sfh5["/1.1/start_time"], - b"2016-02-11T09:55:20") + u"2016-02-11T09:55:20") self.assertEqual(self.sfh5["25.1/start_time"], - b"2015-03-14T03:53:50") + u"2015-03-14T03:53:50") def testDatasetInstanceAttr(self): """The SpecH5Dataset objects must implement some dummy attributes @@ -299,7 +295,7 @@ class TestSpecH5(unittest.TestCase): -3) self.assertEqual(self.sfh5.get("/1.1/start_time", default=-3), - b"2016-02-11T09:55:20") + u"2016-02-11T09:55:20") def testGetClass(self): """Test :meth:`SpecH5Group.get`""" @@ -355,33 +351,22 @@ class TestSpecH5(unittest.TestCase): def testHeader(self): file_header = self.sfh5["/1.2/instrument/specfile/file_header"] scan_header = self.sfh5["/1.2/instrument/specfile/scan_header"] - # convert ndarray(dtype=numpy.string_) to str - if sys.version < '3.0': - file_header = str(file_header[()]) - scan_header = str(scan_header[()]) - else: - file_header = str(file_header.astype(str)) - scan_header = str(scan_header.astype(str)) # File header has 10 lines - self.assertEqual(len(file_header.split("\n")), 10) + self.assertEqual(len(file_header), 10) # 1.2 has 9 scan & mca header lines - self.assertEqual(len(scan_header.split("\n")), 9) + self.assertEqual(len(scan_header), 9) # line 4 of file header self.assertEqual( - file_header.split("\n")[3], - "#C imaging User = opid17") + file_header[3], + u"#C imaging User = opid17") # line 4 of scan header scan_header = self.sfh5["25.1/instrument/specfile/scan_header"] - if sys.version < '3.0': - scan_header = str(scan_header[()]) - else: - scan_header = str(scan_header[()].astype(str)) self.assertEqual( - scan_header.split("\n")[3], - "#P1 4.74255 6.197579 2.238283") + scan_header[3], + u"#P1 4.74255 6.197579 2.238283") def testLinks(self): self.assertTrue( @@ -493,7 +478,7 @@ class TestSpecH5(unittest.TestCase): def testTitle(self): self.assertEqual(self.sfh5["/25.1/title"], - b"25 ascan c3th 1.33245 1.52245 40 0.15") + u"ascan c3th 1.33245 1.52245 40 0.15") def testValues(self): group = self.sfh5["/25.1"] @@ -582,9 +567,9 @@ class TestSpecH5(unittest.TestCase): # All 0 values self.assertNotIn("sample", self.sfh5["/1001.1"]) with self.assertRaises(KeyError): - uc = self.sfh5["/1001.1/sample/unit_cell"] + self.sfh5["/1001.1/sample/unit_cell"] - @utils.test_logging(spech5.logger1.name, warning=2) + @testutils.test_logging(spech5.logger1.name, warning=2) def testOpenFileDescriptor(self): """Open a SpecH5 file from a file descriptor""" with io.open(self.sfh5.filename) as f: @@ -593,6 +578,7 @@ class TestSpecH5(unittest.TestCase): name_list = [] # check if the object is working self.sfh5.visit(name_list.append) + sfh5.close() sftext_multi_mca_headers = """ @@ -624,7 +610,7 @@ class TestSpecH5MultiMca(unittest.TestCase): @classmethod def setUpClass(cls): fd, cls.fname = tempfile.mkstemp(text=False) - if sys.version < '3.0': + if sys.version_info < (3, ): os.write(fd, sftext_multi_mca_headers) else: os.write(fd, bytes(sftext_multi_mca_headers, 'ascii')) @@ -638,9 +624,7 @@ class TestSpecH5MultiMca(unittest.TestCase): self.sfh5 = SpecH5(self.fname) def tearDown(self): - # fix Win32 permission error when deleting temp file - del self.sfh5 - gc.collect() + self.sfh5.close() def testMcaCalib(self): mca0_calib = self.sfh5["/1.1/measurement/mca_0/info/calibration"] @@ -691,7 +675,7 @@ sftext_no_cols = r"""#F C:/DATA\test.mca #D Thu Jul 7 08:40:19 2016 #C no data cols, one mca analyser, single spectrum #@MCA %16C -#@CHANN 151 29 29 1 +#@CHANN 151 0 150 1 #@CALIB 0 2 0 @A 789 784 788 814 847 862 880 904 925 955 987 1015 1031 1070 1111 1139 \ 1203 1236 1290 1392 1492 1558 1688 1813 1977 2119 2346 2699 3121 3542 4102 4970 \ @@ -756,7 +740,7 @@ class TestSpecH5NoDataCols(unittest.TestCase): @classmethod def setUpClass(cls): fd, cls.fname = tempfile.mkstemp() - if sys.version < '3.0': + if sys.version_info < (3, ): os.write(fd, sftext_no_cols) else: os.write(fd, bytes(sftext_no_cols, 'ascii')) @@ -770,9 +754,7 @@ class TestSpecH5NoDataCols(unittest.TestCase): self.sfh5 = SpecH5(self.fname) def tearDown(self): - # fix Win32 permission error when deleting temp file - del self.sfh5 - gc.collect() + self.sfh5.close() def testScan1(self): # 1.1: single analyser, single spectrum, 151 channels @@ -829,7 +811,7 @@ class TestSpecH5SlashInLabels(unittest.TestCase): @classmethod def setUpClass(cls): fd, cls.fname = tempfile.mkstemp() - if sys.version < '3.0': + if sys.version_info < (3, ): os.write(fd, sf_text_slash) else: os.write(fd, bytes(sf_text_slash, 'ascii')) @@ -843,9 +825,7 @@ class TestSpecH5SlashInLabels(unittest.TestCase): self.sfh5 = SpecH5(self.fname) def tearDown(self): - # fix Win32 permission error when deleting temp file - del self.sfh5 - gc.collect() + self.sfh5.close() def testLabels(self): """Ensure `/` is substituted with `%` and |