cs50p/problems/pset7/working/test_working.py

103 lines
2.6 KiB
Python

import pytest
from working import convert
def main():
test_missing_to()
test_out_of_range_times()
test_exception()
test_hours_off_by_one()
def test_missing_to():
try:
convert('09:00 AM - 05:00 PM')
except ValueError:
pass
else:
raise ValueError("Missing to")
try:
convert('09:00 AM 05:00 PM')
except Exception as e:
assert isinstance(e, ValueError)
def test_out_of_range_times():
try:
convert('09:00 AM to 05:61 PM')
except Exception as e:
assert isinstance(e, ValueError)
try:
convert('31:00 AM to 05:00 PM')
except Exception as e:
assert isinstance(e, ValueError)
try:
convert('13:00 PM to 8:00 AM')
except Exception as e:
assert isinstance(e, ValueError)
try:
convert('13:00PM to 8:00 AM')
except Exception as e:
assert isinstance(e, ValueError)
try:
convert('13:00 to 8:00')
except Exception as e:
assert isinstance(e, ValueError)
try:
convert("09:00 AM - 17:00 PM")
except Exception as e:
assert isinstance(e, ValueError)
try:
convert("9:00 AM 5:00 PM")
except Exception as e:
assert isinstance(e, ValueError)
try:
convert("9:60 AM to 5:60 PM")
except Exception as e:
assert isinstance(e, ValueError)
try:
convert("9 AM - 5 PM")
except Exception as e:
assert isinstance(e, ValueError)
try:
convert("9 AM5 PM")
except Exception as e:
assert isinstance(e, ValueError)
try:
convert("9 AM 5 PM")
except Exception as e:
assert isinstance(e, ValueError)
with pytest.raises(ValueError):
convert("9:72 to 6:30")
def test_exception():
with pytest.raises(ValueError):
convert("09:00 AM - 17:00 PM")
with pytest.raises(ValueError):
convert("9:00 AM 5:00 PM")
with pytest.raises(ValueError):
convert("9:60 AM to 5:60 PM")
with pytest.raises(ValueError):
convert("9 AM - 5 PM")
with pytest.raises(ValueError):
convert("9 AM5 PM")
with pytest.raises(ValueError):
convert("9 AM 5 PM")
with pytest.raises(ValueError):
convert("9:72 to 6:30")
def test_hours_off_by_one():
assert convert('12:00 AM to 12:00 PM') == "00:00 to 12:00"
assert convert("9 AM to 5 PM") == "09:00 to 17:00"
assert convert("8 PM to 8 AM") == "20:00 to 08:00"
assert convert("8:00 PM to 8:00 AM") == "20:00 to 08:00"
assert convert("12 AM to 12 PM") == "00:00 to 12:00"
assert convert("12:00 AM to 12:00 PM") == "00:00 to 12:00"
if __name__ == '__main__':
main()