def test_size(self): df = self.init_df() update_enhanced_meta(df[df.columns[0]], self.catalog_id, self.distribution_id) self.assertEqual(meta_keys.get(self.field, meta_keys.INDEX_SIZE), str(len(df)))
def test_last_pct_change(self): df = self.init_df() serie = df[df.columns[-1]] update_enhanced_meta(df[df.columns[0]], self.catalog_id, self.distribution_id) self.assertEqual(meta_keys.get(self.field, meta_keys.LAST_PCT_CHANGE), str(serie[-1] / serie[-2] - 1))
def test_start_end_dates(self): df = self.init_df() update_enhanced_meta(df[df.columns[0]], self.catalog_id, self.distribution_id) self.assertEqual(str(df.index[0].date()), meta_keys.get(self.field, meta_keys.INDEX_START)) self.assertEqual(str(df.index[-1].date()), meta_keys.get(self.field, meta_keys.INDEX_END))
def test_last_values(self): df = self.init_df() serie = df[df.columns[-1]] update_enhanced_meta(df[df.columns[0]], self.catalog_id, self.distribution_id) self.assertEqual(meta_keys.get(self.field, meta_keys.LAST_VALUE), str(serie[-1])) self.assertEqual(meta_keys.get(self.field, meta_keys.SECOND_TO_LAST_VALUE), str(serie[-2]))
def test_periodicity(self): df = self.init_df() update_enhanced_meta(df[df.columns[0]], self.catalog_id, self.distribution_id) self.assertEqual( meta_keys.get(self.field, meta_keys.PERIODICITY), meta_keys.get(self.field.distribution, meta_keys.PERIODICITY))
def test_is_updated(self): df = self.init_df() with mock.patch( 'series_tiempo_ar_api.libs.indexing.indexer.metadata.datetime', self.MockDatetime(df.index[-1])): update_enhanced_meta(df[df.columns[0]], self.catalog_id, self.distribution_id) self.assertEqual(meta_keys.get(self.field, meta_keys.IS_UPDATED), str(True))
def test_days_since_last_update(self): df = self.init_df() update_enhanced_meta(df[df.columns[0]], self.catalog_id, self.distribution_id) last_date = df.index[-1] # Sólo válido porque la serie es diaria! Con otra periodicity hay que considerar # el fin del período days = (datetime.datetime.today() - last_date).days self.assertEqual(meta_keys.get(self.field, meta_keys.DAYS_SINCE_LAST_UPDATE), str(days))
def test_min(self): df = self.init_df() update_enhanced_meta(df[df.columns[0]], self.catalog_id, self.distribution_id) self.assertAlmostEqual(float(meta_keys.get(self.field, meta_keys.MIN)), df[df.columns[0]].min())
def test_is_updated(self): df = self.init_df() with freeze_time(df.index[-1]): update_enhanced_meta(df[df.columns[0]], self.catalog_id, self.distribution_id) self.assertEqual(meta_keys.get(self.field, meta_keys.IS_UPDATED), str(True))
def test_is_not_updated(self): df = self.init_df() update_enhanced_meta(df[df.columns[0]], self.catalog_id, self.distribution_id) self.assertEqual(meta_keys.get(self.field, meta_keys.IS_UPDATED), str(False))