Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/unit_tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ jobs:
- name: Install dependencies
run: |
pip install -r requirements.txt
pip install -i https://test.pypi.org/simple/ python-osw-validation==0.0.3

- name: Run unit tests
run: |
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ uvicorn==0.20.0
coverage==7.2.7
html_testRunner==1.2.1
httpx==0.24.1
python-osw-validation==0.2.1
python-osw-validation==0.2.2
8 changes: 4 additions & 4 deletions src/validation.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ def __init__(self, file_path=None, storage_client=None):
self.file_relative_path = file_path.split('/')[-1]
self.client = self.storage_client.get_container(container_name=self.container_name)

def validate(self) -> ValidationResult:
return self.is_osw_valid()
def validate(self, max_errors=20) -> ValidationResult:
return self.is_osw_valid(max_errors)

def is_osw_valid(self) -> ValidationResult:
def is_osw_valid(self, max_errors) -> ValidationResult:
result = ValidationResult()
result.is_valid = False
result.validation_message = ''
Expand All @@ -38,7 +38,7 @@ def is_osw_valid(self) -> ValidationResult:
downloaded_file_path = self.download_single_file(self.file_path)
logger.info(f' Downloaded file path: {downloaded_file_path}')
validator = OSWValidation(zipfile_path=downloaded_file_path)
validation_result = validator.validate()
validation_result = validator.validate(max_errors)
result.is_valid = validation_result.is_valid
if not result.is_valid:
result.validation_message = validation_result.errors
Expand Down
48 changes: 39 additions & 9 deletions tests/unit_tests/test_validation.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,36 @@ def test_validate_with_invalid_file(self):
self.assertFalse(result.is_valid)
self.assertIsInstance(result.validation_message, list)

def test_validate_with_invalid_file_with_default_error_counts(self):
# Arrange
file_path = f'{SAVED_FILE_PATH}/{FAILURE_FILE_NAME}'
expected_downloaded_file_path = file_path
self.validator.download_single_file = MagicMock(return_value=expected_downloaded_file_path)
Validation.clean_up = MagicMock()

# Act
result = self.validator.validate()

# Assert
self.assertFalse(result.is_valid)
self.assertIsInstance(result.validation_message, list)
self.assertLessEqual(len(result.validation_message), 20)

def test_validate_with_invalid_file_with_specific_error_counts(self):
# Arrange
file_path = f'{SAVED_FILE_PATH}/{FAILURE_FILE_NAME}'
expected_downloaded_file_path = file_path
self.validator.download_single_file = MagicMock(return_value=expected_downloaded_file_path)
Validation.clean_up = MagicMock()

# Act
result = self.validator.validate(max_errors=10)

# Assert
self.assertFalse(result.is_valid)
self.assertIsInstance(result.validation_message, list)
self.assertLessEqual(len(result.validation_message), 10)

def test_is_osw_valid_with_invalid_zip_file(self):
# Arrange
file_path = f'{SAVED_FILE_PATH}/{FAILURE_FILE_NAME}'
Expand Down Expand Up @@ -184,7 +214,7 @@ def test_is_osw_valid_with_id_missing_zip(self):
Validation.clean_up = MagicMock()

# Act
result = self.validator.is_osw_valid()
result = self.validator.is_osw_valid(max_errors=2)

# Assert
self.assertFalse(result.is_valid)
Expand Down Expand Up @@ -214,7 +244,7 @@ def test_is_osw_valid_with_invalid_edges_zip(self):
Validation.clean_up = MagicMock()

# Act
result = self.validator.is_osw_valid()
result = self.validator.is_osw_valid(max_errors=2)

# Assert
self.assertFalse(result.is_valid)
Expand Down Expand Up @@ -244,7 +274,7 @@ def test_is_osw_valid_with_invalid_nodes_zip(self):
Validation.clean_up = MagicMock()

# Act
result = self.validator.is_osw_valid()
result = self.validator.is_osw_valid(max_errors=2)

# Assert
self.assertFalse(result.is_valid)
Expand Down Expand Up @@ -274,7 +304,7 @@ def test_is_osw_valid_with_invalid_points_zip(self):
Validation.clean_up = MagicMock()

# Act
result = self.validator.is_osw_valid()
result = self.validator.is_osw_valid(max_errors=2)

# Assert
self.assertFalse(result.is_valid)
Expand Down Expand Up @@ -304,7 +334,7 @@ def test_is_osw_valid_with_invalid_files_zip(self):
Validation.clean_up = MagicMock()

# Act
result = self.validator.is_osw_valid()
result = self.validator.is_osw_valid(max_errors=2)

# Assert
self.assertFalse(result.is_valid)
Expand Down Expand Up @@ -334,7 +364,7 @@ def test_is_osw_valid_with_invalid_geometry_zip(self):
Validation.clean_up = MagicMock()

# Act
result = self.validator.is_osw_valid()
result = self.validator.is_osw_valid(max_errors=2)

# Assert
self.assertFalse(result.is_valid)
Expand Down Expand Up @@ -364,7 +394,7 @@ def test_is_osw_valid_with_missing_identifier_zip(self):
Validation.clean_up = MagicMock()

# Act
result = self.validator.is_osw_valid()
result = self.validator.is_osw_valid(max_errors=2)

# Assert
self.assertFalse(result.is_valid)
Expand Down Expand Up @@ -394,7 +424,7 @@ def test_is_osw_valid_with_no_entity_zip(self):
Validation.clean_up = MagicMock()

# Act
result = self.validator.is_osw_valid()
result = self.validator.is_osw_valid(max_errors=2)

# Assert
self.assertFalse(result.is_valid)
Expand Down Expand Up @@ -424,7 +454,7 @@ def test_is_osw_valid_with_wring_datatype_zip(self):
Validation.clean_up = MagicMock()

# Act
result = self.validator.is_osw_valid()
result = self.validator.is_osw_valid(max_errors=2)

# Assert
self.assertFalse(result.is_valid)
Expand Down