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") 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") if self.drive_upload is not None: assert isinstance(self.drive_upload, DriveUpload), "drive_upload is not of type DriveUpload" self.drive_upload.validate() if self.beneficiary_file_urls is not None: validators.validate_list(self.beneficiary_file_urls, "beneficiary_file_urls") for i, beneficiary_file_url in enumerate(self.beneficiary_file_urls): validators.validate_string(beneficiary_file_url, f"{beneficiary_file_url}")
def validate(self): validators.validate_list(self.activation_flow_urls, "activation_flow_urls") for i, activation_flow_url in enumerate(self.activation_flow_urls): validators.validate_url(activation_flow_url, f"activation_flow_urls[{i}]", "gs") validators.validate_list(self.survey_flow_urls, "survey_flow_urls") for i, survey_flow_url in enumerate(self.survey_flow_urls): validators.validate_url(survey_flow_url, f"survey_flow_urls[{i}]", "gs")
def validate(self): validators.validate_string(self.page_id, "page_id") validators.validate_url(self.token_file_url, "token_file_url", scheme="gs") validators.validate_list(self.datasets, "datasets") for i, dataset in enumerate(self.datasets): assert isinstance( dataset, FacebookDataset ), f"datasets[{i}] is not of type FacebookDataset" dataset.validate()
def test_validate_url(self): # Test valid URLs valid_urls = [ "https://www.africasvoices.org", "http://localhost:8080/index.html", "gs://bucket/path/to/blob" ] for url in valid_urls: self.assertEqual(url, validators.validate_url(url)) # Test invalid URLs self._expect_validation_failure( lambda: validators.validate_url("abc://[", variable_name="test_url"), "test_url not a valid URL") self._expect_validation_failure( lambda: validators.validate_url("http://bucket/blob", scheme="gs"), " not a URL with scheme gs")
def validate(self): validators.validate_url(self.firebase_credentials_file_url, "firebase_credentials_file_url", scheme="gs") validators.validate_string(self.table_name, "table_name")
def validate(self): validators.validate_url(self.firebase_credentials_file_url, "firebase_credentials_file_url", scheme="gs")