Example #1
0
class TestCourseAddPrereq(unittest.TestCase):

    def setUp(self):
        self.c1 = Course('Highschoolcalc')
        self.c2 = Course('MAT136')
        self.c3 = Course('MAT137', [self.c1])
        self.c4 = Course('MAT237', [self.c2, self.c3])

    def test_add_prereq_no_prereqs(self):
        prereq = Course('MAT223')
        self.c1.add_prereq(prereq)
        self.assertEqual([prereq], self.c1.prereqs)

    def test_add_prereqs_many_prereqs(self):
        prereq = Course('MAT136')
        self.c1.add_prereq(prereq)
        self.assertEqual(prereq.name, self.c1.prereqs[-1].name)

    def test_error_in_tree(self):
        self.assertRaises(PrerequisiteError, self.c3.add_prereq, self.c1)
        self.assertRaises(PrerequisiteError, self.c4.add_prereq, self.c1)

    def test_error_in_prereq_tree(self):
        self.assertRaises(PrerequisiteError, self.c1.add_prereq, self.c3)
        self.assertRaises(PrerequisiteError, self.c1.add_prereq, self.c4)

    def test_error_add_self(self):
        self.assertRaises(PrerequisiteError, self.c3.add_prereq, self.c3)
Example #2
0
class TestCourseAddPrereq(unittest.TestCase):
    def setUp(self):
        self.c1 = Course('Highschoolcalc')
        self.c2 = Course('MAT136')
        self.c3 = Course('MAT137', [self.c1])
        self.c4 = Course('MAT237', [self.c2, self.c3])

    def test_add_prereq_no_prereqs(self):
        prereq = Course('MAT223')
        self.c1.add_prereq(prereq)
        self.assertEqual([prereq], self.c1.prereqs)

    def test_add_prereqs_many_prereqs(self):
        prereq = Course('MAT136')
        self.c1.add_prereq(prereq)
        self.assertEqual(prereq.name, self.c1.prereqs[-1].name)

    def test_error_in_tree(self):
        self.assertRaises(PrerequisiteError, self.c3.add_prereq, self.c1)
        self.assertRaises(PrerequisiteError, self.c4.add_prereq, self.c1)

    def test_error_in_prereq_tree(self):
        self.assertRaises(PrerequisiteError, self.c1.add_prereq, self.c3)
        self.assertRaises(PrerequisiteError, self.c1.add_prereq, self.c4)

    def test_error_add_self(self):
        self.assertRaises(PrerequisiteError, self.c3.add_prereq, self.c3)
Example #3
0
class TestCourseAddPrereq(unittest.TestCase):
    def setUp(self):
        self.c3 = Course('alone101')

    def test_add_prereq_no_prereqs(self):
        prereq = Course('MAT223')
        self.c3.add_prereq(prereq)
        self.assertEqual([prereq], self.c3.prereqs)
Example #4
0
class TestCourseAddPrereq(unittest.TestCase):

    def setUp(self):
        self.c3 = Course('alone101')

    def test_add_prereq_no_prereqs(self):
        prereq = Course('MAT223')
        self.c3.add_prereq(prereq)
        self.assertEqual([prereq], self.c3.prereqs)
class TestCourse(unittest.TestCase):

    def setUp(self):
        self.a = Course('A')
        self.b = Course('B')
        self.c = Course('C', [self.a])
        self.d = Course('D', [self.b, self.c])

    def test_initializes_with_values(self):
        self.assertEqual([self.b, self.c], self.d.prereqs)
        self.assertEqual([], self.a.prereqs)
        self.assertEqual('A', self.a.name)
        self.assertEqual(False, self.a.taken)

    def test_is_not_takeable_without_prereqs(self):
        self.assertEqual(False, self.d.is_takeable())
        self.assertEqual(False, self.c.is_takeable())

    def test_is_takeable_with_prereqs(self):
        self.a.take()
        self.assertEqual(True, self.c.is_takeable())
        self.assertEqual(False, self.d.is_takeable())
        self.b.take()
        self.assertEqual(False, self.d.is_takeable())
        self.c.take()
        self.assertEqual(True, self.d.is_takeable())

    def test_take_works(self):
        self.assertEqual(False, self.a.taken)
        self.a.take()
        self.assertEqual(True, self.a.taken)
        self.a.take()
        self.assertEqual(True, self.a.taken)

    def test_raises_error_if_cant_take(self):
        self.assertEqual(False, self.d.is_takeable())
        with self.assertRaises(UntakeableError):
            self.d.take()

    def test_add_prereq_works(self):
        self.a.add_prereq(self.b)
        self.assertEqual([self.b], self.a.prereqs)

    def test_add_prereq_fails_if_already_there(self):
        with self.assertRaises(PrerequisiteError):
            self.c.add_prereq(self.a)

    def test_add_prereq_fails_if_circular(self):
        with self.assertRaises(PrerequisiteError):
            self.a.add_prereq(self.c)

    def test_find(self):
        self.assertEqual(self.a, self.d.find('A'))
        self.assertEqual(None, self.d.find('G'))

    def test_missing_prereqs_works(self):
        self.assertEqual([], self.a.missing_prereqs())
        self.assertEqual(['A'], self.c.missing_prereqs())
        self.assertEqual(['A', 'B', 'C'], self.d.missing_prereqs())

    def test_adds_self_as_prereq(self):
        with self.assertRaises(PrerequisiteError):
            self.a.add_prereq(self.a)