|
5 | 5 | from decimal import Decimal |
6 | 6 | from copy import deepcopy |
7 | 7 | from unittest import TestCase |
| 8 | +from unittest.mock import patch, Mock |
8 | 9 | from moto import mock_dynamodb, mock_sqs |
9 | 10 | from boto3 import resource as boto3_resource, client as boto3_client |
10 | 11 | from tests.utils_for_converter_tests import ValuesForTests, ErrorValuesForTests |
11 | | -from unittest.mock import patch |
12 | 12 | from botocore.config import Config |
13 | 13 | from pathlib import Path |
14 | 14 | from SchemaParser import SchemaParser |
15 | 15 | from Converter import Converter |
| 16 | +from ConversionChecker import ConversionChecker |
16 | 17 |
|
17 | 18 |
|
18 | 19 | MOCK_ENV_VARS = { |
@@ -293,6 +294,51 @@ def test_conversion_exceptions(self, mock_get_key_value, mock_get_conversions): |
293 | 294 | ) |
294 | 295 | self.assertEqual(error_records[0]["code"], 0) |
295 | 296 |
|
| 297 | + @patch("ConversionChecker.LookUpData") |
| 298 | + def test_convert_to_not_empty(self, MockLookUpData): |
| 299 | + |
| 300 | + dataParser = Mock() |
| 301 | + |
| 302 | + checker = ConversionChecker(dataParser, summarise=False, report_unexpected_exception=True) |
| 303 | + |
| 304 | + result = checker._convertToNotEmpty(None, "fieldName", "Some data", False, True) |
| 305 | + self.assertEqual(result, "Some data") |
| 306 | + |
| 307 | + result = checker._convertToNotEmpty(None, "fieldName", "", False, True) |
| 308 | + self.assertEqual(result, "") |
| 309 | + |
| 310 | + @patch("ConversionChecker.LookUpData") |
| 311 | + def test_convert_to_nhs_number(self, MockLookUpData): |
| 312 | + |
| 313 | + dataParser = Mock() |
| 314 | + |
| 315 | + checker = ConversionChecker(dataParser, summarise=False, report_unexpected_exception=True) |
| 316 | + |
| 317 | + valid_nhs_number = "6000000000" |
| 318 | + result = checker._convertToNHSNumber(None, "fieldName", valid_nhs_number, False, True) |
| 319 | + self.assertTrue("NHS Number does not meet regex " in result) |
| 320 | + |
| 321 | + invalid_nhs_number = "1234567890" |
| 322 | + result = checker._convertToNHSNumber(None, "fieldName", invalid_nhs_number, False, True) |
| 323 | + |
| 324 | + @patch("ConversionChecker.LookUpData") |
| 325 | + def test_convert_to_date(self, MockLookUpData): |
| 326 | + dataParser = Mock() |
| 327 | + |
| 328 | + checker = ConversionChecker(dataParser, summarise=False, report_unexpected_exception=True) |
| 329 | + |
| 330 | + valid_date = "2022-01-01" |
| 331 | + result = checker._convertToDate("%Y-%m-%d", "fieldName", valid_date, False, True) |
| 332 | + self.assertEqual(result, "2022-01-01") |
| 333 | + |
| 334 | + invalid_date = "invalid_date" |
| 335 | + result = checker._convertToDate("%Y-%m-%d", "fieldName", invalid_date, False, True) |
| 336 | + self.assertTrue("Unexpected exception" in result) |
| 337 | + |
| 338 | + # Test for error case with exception |
| 339 | + result = checker._convertToDate("%Y-%m-%d", "fieldName", None, False, True) |
| 340 | + self.assertTrue("Unexpected exception" in result) |
| 341 | + |
296 | 342 | def clear_table(self): |
297 | 343 | scan = self.table.scan() |
298 | 344 | with self.table.batch_writer() as batch: |
|
0 commit comments