Exemple #1
0
def test_list_recurse():
    assert parse({
        "type": "list",
        "inner_dtype": {
            "type": "string"
        }
    }) == ParamSchema.List(ParamSchema.String())
Exemple #2
0
    def _(self, schema: ParamSchema.Multitab, value: List[str]) -> List[str]:
        slugs = frozenset(
            # recurse -- the same way we clean a list.
            slug for slug in self.clean_value_list(
                ParamSchema.List(inner_schema=ParamSchema.Tab()), value)
            if slug is not None)

        # Order based on `self.tabs`.
        return [slug for slug in self.tabs.keys() if slug in slugs]
Exemple #3
0
    def test_list_prompting_error_concatenate_different_type_to_text(self):
        schema = ParamSchema.List(inner_schema=ParamSchema.Column(
            column_types=frozenset({"text"})))
        with self.assertRaises(PromptingError) as cm:
            self._call_clean_value(
                schema, ["A", "B"],
                input_table_columns=[NUMBER("A"), TIMESTAMP("B")])

        self.assertEqual(
            cm.exception.errors,
            [
                PromptingError.WrongColumnType(["A", "B"], None,
                                               frozenset({"text"}))
            ],
        )
Exemple #4
0
    def test_list_prompting_error_concatenate_same_type(self):
        schema = ParamSchema.List(inner_schema=ParamSchema.Column(
            column_types=frozenset({"number"})))
        with self.assertRaises(PromptingError) as cm:
            self._call_clean_value(schema, ["A", "B"],
                                   input_table_columns=[TEXT("A"),
                                                        TEXT("B")])

        self.assertEqual(
            cm.exception.errors,
            [
                PromptingError.WrongColumnType(["A", "B"], "text",
                                               frozenset({"number"}))
            ],
        )