diff --git a/AI Calculator/test_calculator.py b/AI Calculator/test_calculator.py new file mode 100644 index 0000000000..f774a04301 --- /dev/null +++ b/AI Calculator/test_calculator.py @@ -0,0 +1,50 @@ +import unittest +from chatterbot import ChatBot + +def evaluate_expression(expression, bot): + try: + response = bot.get_response(expression) + return str(response) + except: + return "Please enter valid input." + +class TestCalculatorBot(unittest.TestCase): + + @classmethod + def setUpClass(cls): + cls.bot = ChatBot(name='Calculator', + read_only=True, + logic_adapters=["chatterbot.logic.MathematicalEvaluation"], + storage_adapter="chatterbot.storage.SQLStorageAdapter") + + def test_addition(self): + result = evaluate_expression('3 + 4', self.bot) + self.assertEqual(result, '3 + 4 = 7') + + def test_subtraction(self): + result = evaluate_expression('10 - 5', self.bot) + self.assertEqual(result, '10 - 5 = 5') + + def test_multiplication(self): + result = evaluate_expression('6 * 7', self.bot) + self.assertEqual(result, '6 * 7 = 42') + + def test_division(self): + result = evaluate_expression('15 / 3', self.bot) + self.assertEqual(result, '15 / 3 = 5') + + def test_power(self): + result = evaluate_expression('4 ^ 2', self.bot) + self.assertEqual(result, '4 ^ 2 = 16') + + def test_invalid_input(self): + result = evaluate_expression('three plus four', self.bot) + self.assertEqual(result, 'Please enter valid input.') + + def test_empty_input(self): + result = evaluate_expression('', self.bot) + self.assertEqual(result, 'Please enter valid input.') + + +if __name__ == '__main__': + unittest.main() diff --git a/Air pollution prediction/test_air_quality_checker.py b/Air pollution prediction/test_air_quality_checker.py new file mode 100644 index 0000000000..177665a6ed --- /dev/null +++ b/Air pollution prediction/test_air_quality_checker.py @@ -0,0 +1,46 @@ +import requests +import unittest +from unittest.mock import patch + +def get_air_quality(city, api_key): + url = 'http://api.waqi.info/feed/' + city + '/?token=' + main_url = url + api_key + r = requests.get(main_url) + return r.json()['data'] + +class TestAirQualityProgram(unittest.TestCase): + + @patch('requests.get') + def test_get_air_quality(self, mock_get): + # Mocking the API response + mock_get.return_value.json.return_value = { + 'data': { + 'aqi': 100, + 'iaqi': { + 'dew': {'v': 10}, + 'no2': {'v': 20}, + 'o3': {'v': 30}, + 'so2': {'v': 40}, + 'pm10': {'v': 50}, + 'pm25': {'v': 60} + } + } + } + + city = 'kanpur' + api_key = 'fake_api_key' + + # Call the get_air_quality function directly. + result = get_air_quality(city, api_key) + + # Add assertions to check the correctness of the result. + self.assertEqual(result['aqi'], 100) + self.assertEqual(result['iaqi']['dew']['v'], 10) + self.assertEqual(result['iaqi']['no2']['v'], 20) + self.assertEqual(result['iaqi']['o3']['v'], 30) + self.assertEqual(result['iaqi']['so2']['v'], 40) + self.assertEqual(result['iaqi']['pm10']['v'], 50) + self.assertEqual(result['iaqi']['pm25']['v'], 60) + +if __name__ == '__main__': + unittest.main() diff --git a/Automated_scraper.py/test_content_scraper.py b/Automated_scraper.py/test_content_scraper.py new file mode 100644 index 0000000000..fffe8619ef --- /dev/null +++ b/Automated_scraper.py/test_content_scraper.py @@ -0,0 +1,45 @@ +import unittest +from unittest.mock import patch +from script import display_content + +class TestDisplayContent(unittest.TestCase): + + @patch('script.requests.get') + def test_success(self, mock_get): + # Simulating a successful response + mock_get.return_value.status_code = 200 + mock_get.return_value.text = '
Hello, World!
' + + url = 'http://example.com' + selector = '.test' + result = display_content(url, selector) + + # Check that the content was correctly extracted + self.assertEqual(result, ['Hello, World!']) + + @patch('script.requests.get') + def test_failed_fetch(self, mock_get): + # Simulating a failed response + mock_get.return_value.status_code = 404 + + url = 'http://example.com' + selector = '.test' + result = display_content(url, selector) + + # Check that the function returns None in case of a failed response + self.assertIsNone(result) + + @patch('script.requests.get') + def test_request_exception(self, mock_get): + # Simulating an exception during the request + mock_get.side_effect = requests.exceptions.RequestException("An exception") + + url = 'http://example.com' + selector = '.test' + result = display_content(url, selector) + + # Check that the function returns None in case of an exception + self.assertIsNone(result) + +if __name__ == '__main__': + unittest.main() diff --git a/test_air.py b/test_air.py new file mode 100644 index 0000000000..177665a6ed --- /dev/null +++ b/test_air.py @@ -0,0 +1,46 @@ +import requests +import unittest +from unittest.mock import patch + +def get_air_quality(city, api_key): + url = 'http://api.waqi.info/feed/' + city + '/?token=' + main_url = url + api_key + r = requests.get(main_url) + return r.json()['data'] + +class TestAirQualityProgram(unittest.TestCase): + + @patch('requests.get') + def test_get_air_quality(self, mock_get): + # Mocking the API response + mock_get.return_value.json.return_value = { + 'data': { + 'aqi': 100, + 'iaqi': { + 'dew': {'v': 10}, + 'no2': {'v': 20}, + 'o3': {'v': 30}, + 'so2': {'v': 40}, + 'pm10': {'v': 50}, + 'pm25': {'v': 60} + } + } + } + + city = 'kanpur' + api_key = 'fake_api_key' + + # Call the get_air_quality function directly. + result = get_air_quality(city, api_key) + + # Add assertions to check the correctness of the result. + self.assertEqual(result['aqi'], 100) + self.assertEqual(result['iaqi']['dew']['v'], 10) + self.assertEqual(result['iaqi']['no2']['v'], 20) + self.assertEqual(result['iaqi']['o3']['v'], 30) + self.assertEqual(result['iaqi']['so2']['v'], 40) + self.assertEqual(result['iaqi']['pm10']['v'], 50) + self.assertEqual(result['iaqi']['pm25']['v'], 60) + +if __name__ == '__main__': + unittest.main()