def test_clean_multichartseries_non_number_is_prompting_error(self): context = self._render_context(input_table=arrow_table({ "A": ["a"], "B": pa.array([datetime.now()], pa.timestamp("ns")) })) value = [ { "column": "A", "color": "#aaaaaa" }, { "column": "B", "color": "#cccccc" }, ] with self.assertRaises(PromptingError) as cm: clean_value(ParamDType.Multichartseries(), value, context) self.assertEqual( cm.exception.errors, [ PromptingError.WrongColumnType(["A"], "text", frozenset({"number"})), PromptingError.WrongColumnType(["B"], "datetime", frozenset({"number"})), ], )
def test_clean_multichartseries_missing_is_removed(self): context = self._render_context(input_table=arrow_table({"A": [1], "B": [1]})) value = [ {"column": "A", "color": "#aaaaaa"}, {"column": "C", "color": "#cccccc"}, ] result = clean_value(ParamDType.Multichartseries(), value, context) self.assertEqual(result, [{"column": "A", "color": "#aaaaaa"}])
def test_clean_multichartseries_is_error(self): with self.assertRaisesRegex(RuntimeError, "Unsupported: fetch multichartseries"): clean_value(ParamDType.Multichartseries(), [], None)
def dtype(self) -> Optional[ParamDType]: return ParamDType.Multichartseries()