示例#1
0
    def test_null_field(self):
        # Code coverage test cases

        # Null case test
        self.assertEqual(
            validate_form(FormField(required=True), None),
            (False, "Required field is missing"),
        )
        self.assertEqual(validate_form(FormField(), None), (True, ""))
示例#2
0
 def test_bool_field(self):
     self.assertEqual(
         validate_form(FormField(field_type=FormFieldType.Boolean), "123"),
         (False, "Field value is not a boolean"),
     )
     self.assertEqual(
         validate_form(FormField(field_type=FormFieldType.Boolean), 123),
         (False, "Field value is not a boolean"),
     )
     self.assertEqual(
         validate_form(FormField(field_type=FormFieldType.Boolean), True),
         (True, ""))
示例#3
0
 def test_number_field(self):
     self.assertEqual(
         validate_form(FormField(field_type=FormFieldType.Number), "123"),
         (False, "Field value is not a number"),
     )
     self.assertEqual(
         validate_form(FormField(field_type=FormFieldType.Number), 123),
         (True, ""))
     self.assertEqual(
         validate_form(FormField(field_type=FormFieldType.Number), 123.123),
         (True, ""),
     )
示例#4
0
    def test_string_field(self):
        # String Tests
        self.assertEqual(validate_form(FormField(), 123),
                         (False, "Field value is not a string"))
        self.assertEqual(validate_form(FormField(), "123"), (True, ""))

        self.assertEqual(
            validate_form(FormField(regex="^[a-z]+$"), "querybook2"),
            (False, "Field value does not match regex"),
        )
        self.assertEqual(
            validate_form(FormField(regex="^[a-z]+$"), "querybook"),
            (True, ""))
示例#5
0
def export_statement_execution_result(statement_execution_id,
                                      exporter_name,
                                      exporter_params=None):
    with DBSession() as session:
        statement_execution = logic.get_statement_execution_by_id(
            statement_execution_id, session=session)
        api_assert(statement_execution is not None,
                   message="Invalid statement execution")
        verify_query_execution_permission(
            statement_execution.query_execution_id, session=session)

    exporter = get_exporter(exporter_name)
    api_assert(exporter is not None, f"Invalid export name {exporter_name}")

    if exporter_params:
        valid, reason = validate_form(exporter.export_form, exporter_params)
        api_assert(valid, "Invalid exporter params, reason: " + reason)

    task = export_query_execution_task.apply_async(args=[
        exporter.exporter_name,
        statement_execution_id,
        current_user.id,
        exporter_params or {},
    ], )

    return task.task_id
示例#6
0
 def test_array_field(self):
     form = ExpandableFormField(of=FormField(), min=2, max=4)
     self.assertEqual(
         validate_form(form, "123"),
         (False, "Field value is not an array"),
     )
     self.assertEqual(
         validate_form(form, ["123"]),
         (False, "Field value less than allowed length"),
     )
     self.assertEqual(
         validate_form(form, ["123"] * 5),
         (False, "Field value more than allowed length"),
     )
     self.assertEqual(
         validate_form(form, ["123", "123", 123]),
         (False, "Field value is not a string"),
     )
     self.assertEqual(validate_form(form, ["123", "456", "789"]),
                      (True, ""))
示例#7
0
 def test_dict_field(self):
     form = StructFormField(
         name=FormField(),
         phone_numbers=ExpandableFormField(of=FormField(), min=1, max=2),
     )
     self.assertEqual(
         validate_form(form, "123"),
         (False, "Field value is not a dictionary"),
     )
     self.assertEqual(
         validate_form(form, {
             "phone_numbers": [1234],
             "name": "bob"
         }),
         (False, "Field value is not a string"),
     )
     self.assertEqual(
         validate_form(form, {
             "phone_numbers": ["1234"] * 3,
             "name": "bob"
         }),
         (False, "Field value more than allowed length"),
     )
     self.assertEqual(
         validate_form(form, {
             "phone_numbers": ["1234"],
             "name": "bob"
         }),
         (True, ""),
     )
     self.assertEqual(
         validate_form(
             form,
             {
                 "phone_numbers": ["1234"],
             },
         ),
         (True, ""),
     )
示例#8
0
def validate_exporters_config(export_configs: List):
    if not export_configs:
        return

    for export_config in export_configs:
        validate_dict_keys(export_config, valid_export_config_keys)

        if export_config.get("exporter_cell_id", None) is None:
            raise InvalidScheduleException("exporter_cell_id is required")

        exporter = _get_exporter(export_config)
        exporter_params = export_config.get("exporter_params", {})
        exporter_form = exporter.export_form
        if exporter_form is not None or exporter_params:
            valid, reason = validate_form(exporter_form, exporter_params)
            if not valid:
                raise InvalidScheduleException(
                    f"Invalid exporter params, reason: {reason}")
示例#9
0
 def test_unknown_field(self):
     self.assertEqual(validate_form(None, None),
                      (False, "Unexpected form type"))