def test_business_period(self): b_periods = self.test_calendar.business_schedule( self.b_day1).business_periods self.assertEqual(len(b_periods), 1) p = b_periods[0] s = time.format_datetime(p.start_time, time.TimeZone.NY) self.assertEqual(p.start_time, time.to_datetime(s)) s = time.format_datetime(p.end_time, time.TimeZone.NY) self.assertEqual(p.end_time, time.to_datetime(s)) self.assertEqual(p.length, 6.5 * 60 * 60 * 10**9)
def test_historical_table_replayer(self): dt1 = to_datetime("2000-01-01T00:00:01 NY") dt2 = to_datetime("2000-01-01T00:00:02 NY") dt3 = to_datetime("2000-01-01T00:00:04 NY") hist_table = new_table([ datetime_col("DateTime", [dt1, dt2, dt3]), int_col("Number", [1, 3, 6]) ]) hist_table2 = new_table([ datetime_col("DateTime", [dt1, dt2, dt3]), int_col("Number", [1, 3, 6]) ]) start_time = to_datetime("2000-01-01T00:00:00 NY") end_time = to_datetime("2000-01-01T00:00:05 NY") replayer = TableReplayer(start_time, end_time) replay_table = replayer.add_table(hist_table, "DateTime") replay_table2 = replayer.add_table(hist_table2, "DateTime") self.assert_table_equals(replay_table, replay_table2) replayer.start() self.assertTrue(replay_table.is_refreshing) self.assertTrue(replay_table2.is_refreshing) self.wait_ticking_table_update(replay_table, row_count=3, timeout=60) self.wait_ticking_table_update(replay_table2, row_count=3, timeout=60) self.assert_table_equals(replay_table, replay_table2) replayer.shutdown() with self.subTest("replayer can't be reused after shutdown."): with self.assertRaises(DHError) as cm: replayer.add_table(hist_table, "DateTime") self.assertIn("RuntimeError", cm.exception.root_cause) with self.subTest("replayer can't be restarted after shutdown."): with self.assertRaises(DHError): replayer.start() with self.subTest("Add table after replayer is restarted."): replayer = TableReplayer(start_time, end_time) replayer.start() replay_table = replayer.add_table(hist_table, "DateTime") self.assertTrue(replay_table.is_refreshing) self.wait_ticking_table_update(replay_table, row_count=3, timeout=60) replayer.shutdown()
def test_to_table_datetime_with_none(self): datetime_str = "2021-12-10T23:59:59 NY" dt = to_datetime(datetime_str) datetime_str = "2021-12-10T23:59:59 HI" dt1 = to_datetime(datetime_str) input_cols = [ datetime_col(name="Datetime", data=[dtypes.DateTime(1), None, dt, dt1]) ] table_with_null_dt = new_table(cols=input_cols) df = to_pandas(table_with_null_dt) table_from_df = to_table(df) self.assert_table_equals(table_from_df, table_with_null_dt)