Skip to content

Commit

Permalink
more tests!
Browse files Browse the repository at this point in the history
  • Loading branch information
ryansurf committed Aug 21, 2024
1 parent d2fda6c commit 63319c7
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 3 deletions.
30 changes: 30 additions & 0 deletions tests/test_art.py
Original file line number Diff line number Diff line change
@@ -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"
19 changes: 19 additions & 0 deletions tests/test_gpt.py
Original file line number Diff line number Diff line change
@@ -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
24 changes: 21 additions & 3 deletions tests/test_helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@
from unittest.mock import patch

from src import cli
from src.helper import extract_decimal
from src import helper


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
Expand All @@ -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


Expand All @@ -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


0 comments on commit 63319c7

Please sign in to comment.