Пример #1
0
    def validate(self):
        validators.validate_string(self.pipeline_name, "pipeline_name")

        validators.validate_list(self.raw_data_sources, "raw_data_sources")
        for i, raw_data_source in enumerate(self.raw_data_sources):
            assert isinstance(
                raw_data_source, RawDataSource
            ), f"raw_data_sources[{i}] is not of type of RawDataSource"
            raw_data_source.validate()

        assert isinstance(self.phone_number_uuid_table, PhoneNumberUuidTable)
        self.phone_number_uuid_table.validate()

        validators.validate_list(self.rapid_pro_key_remappings,
                                 "rapid_pro_key_remappings")
        for i, remapping in enumerate(self.rapid_pro_key_remappings):
            assert isinstance(remapping, RapidProKeyRemapping), \
                f"rapid_pro_key_mappings[{i}] is not of type RapidProKeyRemapping"
            remapping.validate()

        validators.validate_datetime(self.project_start_date,
                                     "project_start_date")
        validators.validate_datetime(self.project_end_date, "project_end_date")

        validators.validate_bool(self.filter_test_messages,
                                 "filter_test_messages")
        validators.validate_bool(self.move_ws_messages, "move_ws_messages")

        if self.drive_upload is not None:
            assert isinstance(self.drive_upload, DriveUpload), \
                "drive_upload is not of type DriveUpload"
            self.drive_upload.validate()

        validators.validate_string(self.memory_profile_upload_url_prefix,
                                   "memory_profile_upload_url_prefix")
Пример #2
0
    def validate(self):
        validators.validate_string(self.rapid_pro_domain, "rapid_pro_domain")
        validators.validate_string(self.rapid_pro_token_file_url,
                                   "rapid_pro_token_file_url")

        validators.validate_list(self.activation_flow_names,
                                 "activation_flow_names")
        for i, activation_flow_name in enumerate(self.activation_flow_names):
            validators.validate_string(activation_flow_name,
                                       f"activation_flow_names[{i}]")

        validators.validate_list(self.survey_flow_names, "survey_flow_names")
        for i, survey_flow_name in enumerate(self.survey_flow_names):
            validators.validate_string(survey_flow_name,
                                       f"survey_flow_names[{i}]")

        if self.recovery_csv_urls is not None:
            validators.validate_list(self.recovery_csv_urls,
                                     "recovery_csv_urls")
            for i, recovery_csv_url in enumerate(self.recovery_csv_urls):
                validators.validate_string(recovery_csv_url,
                                           f"recovery_csv_urls[{i}]")

        validators.validate_list(self.rapid_pro_test_contact_uuids,
                                 "rapid_pro_test_contact_uuids")
        for i, contact_uuid in enumerate(self.rapid_pro_test_contact_uuids):
            validators.validate_string(contact_uuid,
                                       f"rapid_pro_test_contact_uuids[{i}]")

        assert isinstance(self.phone_number_uuid_table, PhoneNumberUuidTable)
        self.phone_number_uuid_table.validate()

        validators.validate_list(self.rapid_pro_key_remappings,
                                 "rapid_pro_key_remappings")
        for i, remapping in enumerate(self.rapid_pro_key_remappings):
            assert isinstance(remapping, RapidProKeyRemapping), \
                f"rapid_pro_key_mappings[{i}] is not of type RapidProKeyRemapping"
            remapping.validate()

        validators.validate_datetime(self.project_start_date,
                                     "project_start_date")
        validators.validate_datetime(self.project_end_date, "project_end_date")

        validators.validate_bool(self.filter_test_messages,
                                 "filter_test_messages")

        if self.filter_operator is not None:
            validators.validate_string(self.filter_operator, "filter_operator")

        if self.drive_upload is not None:
            assert isinstance(self.drive_upload, DriveUpload), \
                "drive_upload is not of type DriveUpload"
            self.drive_upload.validate()

        validators.validate_string(self.flow_definitions_upload_url_prefix,
                                   "flow_definitions_upload_url_prefix")
    def test_validate_datetime(self):
        dt = isoparse("2019-05-10T12:37:04+03:00")
        self.assertEqual(dt, validators.validate_datetime(dt))

        self._expect_validation_failure(
            lambda: validators.validate_datetime("2019-05-10T12:37:04+03:00",
                                                 "dt"), "dt not a datetime")

        self._expect_validation_failure(
            lambda: validators.validate_datetime(
                isoparse("2019-05-10T12:37:04"), "dt"),
            "dt not timezone-aware")
Пример #4
0
    def validate(self):
        validators.validate_string(self.message_id, "message_id")
        validators.validate_string(self.text, "text")
        validators.validate_utc_iso_string(self.creation_date_time_utc,
                                           "creation_date_time_utc")
        validators.validate_list(self.labels, "labels")

        for i, label in enumerate(self.labels):
            assert isinstance(
                label, Label), "self.labels[{}] is not of type Label".format(i)
            label.validate()

        if self.sequence_number is not None:
            validators.validate_int(self.sequence_number, "sequence_number")

        if self.last_updated is not None:
            try:
                validators.validate_datetime(self.last_updated, "last_updated")
            except AssertionError:
                assert self.last_updated == firestore.firestore.SERVER_TIMESTAMP, \
                    f"last_updated '{self.last_updated} is not a valid datetime or Firestore sentinel"
Пример #5
0
    def validate(self):
        validators.validate_string(self.time_key, "time_key")
        validators.validate_string(self.show_pipeline_key_to_remap_to, "show_pipeline_key_to_remap_to")
        validators.validate_datetime(self.range_start_inclusive, "range_start_inclusive")
        validators.validate_datetime(self.range_end_exclusive, "range_end_exclusive")

        if self.time_to_adjust_to is not None:
            validators.validate_datetime(self.time_to_adjust_to, "time_to_adjust_to")
    def validate(self):
        validators.validate_string(self.pipeline_name, "pipeline_name")

        validators.validate_list(self.raw_data_sources, "raw_data_sources")
        for i, raw_data_source in enumerate(self.raw_data_sources):
            assert isinstance(
                raw_data_source, RawDataSource
            ), f"raw_data_sources[{i}] is not of type RawDataSource"
            raw_data_source.validate()

        assert isinstance(self.uuid_table, UuidTable)
        self.uuid_table.validate()

        validators.validate_list(self.source_key_remappings,
                                 "source_key_remappings")
        for i, remapping in enumerate(self.source_key_remappings):
            assert isinstance(remapping, SourceKeyRemapping), \
                f"source_key_mappings[{i}] is not of type SourceKeyRemapping"
            remapping.validate()

        validators.validate_datetime(self.project_start_date,
                                     "project_start_date")
        validators.validate_datetime(self.project_end_date, "project_end_date")

        validators.validate_bool(self.filter_test_messages,
                                 "filter_test_messages")
        validators.validate_bool(self.move_ws_messages, "move_ws_messages")

        if self.drive_upload is not None:
            assert isinstance(self.drive_upload, DriveUpload), \
                "drive_upload is not of type DriveUpload"
            self.drive_upload.validate()

        validators.validate_url(self.memory_profile_upload_bucket,
                                "memory_profile_upload_bucket", "gs")
        validators.validate_url(self.data_archive_upload_bucket,
                                "data_archive_upload_bucket", "gs")
        validators.validate_string(self.bucket_dir_path, "bucket_dir_path")
Пример #7
0
 def validate(self):
     validators.validate_string(self.label, "label")
     validators.validate_datetime(self.start_date, "start_date")
     validators.validate_datetime(self.end_date, "end_date")