From 7166de9b3a9e0d8dedb85fa5f99cd5e4070d77dd Mon Sep 17 00:00:00 2001 From: Andrew Date: Wed, 5 Mar 2025 13:27:02 +0000 Subject: [PATCH] [server]: Add return_luas_data unit tests --- .../return_luas_data/test_lambda_function.py | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 server/src/test/return_luas_data/test_lambda_function.py diff --git a/server/src/test/return_luas_data/test_lambda_function.py b/server/src/test/return_luas_data/test_lambda_function.py new file mode 100644 index 0000000..f0c80e6 --- /dev/null +++ b/server/src/test/return_luas_data/test_lambda_function.py @@ -0,0 +1,38 @@ +import json +import unittest +from unittest.mock import patch, MagicMock +from src.functions.return_luas_data.lambda_function import lambda_handler + +class TestLambdaFunction(unittest.TestCase): + + @patch('src.functions.return_luas_data.lambda_function.requests.get') + @patch('src.functions.return_luas_data.lambda_function.xmltodict.parse') + def test_lambda_handler_returns_forecast_for_valid_luasStopCode(self, mock_parse, mock_get): + mock_response = MagicMock() + mock_response.text = 'test' + mock_get.return_value = mock_response + mock_parse.return_value = {'forecast': 'data'} + + event = { + 'queryStringParameters': {'luasStopCode': 'test_stop'} + } + context = {} + + response = lambda_handler(event, context) + + self.assertEqual(response['statusCode'], 200) + self.assertEqual(json.loads(response['body']), {'forecast': 'data'}) + + @patch('src.functions.return_luas_data.lambda_function.requests.get') + def test_lambda_handler_returns_error_on_exception(self, mock_get): + mock_get.side_effect = Exception('Test exception') + + event = { + 'queryStringParameters': {'luasStopCode': 'test_stop'} + } + context = {} + + response = lambda_handler(event, context) + + self.assertEqual(response['statusCode'], 500) + self.assertIn('error', json.loads(response['body'])) \ No newline at end of file