Esempio n. 1
0
 def test_clean_multicolumn_from_other_tab_that_does_not_exist(self):
     # The other tab would not exist if the user selected and then deleted
     # it.
     result = self._call_prep_params(
         schema=ParamSchema.Dict({
             "tab":
             ParamSchema.Tab(),
             "columns":
             ParamSchema.Multicolumn(tab_parameter="tab"),
         }),
         params={
             "tab": "tab-missing",
             "columns": ["A-from-tab-1"]
         },
         input_table_columns=[NUMBER("A-from-tab-1")],
         tab_results={},
     )
     # result.params['tab'] is not what we're testing here
     self.assertEqual(result.params["columns"], [])
Esempio n. 2
0
    def test_clean_multicolumn_prompting_error_convert_to_text(self):
        # TODO make this _automatic_ instead of quick-fix?
        # ... but for now: prompt for a Quick Fix.
        input_shape = TableMetadata(
            3,
            [
                Column("A", ColumnType.Number()),
                Column("B", ColumnType.Timestamp()),
                Column("C", ColumnType.Text()),
            ],
        )
        with self.assertRaises(PromptingError) as cm:
            schema = ParamSchema.Multicolumn(column_types=frozenset({"text"}))
            clean_value(schema, "A,B", input_shape)

        self.assertEqual(
            cm.exception.errors,
            [
                PromptingError.WrongColumnType(["A", "B"], None,
                                               frozenset({"text"}))
            ],
        )
Esempio n. 3
0
def test_multicolumn_column_types_is_frozenset():
    assert parse({
        "type": "multicolumn",
        "column_types": ["timestamp", "number"]
    }) == ParamSchema.Multicolumn(
        column_types=frozenset(["timestamp", "number"]))
Esempio n. 4
0
 def test_clean_multicolumn_no_input_is_empty(self):
     self.assertEqual(
         clean_value(ParamSchema.Multicolumn(), "A", TableMetadata()), [])
Esempio n. 5
0
 def test_validate_empty_column_is_error(self):
     with pytest.raises(ValueError, match="Empty column not allowed"):
         S.Multicolumn().validate([""])
Esempio n. 6
0
 def test_validate_str_is_error(self):
     with pytest.raises(ValueError):
         S.Multicolumn().validate("X,Y")
Esempio n. 7
0
 def test_validate_list_of_non_str_is_error(self):
     with pytest.raises(ValueError):
         S.Multicolumn().validate([1, 2])
Esempio n. 8
0
 def test_validate_list_of_str_ok(self):
     S.Multicolumn().validate(["x", "y"]),
Esempio n. 9
0
 def test_default(self):
     assert S.Multicolumn().default == []