summaryrefslogtreecommitdiff
path: root/silx/io/test/test_spech5.py
diff options
context:
space:
mode:
Diffstat (limited to 'silx/io/test/test_spech5.py')
-rw-r--r--silx/io/test/test_spech5.py72
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