Created
October 5, 2022 00:30
-
-
Save sualeh/456ad5dba1d549f569044b6cbd3e5fb1 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"""Test for lab module.""" | |
from unittest import TestCase | |
from schedule import Schedule | |
from unittest import skip | |
class TestLab3ForGrading(TestCase): | |
"""Test for Lab 3.""" | |
def test_schedule_happy_path(self): | |
"""Test happy path.""" | |
sch = Schedule(['Tue', 'Thu'], [['Algebra', 'Chemistry'], ['French']]) | |
self.assertEqual(sch.classes_for('Mon'), ['Free day']) | |
self.assertEqual(sch.classes_for('Tue'), ['Algebra', 'Chemistry']) | |
self.assertEqual(sch.classes_for('Wed'), ['Free day']) | |
self.assertEqual(sch.classes_for('Thu'), ['French']) | |
self.assertEqual(sch.classes_for('Fri'), ['Free day']) | |
self.assertEqual(sch.classes_for('Sat'), ['Free day']) | |
self.assertEqual(sch.classes_for('Sun'), ['Free day']) | |
# Unknown day | |
self.assertEqual(sch.classes_for('Fun'), ['No such day']) | |
# Bad arguments | |
self.assertEqual(sch.classes_for('Holiday'), ['No such day']) | |
self.assertEqual(sch.classes_for(None), ['No such day']) | |
self.assertEqual(sch.classes_for(True), ['No such day']) | |
def test_schedule_str(self): | |
"""Test conversion of schedule to string.""" | |
sch = Schedule(['Tue', 'Thu'], | |
[['Algebra', 'Chemistry'], ['French']]) | |
print(str(sch)) | |
self.assertEqual(str(sch), """Tue: Algebra, Chemistry | |
Thu: French | |
""") | |
@skip("Rigorous test - checks overriding the schedule") | |
def test_schedule_override(self): | |
"""Test make_schedule does overrides old schedule.""" | |
sch = Schedule(['Tue', 'Thu'], [['Algebra', 'Chemistry'], ['French']]) | |
sch.make_schedule(['Mon'], [['Biology']]) | |
self.assertEqual(sch.classes_for('Mon'), ['Biology']) | |
self.assertEqual(sch.classes_for('Tue'), ['Free day']) | |
self.assertEqual(sch.classes_for('Wed'), ['Free day']) | |
self.assertEqual(sch.classes_for('Thu'), ['Free day']) | |
self.assertEqual(sch.classes_for('Fri'), ['Free day']) | |
self.assertEqual(sch.classes_for('Sat'), ['Free day']) | |
self.assertEqual(sch.classes_for('Sun'), ['Free day']) | |
@skip("Rigorous test - checks None arguments") | |
def test_schedule_none_args(self): | |
"""Test an argument of None, and ensures that no error occurs.""" | |
sch = Schedule(None, [['Math']]) | |
for day in ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']: | |
self.assertEqual(sch.classes_for(day), ['Free day']) | |
sch = Schedule(["Mon"], None) | |
for day in ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']: | |
self.assertEqual(sch.classes_for(day), ['Free day']) | |
@skip("Rigorous test - checks non-iterable arguments") | |
def test_schedule_wrong_type_args(self): | |
"""Test an argument of None, and ensures that no error occurs.""" | |
with self.assertRaises(TypeError): | |
Schedule(['Mon'], False) | |
with self.assertRaises(TypeError): | |
Schedule(False, [['Math']]) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment