def test_init(self): spec = specification.Specifier() self.assertListEqual(spec.input_file_list, [], 'Input file list not initialized to empty') self.assertEqual(spec.netcdf_format, 'netcdf4c', 'NetCDF format not initialized to netcdf4c') self.assertEqual(spec.output_file_prefix, 'tseries.', 'Output file prefix not initialized to tseries.') self.assertEqual(spec.output_file_suffix, '.nc', 'Output file prefix not initialized to .nc') self.assertListEqual( spec.time_variant_metadata, [], 'Time variant metadata list not initialized to empty')
def test_validate_values_fail_3(self): in_list = ['timekeeperTests.py', 'messengerTests.py'] fmt = 'netcdf4' prefix = '/sfcsrytsdfv/pre.' suffix = '.suf.nc' metadata = [] spec = specification.Specifier(infiles=in_list, ncfmt=fmt, prefix=prefix, suffix=suffix, metadata=metadata) spec.validate_types() self.assertRaises(ValueError, spec.validate_values)
def test_validate_values_fail_cl(): in_list = ['test_reshaper.py', 'test_s2srun.py'] fmt = 'netcdf4' cl = 111 prefix = 'pre.' suffix = '.suf.nc' metadata = [] spec = specification.Specifier( infiles=in_list, ncfmt=fmt, compression=cl, prefix=prefix, suffix=suffix, metadata=metadata ) spec.validate_types() with pytest.raises(ValueError): spec.validate_values()
def test_validate_values_fail_input(): in_list = ['a', 'b', 'c'] fmt = 'netcdf' cl = 5 prefix = 'pre.' suffix = '.suf.nc' metadata = [] spec = specification.Specifier( infiles=in_list, ncfmt=fmt, compression=cl, prefix=prefix, suffix=suffix, metadata=metadata ) spec.validate_types() with pytest.raises(ValueError): spec.validate_values()
def test_validate_values_fail_1(self): in_list = ['a', 'b', 'c'] fmt = 'netcdf' prefix = 'pre.' suffix = '.suf.nc' metadata = [] spec = specification.Specifier(infiles=in_list, ncfmt=fmt, prefix=prefix, suffix=suffix, metadata=metadata) spec.validate_types() self.assertRaises(ValueError, spec.validate_values)
def test_validate_types_fail_format(self): in_list = ['a', 'b', 'c'] fmt = 2342 cl = 5 prefix = 'pre.' suffix = '.suf.nc' metadata = ['x', 'y', 'z'] spec = specification.Specifier(infiles=in_list, ncfmt=fmt, compression=cl, prefix=prefix, suffix=suffix, metadata=metadata) self.assertRaises(TypeError, spec.validate_types)
def test_validate_types(self): in_list = ['a', 'b', 'c'] fmt = 'netcdf' cl = 3 prefix = 'pre.' suffix = '.suf.nc' metadata = ['x', 'y', 'z'] spec = specification.Specifier(infiles=in_list, ncfmt=fmt, compression=cl, prefix=prefix, suffix=suffix, metadata=metadata) spec.validate_types()
def test_init(): spec = specification.Specifier() assert len(spec.input_file_list) == 0 assert spec.netcdf_format == 'netcdf4' assert spec.compression_level == 0 assert spec.least_significant_digit is None assert spec.output_file_prefix == 'tseries.' assert spec.output_file_suffix == '.nc' assert spec.time_series is None assert len(spec.time_variant_metadata) == 0 assert spec.assume_1d_time_variant_metadata is False assert spec.io_backend == 'netCDF4' assert spec.exclude_list == [] assert spec.metadata_filename is None
def test_init(self): spec = specification.Specifier() self.assertEqual(len(spec.input_file_list), 0, 'Input file list not initialized to empty') self.assertEqual(spec.netcdf_format, 'netcdf4', 'NetCDF format not initialized to netcdf4') self.assertEqual(spec.compression_level, 0, 'NetCDF compression level not initialized to 0') self.assertEqual(spec.output_file_prefix, 'tseries.', 'Output file prefix not initialized to tseries.') self.assertEqual(spec.output_file_suffix, '.nc', 'Output file prefix not initialized to .nc') self.assertEqual( len(spec.time_variant_metadata), 0, 'Time variant metadata list not initialized to empty')
def test_validate_values_fail_format(self): in_list = ['timekeeperTests.py', 'messengerTests.py'] fmt = 'netcdf9' cl = 5 prefix = 'pre.' suffix = '.suf.nc' metadata = [] spec = specification.Specifier(infiles=in_list, ncfmt=fmt, compression=cl, prefix=prefix, suffix=suffix, metadata=metadata) spec.validate_types() self.assertRaises(ValueError, spec.validate_values)
def test_validate_values_mod(self): in_list = ['specificationTests.py'] fmt = 'netcdf4' prefix = 'pre.' suffix = '.suf' metadata = [] spec = specification.Specifier(infiles=in_list, ncfmt=fmt, prefix=prefix, suffix=suffix, metadata=metadata) spec.validate_types() spec.validate_values() self.assertEqual(spec.output_file_suffix, suffix + '.nc', 'Suffix was not changed to .nc extension')
def test_validate_types_fail_timeseries(self): in_list = ['a', 'b', 'c'] fmt = 'netcdf' cl = 5 prefix = 'pre.' suffix = '.suf.nc' tseries = ['1', 2.5] metadata = ['x', 'y', 'z'] spec = specification.Specifier(infiles=in_list, ncfmt=fmt, compression=cl, prefix=prefix, suffix=suffix, timeseries=tseries, metadata=metadata) self.assertRaises(TypeError, spec.validate_types)
def test_validate_types(): in_list = ['a', 'b', 'c'] fmt = 'netcdf' cl = 3 prefix = 'pre.' suffix = '.suf.nc' tseries = ['1', '2'] metadata = ['x', 'y', 'z'] spec = specification.Specifier( infiles=in_list, ncfmt=fmt, compression=cl, prefix=prefix, suffix=suffix, timeseries=tseries, metadata=metadata, meta1d=True, ) spec.validate_types()
def test_validate_types_fail_meta1d(): in_list = ['a', 'b', 'c'] fmt = 'netcdf' cl = 5 prefix = 'pre.' suffix = '.suf.nc' metadata = ['x', 'y', 'z'] meta1d = 't' spec = specification.Specifier( infiles=in_list, ncfmt=fmt, compression=cl, prefix=prefix, suffix=suffix, meta1d=meta1d, metadata=metadata, ) with pytest.raises(TypeError): spec.validate_types()
def test_validate_types_fail_backend(): in_list = ['a', 'b', 'c'] fmt = 2342 cl = 5 prefix = 'pre.' suffix = '.suf.nc' metadata = ['x', 'y', 'z'] backend = 1 spec = specification.Specifier( infiles=in_list, ncfmt=fmt, compression=cl, prefix=prefix, suffix=suffix, metadata=metadata, backend=backend, ) with pytest.raises(TypeError): spec.validate_types()
def test_init_full(): in_list = ['a', 'b', 'c'] fmt = 'netcdf4c' cl = 4 prefix = 'pre.' suffix = '.suf.nc' tseries = ['1', '2'] metadata = ['x', 'y', 'z'] xlist = ['g', 'h'] meta1d = True metafile = 'd' backend = 'Nio' lsigfig = 3 spec = specification.Specifier( infiles=in_list, ncfmt=fmt, compression=cl, prefix=prefix, suffix=suffix, timeseries=tseries, metadata=metadata, meta1d=meta1d, metafile=metafile, backend=backend, least_significant_digit=lsigfig, exclude_list=xlist, ) for i1, i2 in zip(spec.input_file_list, in_list): assert i1 == i2 assert spec.io_backend == backend assert spec.metadata_filename == metafile assert spec.netcdf_format == fmt assert spec.compression_level == cl assert spec.output_file_prefix == prefix assert spec.output_file_suffix == suffix assert spec.exclude_list == xlist assert spec.least_significant_digit == lsigfig for i1, i2 in zip(spec.time_series, tseries): assert i1 == i2 for i1, i2 in zip(spec.time_variant_metadata, metadata): assert i1 == i2 assert spec.assume_1d_time_variant_metadata == meta1d
def test_init_full(self): in_list = ['a', 'b', 'c'] fmt = 'netcdf4c' cl = 4 prefix = 'pre.' suffix = '.suf.nc' tseries = ['1', '2'] metadata = ['x', 'y', 'z'] meta1d = True backend = 'Nio' spec = specification.Specifier(infiles=in_list, ncfmt=fmt, compression=cl, prefix=prefix, suffix=suffix, timeseries=tseries, metadata=metadata, meta1d=meta1d, backend=backend) for i1, i2 in zip(spec.input_file_list, in_list): self.assertEqual(i1, i2, 'Input file list not initialized properly') self.assertEqual(spec.io_backend, backend, 'NetCDF I/O backend not set properly') self.assertEqual(spec.netcdf_format, fmt, 'NetCDF format not initialized properly') self.assertEqual(spec.compression_level, cl, 'NetCDF compression level not initialized properly') self.assertEqual(spec.output_file_prefix, prefix, 'Output file prefix not initialized properly') self.assertEqual(spec.output_file_suffix, suffix, 'Output file prefix not initialized properly') for i1, i2 in zip(spec.time_series, tseries): self.assertEqual(i1, i2, 'Time-series list not initialized properly') for i1, i2 in zip(spec.time_variant_metadata, metadata): self.assertEqual( i1, i2, 'Time-variant metadata list not initialized properly') self.assertEqual(spec.assume_1d_time_variant_metadata, meta1d, '1D metadata flag not initialized properly')
def test_init_full(self): in_list = ['a', 'b', 'c'] fmt = 'netcdf' prefix = 'pre.' suffix = '.suf.nc' metadata = ['x', 'y', 'z'] spec = specification.Specifier(infiles=in_list, ncfmt=fmt, prefix=prefix, suffix=suffix, metadata=metadata) self.assertListEqual(spec.input_file_list, in_list, 'Input file list not initialized properly') self.assertEqual(spec.netcdf_format, fmt, 'NetCDF format not initialized properly') self.assertEqual(spec.output_file_prefix, prefix, 'Output file prefix not initialized properly') self.assertEqual(spec.output_file_suffix, suffix, 'Output file prefix not initialized properly') self.assertListEqual( spec.time_variant_metadata, metadata, 'Time variant metadata list not initialized properly')
def test_init(self): spec = specification.Specifier() self.assertEqual(len(spec.input_file_list), 0, 'Input file list not initialized to empty') self.assertEqual(spec.netcdf_format, 'netcdf4', 'NetCDF format not initialized to netcdf4') self.assertEqual(spec.compression_level, 0, 'NetCDF compression level not initialized to 0') self.assertEqual(spec.output_file_prefix, 'tseries.', 'Output file prefix not initialized to tseries.') self.assertEqual(spec.output_file_suffix, '.nc', 'Output file prefix not initialized to .nc') self.assertEqual( spec.time_series, None, 'Time-series variables list is not initialized to None') self.assertEqual( len(spec.time_variant_metadata), 0, 'Time variant metadata list not initialized to empty') self.assertEqual( spec.assume_1d_time_variant_metadata, False, 'Time-variable 1D metadata flag is not initialized to False') self.assertEqual(spec.io_backend, 'netCDF4', 'I/O backend not initialized to netCDF4')
def test_write(self): in_list = ['specificationTests.py'] fmt = 'netcdf4' cl = 8 prefix = 'pre.' suffix = '.suf.nc' tseries = ['1', '2'] metadata = ['time'] spec = specification.Specifier(infiles=in_list, ncfmt=fmt, compression=cl, prefix=prefix, suffix=suffix, timeseries=tseries, metadata=metadata) fname = 'test_write.s2s' spec.write(fname) self.assertTrue(os.path.exists(fname), 'Specfile failed to write') spec2 = pickle.load(open(fname, 'r')) for i1, i2 in zip(spec2.input_file_list, in_list): self.assertEqual(i1, i2, 'Input file list not initialized properly') self.assertEqual(spec2.netcdf_format, fmt, 'NetCDF format not initialized properly') self.assertEqual(spec2.compression_level, cl, 'NetCDF compression level not initialized properly') self.assertEqual(spec2.output_file_prefix, prefix, 'Output file prefix not initialized properly') self.assertEqual(spec2.output_file_suffix, suffix, 'Output file prefix not initialized properly') for i1, i2 in zip(spec2.time_series, tseries): self.assertEqual(i1, i2, 'Time series name list not initialized properly') for i1, i2 in zip(spec2.time_variant_metadata, metadata): self.assertEqual( i1, i2, 'Time variant metadata list not initialized properly') os.remove(fname)
def test_validate_types_defaults(self): in_list = ['a', 'b', 'c'] spec = specification.Specifier(infiles=in_list) spec.validate_types()