diff --git a/tests/test_art.py b/tests/test_art.py new file mode 100644 index 0000000..e99450a --- /dev/null +++ b/tests/test_art.py @@ -0,0 +1,30 @@ +""" +QA tests for art.py +Make sure pytest is installed: pip install pytest +Run pytest: pytest +""" + +import sys +import io +from src import art + +def test_print_wave(): + """ + Testing the print_wave() function + Uses sys & io to capture printed output + """ + # Capture the output + captured_output = io.StringIO() # Create StringIO object + sys.stdout = captured_output # Redirect stdout. + + # Call the function + art.print_wave(1, 0, "blue") + + # Reset redirect. + sys.stdout = sys.__stdout__ + + # Now captured_output.getvalue() contains the printed content + output = captured_output.getvalue() + + # Perform assertions based on expected output + assert output != "", "print_wave() did not print anything" \ No newline at end of file diff --git a/tests/test_gpt.py b/tests/test_gpt.py index e69de29..3292319 100644 --- a/tests/test_gpt.py +++ b/tests/test_gpt.py @@ -0,0 +1,19 @@ +""" +QA tests for gpt.py +Make sure pytest is installed: pip install pytest +Run pytest: pytest +""" + +from src import gpt + +def test_simple_gpt(): + """ + Testing the simple_gpt function + Calls the simple gpt and asks it to output + "gpt works". If anything else is outputted, we can + assume an error has occured + """ + surf_summary = "Please only output: 'gpt works!' " + gpt_prompt = "This is for testing purposes" + gpt_response = gpt.simple_gpt(surf_summary, gpt_prompt) + assert "gpt works" in gpt_response diff --git a/tests/test_helper.py b/tests/test_helper.py index f048576..6287cf2 100644 --- a/tests/test_helper.py +++ b/tests/test_helper.py @@ -8,7 +8,7 @@ from unittest.mock import patch from src import cli -from src.helper import extract_decimal +from src import helper def test_invalid_input(): @@ -16,7 +16,7 @@ def test_invalid_input(): Test if decimal input prints proper invalid input message """ with patch("sys.stdout", new=io.StringIO()) as fake_stdout: - extract_decimal(["decimal=NotADecimal"]) + helper.extract_decimal(["decimal=NotADecimal"]) printed_output = fake_stdout.getvalue().strip() expected = "Invalid value for decimal. Please provide an integer." assert printed_output == expected @@ -26,7 +26,7 @@ def test_default_input(): """ Test that when no decimal= in args, 1 is the default """ - decimal = extract_decimal([]) + decimal = helper.extract_decimal([]) assert 1 == decimal @@ -43,3 +43,21 @@ def test_json_output(): json_output = cli.run(36.95, -121.97, ["", "json"]) assert type(json_output["Lat"]) in {int, float} assert isinstance(json_output["Location"], str) + +def test_print_gpt(): + """ + Tests the simple_gpt() + """ + surf_data = { + "Location": "test", + "Height": "test", + "Swell Direction": "test", + "Period": "test", + "Unit": "test" + } + gpt_prompt = "Please output 'gpt works'" + gpt_info = [None, ""] + gpt_response = helper.print_gpt(surf_data, gpt_prompt, gpt_info) + assert "gpt works" in gpt_response + +