Skip to content

Commit b2006d3

Browse files
committed
Fixed unit test cases
1 parent 66152ab commit b2006d3

File tree

3 files changed

+30
-4
lines changed

3 files changed

+30
-4
lines changed

src/validation.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from python_osw_validation import OSWValidation
1010
from .models.queue_message_content import ValidationResult
1111
import uuid
12+
import json
1213

1314
ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
1415
# Path used for download file generation.
@@ -55,8 +56,8 @@ def is_osw_valid(self, max_errors) -> ValidationResult:
5556
validation_result = validator.validate(max_errors)
5657
result.is_valid = validation_result.is_valid
5758
if not result.is_valid:
58-
result.validation_message = validation_result.issues
59-
logger.error(f' Error While Validating File: {str(validation_result.issues)}')
59+
result.validation_message = json.dumps(validation_result.issues)
60+
logger.error(f' Error While Validating File: {json.dumps(validation_result.issues)}')
6061
Validation.clean_up(downloaded_file_path)
6162
else:
6263
result.validation_message = 'Failed to validate because unknown file format'

tests/unit_tests/test_config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def test_settings_with_invalid_auth_simulate(self):
3838
def test_default_settings(self):
3939
settings = Settings()
4040
self.assertEqual(settings.app_name, 'python-osw-validation')
41-
self.assertEqual(settings.event_bus.container_name, 'osw')
41+
self.assertEqual(settings.event_bus.container_name, 'tdei-storage-test')
4242
self.assertIsNone(settings.auth_permission_url)
4343
self.assertEqual(settings.max_concurrent_messages, 2)
4444

tests/unit_tests/test_validation.py

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import os
2+
import json
23
import unittest
34
from pathlib import Path
45
from src.validation import Validation
@@ -75,12 +76,36 @@ def test_validate_invalid_file(self, mock_download_file, mock_clean_up):
7576

7677
# Assert that validation is marked as valid
7778
self.assertFalse(result.is_valid)
78-
self.assertIn('Validation error', ' '.join(result.validation_message))
79+
errors = json.loads(result.validation_message)
80+
self.assertNotEqual(len(errors), 0)
7981

8082

8183
# Ensure clean_up is called twice (once for the file, once for the folder)
8284
self.assertEqual(mock_clean_up.call_count, 2)
8385

86+
@patch('src.validation.Validation.clean_up')
87+
@patch('src.validation.Validation.download_single_file')
88+
def test_validate_invalid_file_with_errors(self, mock_download_file, mock_clean_up):
89+
"""Test the validate method for a invalid file."""
90+
mock_download_file.return_value = f'{SAVED_FILE_PATH}/{FAILURE_FILE_NAME}'
91+
error_in_file = 'wa.microsoft.graph.edges.OSW.geojson'
92+
feature_indexes = [3, 6, 8, 25]
93+
error_message = "Additional properties are not allowed ('crossing' was unexpected)"
94+
# Act
95+
result = self.validation.validate(max_errors=10)
96+
97+
# Assert that validation is marked as valid
98+
self.assertFalse(result.is_valid)
99+
errors = json.loads(result.validation_message)
100+
count = 0
101+
for error in errors:
102+
self.assertEqual(error['filename'], error_in_file)
103+
self.assertEqual(error['error_message'][0], error_message)
104+
self.assertEqual(error['feature_index'], feature_indexes[count])
105+
count += 1
106+
# Ensure clean_up is called twice (once for the file, once for the folder)
107+
self.assertEqual(mock_clean_up.call_count, 2)
108+
84109
@patch('src.validation.OSWValidation')
85110
@patch('src.validation.Validation.clean_up')
86111
def test_validate_invalid_zip(self, mock_clean_up, mock_osw_validation):

0 commit comments

Comments
 (0)