def test_validate_ok(self): S.Multichartseries().validate( [ dict(column="A", color="#aaaaaa"), dict(column="B", color="#bbbbbb"), ] )
def test_clean_multichartseries_non_number_is_prompting_error(self): with self.assertRaises(PromptingError) as cm: self._call_clean_value( ParamSchema.Multichartseries(), [ { "column": "A", "color": "#aaaaaa" }, { "column": "B", "color": "#cccccc" }, ], input_table_columns=[TEXT("A"), TIMESTAMP("B")], ) self.assertEqual( cm.exception.errors, [ PromptingError.WrongColumnType(["A"], "text", frozenset({"number"})), PromptingError.WrongColumnType(["B"], "timestamp", frozenset({"number"})), ], )
def test_clean_multichartseries_missing_is_removed(self): self.assertEqual( self._call_clean_value( ParamSchema.Multichartseries(), [ { "column": "A", "color": "#aaaaaa" }, { "column": "C", "color": "#cccccc" }, ], input_table_columns=[NUMBER("A"), NUMBER("B")], ), [{ "column": "A", "color": "#aaaaaa" }], )
def test_clean_multichartseries_is_error(self): with self.assertRaisesRegex(RuntimeError, "Unsupported: fetch multichartseries"): clean_value(ParamSchema.Multichartseries(), [], None)
def test_validate_not_list(self): with pytest.raises(ValueError, match="not a list"): S.Multichartseries().validate(dict(column="A", color="#aaaaaa"))
def test_validate_empty_column_bad(self): with pytest.raises(ValueError, match="column must be non-empty"): S.Multichartseries().validate([dict(column="", color="#000000")])
def test_validate_empty(self): S.Multichartseries().validate([])
def test_default(self): assert S.Multichartseries().default == []