def test_writeJSONMetadata(self): """reading metadata should give same keys as original datamodel""" dat = dm.readJSONMetadata(self.filename) # make sure data has all te keys and no more or less t_file = tempfile.NamedTemporaryFile(delete=False) t_file.close() dm.writeJSONMetadata(t_file.name, dat) dat2 = dm.readJSONheadedASCII(t_file.name) os.remove(t_file.name) keylist1 = sorted(dat.keys()) keylist2 = sorted(dat2.keys()) self.assertTrue(keylist1==keylist2) #now test that values in some metadata are identical self.assertTrue((dat['PerigeePosGeod'] == dat2['PerigeePosGeod']).all())
def test_toJSONmetadata_globals(self): """Test for handling of int, float, bool, list & dict in global attrs""" a = dm.SpaceData() a.attrs['Global1'] = 'A global string attribute' a.attrs['Global2'] = 2 a.attrs['Global3'] = 3.0 a.attrs['Global4'] = [1,2,3,4] a.attrs['Global5'] = True a['Var1'] = dm.dmarray([1,2,3,4,5], attrs={'Local1': 'A local attribute'}) a['Var2'] = dm.dmarray([[8,9],[9,1],[3,4],[8,9],[7,8]]) a['MVar'] = dm.dmarray([7.8], attrs={'Note': 'Metadata'}) t_file = tempfile.NamedTemporaryFile(delete=False) t_file.close() dm.writeJSONMetadata(t_file.name, a) dat2 = dm.readJSONMetadata(t_file.name) #test global attr self.assertTrue(a.attrs==dat2.attrs) #test that metadata is back and all original keys are present for key in a['MVar'].attrs: self.assertTrue(key in dat2['MVar'].attrs) np.testing.assert_array_equal(a['MVar'], dat2['MVar']) os.remove(t_file.name)