def test_clean_multichartseries_non_number_is_prompting_error(self): context = RenderContext( None, None, TableShape(3, [ Column('A', ColumnType.TEXT()), Column('B', ColumnType.DATETIME()), ]), None, None) 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_non_number_is_prompting_error(self): context = RenderContext( None, None, TableShape(3, [ Column("A", ColumnType.TEXT()), Column("B", ColumnType.DATETIME()) ]), None, None, ) 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 = RenderContext(None, None, TableShape(3, [ Column('A', ColumnType.NUMBER()), Column('B', ColumnType.NUMBER()), ]), None, None) 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_multichartseries_omit_missing_table_columns(self): dtype = ParamDType.Multichartseries() value = dtype.omit_missing_table_columns([ { 'column': 'X', 'color': '#abcdef' }, { 'column': 'Y', 'color': '#abc123' }, ], {'X', 'Z'}) self.assertEqual(value, [{'column': 'X', 'color': '#abcdef'}])
def test_clean_multichartseries_missing_is_removed(self): context = RenderContext( None, None, TableShape(3, [ Column("A", ColumnType.NUMBER()), Column("B", ColumnType.NUMBER()) ]), None, None, ) 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)