From df2e26055d4d72c847e4fdb6239020553d99291f Mon Sep 17 00:00:00 2001 From: Florian Obersteiner Date: Thu, 17 Feb 2022 15:13:25 +0100 Subject: [PATCH] use pathlib for filepath handling --- tests/test_dataset.py | 67 ++++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 32 deletions(-) diff --git a/tests/test_dataset.py b/tests/test_dataset.py index b509876..8afd82b 100644 --- a/tests/test_dataset.py +++ b/tests/test_dataset.py @@ -1,10 +1,13 @@ import unittest -import os +import pathlib import io import datetime import numpy as np import icartt +# example files +fns = pathlib.Path('./examples').glob('*.ict') + def compareFiles(fn, strIn, strOut, skiplines=0, nlines=-1): # pragma: no cover strOut.seek(0) strIn.seek(0) @@ -12,14 +15,14 @@ def compareFiles(fn, strIn, strOut, skiplines=0, nlines=-1): # pragma: no cover output = strOut.readlines() strIn.close() strOut.close() - + if nlines > 0: input = input[skiplines:(skiplines+nlines)] output = output[skiplines:(skiplines+nlines)] else: input = input[skiplines:] output = output[skiplines:] - + if not len(input) == len(output): return False @@ -39,7 +42,7 @@ def compareFiles(fn, strIn, strOut, skiplines=0, nlines=-1): # pragma: no cover valid_data_line = valid_data_line and insteps[i] == outsteps[i] except: pass - + valid_var_line = False try: insteps = [ x.strip() for x in inline.split(",") ] @@ -48,14 +51,14 @@ def compareFiles(fn, strIn, strOut, skiplines=0, nlines=-1): # pragma: no cover valid_var_line = ( insteps[0] == outsteps[0] and insteps[1] == outsteps[1] and insteps[1] == outsteps[2] ) except: pass - + if not valid_data_line and not valid_var_line: print("{:s}: line {:d} differs:".format(fn, i)) print(" input: {:s}".format(inline)) print(" output: {:s}".format(outline)) - + return False - + return True class Simple1001TestCase(unittest.TestCase): @@ -65,7 +68,7 @@ class Simple1001TestCase(unittest.TestCase): def tearDown(self): a = 1 - + def testOpen(self): ict = icartt.Dataset(self.fn, loadData=False) self.assertEqual( type(ict), icartt.Dataset ) @@ -80,7 +83,7 @@ class Simple1001TestCase(unittest.TestCase): self.assertEqual( len(ict.dependentVariables), 9 ) self.assertEqual( len(ict.normalComments), 18 ) self.assertEqual( len(ict.specialComments), 0 ) - + def testIvar(self): ict = icartt.Dataset(self.fn, loadData=False) self.assertEqual( ict.independentVariable.shortname, "Start_UTC" ) @@ -92,28 +95,28 @@ class Simple1001TestCase(unittest.TestCase): def testDvar(self): ict = icartt.Dataset(self.fn, loadData=False) - - self.assertEqual( [ DVAR.shortname for DVAR in ict.dependentVariables.values() ], + + self.assertEqual( [ DVAR.shortname for DVAR in ict.dependentVariables.values() ], [ "Stop_UTC", "Mid_UTC", "DLat", "DLon", "Elev", "NO_ppbv", "NO_1sig", "NO2_ppbv", "NO2_1sig" ] ) - self.assertEqual( [ DVAR.units for DVAR in ict.dependentVariables.values() ], + self.assertEqual( [ DVAR.units for DVAR in ict.dependentVariables.values() ], [ "seconds", "seconds", "deg_N", "deg_E", "meters", "ppbv", "ppbv", "ppbv", "ppbv" ] ) - self.assertEqual( [ DVAR.standardname for DVAR in ict.dependentVariables.values() ], + self.assertEqual( [ DVAR.standardname for DVAR in ict.dependentVariables.values() ], [ None, None, None, None, None, None, None, None, None]) - self.assertEqual( [ DVAR.longname for DVAR in ict.dependentVariables.values() ], + self.assertEqual( [ DVAR.longname for DVAR in ict.dependentVariables.values() ], [ None, None, None, None, None, None, None, None, None]) - self.assertEqual( [ DVAR.scale for DVAR in ict.dependentVariables.values() ], + self.assertEqual( [ DVAR.scale for DVAR in ict.dependentVariables.values() ], [ '1', '1', '1', '1', '1', '1', '1', '1', '1' ] ) - self.assertEqual( [ DVAR.miss for DVAR in ict.dependentVariables.values() ], + self.assertEqual( [ DVAR.miss for DVAR in ict.dependentVariables.values() ], [ '-9999', '-9999', '-9999', '-9999', '-9999', '-9999', '-9999', '-9999', '-9999' ] ) def testNCOM(self): ict = icartt.Dataset(self.fn, loadData=False) - + self.assertEqual( ict.normalComments.keywords['PI_CONTACT_INFO'].data, [ "325 Broadway, Boulder, CO 80305; 303-497-3226; email:eric.j.williams@noaa.gov" ]) self.assertEqual( ict.normalComments.keywords['PLATFORM'].data, [ "NOAA research vessel Ronald H. Brown" ]) self.assertEqual( ict.normalComments.keywords['LOCATION'].data, [ "Latitude, longitude and elevation data are included in the data records" ]) @@ -139,9 +142,9 @@ class Simple1001TestCase(unittest.TestCase): strIn = open(self.fn) strOut = io.StringIO() - + ict.writeHeader(f=strOut) - + self.assertTrue( compareFiles(self.fn, strIn, strOut, nlines=self.nHeader) ) def testWriteData(self): @@ -149,9 +152,9 @@ class Simple1001TestCase(unittest.TestCase): strIn = open(self.fn) strOut = io.StringIO() - + ict.write(f=strOut) - + self.assertTrue( compareFiles(self.fn, strIn, strOut, skiplines=self.nHeader) ) def testWrite(self): @@ -159,9 +162,9 @@ class Simple1001TestCase(unittest.TestCase): strIn = open(self.fn) strOut = io.StringIO() - + ict.write(f=strOut) - + self.assertTrue( compareFiles(self.fn, strIn, strOut) ) class Create1001TestCase(unittest.TestCase): @@ -211,12 +214,12 @@ class Create1001TestCase(unittest.TestCase): ict.data.addBulk( data ) strOut = io.StringIO() - + ict.write(f=strOut) return True -fns = [ os.path.join("tests", "examples", fn) for fn in os.listdir(os.path.join("tests", "examples")) if fn.endswith(".ict")] +# fns = [ os.path.join("tests", "examples", fn) for fn in os.listdir(os.path.join("tests", "examples")) if fn.endswith(".ict")] #fns = [ "tests/examples/AROTAL-RAY_DC8_20040715_R1.ict" ] class BulkIOTestCase(unittest.TestCase): @@ -236,25 +239,25 @@ class BulkIOTestCase(unittest.TestCase): for fn in fns: with self.subTest(msg="Writing header for test file {:s}".format(fn)): ict = icartt.Dataset(fn, loadData=False) - + strIn = open(fn) strOut = io.StringIO() - + ict.writeHeader(f=strOut) - + self.assertTrue( compareFiles(fn, strIn, strOut, nlines=ict.nHeader) ) def testWrite(self): for fn in fns: with self.subTest(msg="Writing data for test file {:s}".format(fn)): ict = icartt.Dataset(fn, loadData=True) - + strIn = open(fn) strOut = io.StringIO() - + ict.write(f=strOut) - + self.assertTrue( compareFiles(fn, strIn, strOut) ) if __name__ == '__main__': # pragma: no cover - unittest.main() + unittest.main() \ No newline at end of file -- GitLab