コード例 #1
0
    def setup_method(self, function):
        self.db = sqlite3.connect(':memory:',
                                  detect_types=sqlite3.PARSE_DECLTYPES)
        self.db.row_factory = sqlite3.Row

        self.cursor = self.db.cursor()

        with open('server/db/schema.sql') as f:
            self.db.executescript(f.read())

        with open('server/db/setup_enums.sql') as f:
            self.db.executescript(f.read())

        self.h = DbHelper(self.db)

        self.first_course = self.first_course = course.Course('TEST',
                                                              '1000',
                                                              'Test course 1',
                                                              6, [],
                                                              'TestFaculty',
                                                              finished=True)

        self.second_course = course.Course('COMP',
                                           '2521',
                                           'Test course 2',
                                           3, [],
                                           'Engineering',
                                           finished=True)

        self.dbGenerator = dbGenerator.DbGenerator(self.h.query_db,
                                                   self.h.store_db)
コード例 #2
0
def test_check():
    # Make some courses
    # subj1001
    subj1001 = course.Course('SUBJ', '1001', 'Subject1', 6,
                             [t1, t2, t3, t4, t5, t6, t7, t8, t9], faculty)

    # subj1002, prereq subj1001
    prereq1001 = subjectReq.SubjectReq(subj1001)
    subj1002 = course.Course('SUBJ', '1002', 'Subject2', 6,
                             [t1, t2, t3, t4, t5, t6, t7, t8, t9], faculty,
                             prereq1001)

    # subj1003, prereq subj1001 and 1002
    subj1003 = course.Course('SUBJ', '1003', 'Subject3', 6,
                             [t1, t2, t3, t4, t5, t6, t7, t8, t9], faculty,
                             prereq1001)

    uni.reset_courses([subj1001, subj1002, subj1003])

    filter1001 = specificCourseFilter.SpecificCourseFilter(subj1001)
    filter1002 = specificCourseFilter.SpecificCourseFilter(subj1002)
    filter1003 = specificCourseFilter.SpecificCourseFilter(subj1003)
    req1001 = minDegreeReq.MinDegreeReq(filter1001, 6)
    req1002 = minDegreeReq.MinDegreeReq(filter1002, 6)
    req1003 = minDegreeReq.MinDegreeReq(filter1003, 6)
    degree1 = degree.Degree(1, 'Bachelor of Testing', 2019, 2, faculty,
                            [req1001, req1002, req1003], 'BAT1')

    enrol1001 = courseEnrollment.CourseEnrollment(subj1001, t1)
    enrol1002 = courseEnrollment.CourseEnrollment(subj1002, t2)
    enrol1003 = courseEnrollment.CourseEnrollment(subj1003, t7)

    prog = program.Program(degree1, [enrol1001, enrol1002, enrol1003], [])

    req = yearReq.YearReq(2)
    assert len(req.check(prog, t1)) == 1
    assert len(req.check(prog, t2)) == 1
    assert len(req.check(prog, t3)) == 1
    assert len(req.check(prog, t4)) == 0
    assert len(req.check(prog, t5)) == 0
    assert len(req.check(prog, t6)) == 0
    assert len(req.check(prog, t7)) == 0
    assert len(req.check(prog, t8)) == 0
    assert len(req.check(prog, t9)) == 0
    assert req.check(prog, t3)[0] == 'Year 2 in your degree'

    req = yearReq.YearReq(-1)
    assert len(req.check(prog, t1)) == 1
    assert len(req.check(prog, t2)) == 1
    assert len(req.check(prog, t3)) == 1
    assert len(req.check(prog, t4)) == 1
    assert len(req.check(prog, t5)) == 1
    assert len(req.check(prog, t6)) == 1
    assert len(req.check(prog, t7)) == 0
    assert len(req.check(prog, t8)) == 0
    assert len(req.check(prog, t9)) == 0
    assert req.check(prog, t3)[0] == 'Final year in your degree'
コード例 #3
0
def test_eq():
    subj1001 = course.Course('SUBJ', '1001', 'Subject1', 6, [t1, t2], faculty)
    subj1001_2 = course.Course('SUBJ', '1001', 'Subject1', 6, [t1, t2],
                               faculty)
    subj1002 = course.Course('SUBJ', '1002', 'Subject2', 6, [t1, t2], faculty)

    assert subj1001 == subj1001
    assert subj1001 == subj1001_2
    assert subj1001_2 == subj1001
    assert not subj1002 == subj1001
    assert not subj1001 == subj1002
コード例 #4
0
def test_exclusion():
    # make an exclusion subject
    subj1005 = course.Course('SUBJ',
                             '1005',
                             'Subject5',
                             6, [t1, t3, t4, t6],
                             faculty,
                             prereqs=prereq1001,
                             exclusions=['SUBJ1002'])
    uni.add_course(subj1005)

    # Make some degree requirements
    # 1001 and 1002 and 1003
    filter1001 = specificCourseFilter.SpecificCourseFilter(subj1001)
    filter1002 = specificCourseFilter.SpecificCourseFilter(subj1002)
    filter1005 = specificCourseFilter.SpecificCourseFilter(subj1005)

    req1001 = minDegreeReq.MinDegreeReq(filter1001, 6)
    req1002 = minDegreeReq.MinDegreeReq(filter1002, 6)
    req1005 = minDegreeReq.MinDegreeReq(filter1005, 6)

    degree1 = degree.Degree(1, 'Bachelor of Testing', 2019, 2, faculty,
                            [req1001, req1002, req1005], 'TESTA1')

    gen = generator.Generator(degree1, uni)
    prog = gen.generate()

    assert prog.enrolled(subj1001)
    assert prog.enrolled(subj1002)
    assert not prog.enrolled(subj1005)

    assert prog.term_taken(subj1001) == t1
    assert prog.term_taken(subj1002) == t3
コード例 #5
0
def test_check():
    # subj1001
    subj1001 = course.Course('SUBJ', '1001', 'Subject1', 6, [t1, t2, t3, t4, t5, t6, t7, t8, t9], faculty)

    # subj1003, prereq subj1001 and final year
    prereq_final = yearReq.YearReq(year=-1)
    prereq1001 = subjectReq.SubjectReq(subj1001)

    req1001_and_final = andReq.AndReq([prereq1001, prereq_final])
    subj1003 = course.Course('SUBJ', '1003', 'Subject3', 6, [t1, t2, t3, t4, t5, t6, t7, t8, t9], faculty, req1001_and_final)

    subj1004 = course.Course('SUBJ', '1004', 'Subject4', 6, [t1, t2, t3, t4, t5, t6, t7, t8, t9], faculty)

    filter1001 = specificCourseFilter.SpecificCourseFilter(subj1001)
    filter1003 = specificCourseFilter.SpecificCourseFilter(subj1003)
    filter1004 = specificCourseFilter.SpecificCourseFilter(subj1004)

    # subj1002, prereq 6 uoc from subj1003, 1004
    or_filter = orFilter.OrFilter([filter1003, filter1004])
    prereq_6uoc = uocReq.UOCReq(6, or_filter)
    assert prereq_6uoc.filter is not None
    subj1002 = course.Course('SUBJ', '1002', 'Subject2', 6, [t1, t2, t3, t4, t5, t6, t7, t8, t9], faculty, prereq_6uoc)

    filter1002 = specificCourseFilter.SpecificCourseFilter(subj1002)

    uni.reset_courses([subj1001, subj1002, subj1003, subj1004])

    req1001 = minDegreeReq.MinDegreeReq(filter1001, 6)
    req1002 = minDegreeReq.MinDegreeReq(filter1002, 6)
    req1003 = minDegreeReq.MinDegreeReq(filter1003, 6)

    degree1 = degree.Degree(1, 'Bachelor of Testing', 2019, 3, faculty, [req1001, req1002, req1003], 'BAT1')

    gen = generator.Generator(degree1, uni)
    prog = gen.generate()

    assert len(prereq_6uoc.check(prog, t9)) == 0
    assert len(prereq_6uoc.check(prog, t8)) == 0
    assert len(prereq_6uoc.check(prog, t7)) == 1
    assert prereq_6uoc.check(prog, t7)[0] == '6 UoC fulfilling [(SUBJ1003) OR (SUBJ1004)]'

    prereq_12uoc = uocReq.UOCReq(12)
    assert len(prereq_12uoc.check(prog, t9)) == 0
    assert len(prereq_12uoc.check(prog, t8)) == 0
    assert len(prereq_12uoc.check(prog, t7)) == 1
    assert prereq_12uoc.check(prog, t7)[0] == '12 UoC'
コード例 #6
0
def test_one():
    # Make some courses
    # subj1001
    subj1001 = course.Course('SUBJ', '1001', 'Subject1', 6,
                             [t1, t2, t3, t4, t5, t6, t7, t8, t9], faculty)

    # subj1002, prereq subj1001
    prereq1001 = subjectReq.SubjectReq(subj1001)
    prereq_year2 = yearReq.YearReq(year=2)
    assert prereq_year2.year == 2
    req1001_and_year2 = andReq.AndReq([prereq1001, prereq_year2])
    subj1002 = course.Course('SUBJ', '1002', 'Subject2', 6,
                             [t1, t2, t3, t4, t5, t6, t7, t8, t9], faculty,
                             req1001_and_year2)

    # subj1003, prereq subj1001 and 1002
    prereq_final = yearReq.YearReq(year=-1)
    assert prereq_final.year == -1
    req1001_and_final = andReq.AndReq([prereq1001, prereq_final])
    subj1003 = course.Course('SUBJ', '1003', 'Subject3', 6,
                             [t1, t2, t3, t4, t5, t6, t7, t8, t9], faculty,
                             req1001_and_final)

    uni.reset_courses([subj1001, subj1002, subj1003])

    filter1001 = specificCourseFilter.SpecificCourseFilter(subj1001)
    filter1002 = specificCourseFilter.SpecificCourseFilter(subj1002)
    filter1003 = specificCourseFilter.SpecificCourseFilter(subj1003)
    req1001 = minDegreeReq.MinDegreeReq(filter1001, 6)
    req1002 = minDegreeReq.MinDegreeReq(filter1002, 6)
    req1003 = minDegreeReq.MinDegreeReq(filter1003, 6)

    degree1 = degree.Degree(1, 'Bachelor of Testing', 2019, 3, faculty,
                            [req1001, req1002, req1003], 'BAT1')

    gen = generator.Generator(degree1, uni)
    prog = gen.generate()

    assert prog.enrolled(subj1001)
    assert prog.enrolled(subj1002)
    assert prog.enrolled(subj1003)

    assert prog.term_taken(subj1001) == t1
    assert prog.term_taken(subj1002) == t4
    assert prog.term_taken(subj1003) == t7
コード例 #7
0
def test_with_filter():
    # subj1001
    subj1001 = course.Course('SUBJ', '1001', 'Subject1', 6, [t1, t2, t3, t4, t5, t6, t7, t8, t9], faculty)

    # subj1003, prereq subj1001 and final year
    prereq_final = yearReq.YearReq(year=-1)
    prereq1001 = subjectReq.SubjectReq(subj1001)

    req1001_and_final = andReq.AndReq([prereq1001, prereq_final])
    subj1003 = course.Course('SUBJ', '1003', 'Subject3', 6, [t1, t2, t3, t4, t5, t6, t7, t8, t9], faculty, req1001_and_final)

    subj1004 = course.Course('SUBJ', '1004', 'Subject4', 6, [t1, t2, t3, t4, t5, t6, t7, t8, t9], faculty)

    filter1001 = specificCourseFilter.SpecificCourseFilter(subj1001)
    filter1003 = specificCourseFilter.SpecificCourseFilter(subj1003)
    filter1004 = specificCourseFilter.SpecificCourseFilter(subj1004)

    # subj1002, prereq 6 uoc from subj1003, 1004
    or_filter = orFilter.OrFilter([filter1003, filter1004])
    prereq_6uoc = uocReq.UOCReq(6, or_filter)
    assert prereq_6uoc.filter is not None
    subj1002 = course.Course('SUBJ', '1002', 'Subject2', 6, [t1, t2, t3, t4, t5, t6, t7, t8, t9], faculty, prereq_6uoc)

    filter1002 = specificCourseFilter.SpecificCourseFilter(subj1002)

    uni.reset_courses([subj1001, subj1002, subj1003, subj1004])

    req1001 = minDegreeReq.MinDegreeReq(filter1001, 6)
    req1002 = minDegreeReq.MinDegreeReq(filter1002, 6)
    req1003 = minDegreeReq.MinDegreeReq(filter1003, 6)

    degree1 = degree.Degree(1, 'Bachelor of Testing', 2019, 3, faculty, [req1001, req1002, req1003], 'BAT1')

    gen = generator.Generator(degree1, uni)
    prog = gen.generate()

    assert prog.enrolled(subj1001)
    assert prog.enrolled(subj1002)
    assert prog.enrolled(subj1003)

    assert prog.term_taken(subj1001) == t1
    assert prog.term_taken(subj1002) == t8
    assert prog.term_taken(subj1003) == t7
コード例 #8
0
def test_exclusion_errors():
    subj1001 = course.Course('SUBJ', '1001', 'Subject1', 6, [t1, t2], faculty)
    subj1002 = course.Course('SUBJ', '1002', 'Subject2', 6, [t1, t2], faculty)
    subj1003 = course.Course('SUBJ',
                             '1003',
                             'Subject3',
                             6, [t1, t2],
                             faculty,
                             exclusions=['SUBJ1001', 'SUBJ1002'])

    prog = program.Program(degree1, [], [])
    prog.add_course(subj1001, t1)
    prog.add_course(subj1003, t2)

    errors = subj1003.exclusion_errors(prog, t2)
    assert len(errors) == 1
    assert errors[0] == 'SUBJ1001'

    prog.add_course(subj1002, t2)
    errors = subj1003.exclusion_errors(prog, t2)
    assert len(errors) == 2
    assert errors[0] == 'SUBJ1001'
    assert errors[1] == 'SUBJ1002'
コード例 #9
0
def test_check_reqs():

    subj1001 = course.Course('SUBJ', '1001', 'Subject1', 6, [t1, t2], faculty)
    subj1002 = course.Course('SUBJ', '1002', 'Subject2', 6, [t1, t2], faculty)
    subj1003 = course.Course('SUBJ', '1003', 'Subject3', 6, [t1, t2], faculty)
    subj1004 = course.Course('SUBJ', '1004', 'Subject4', 6, [t1, t2], faculty)
    subj1005 = course.Course('SUBJ', '1005', 'Subject5', 6, [t1, t2], faculty)
    subj1006 = course.Course('SUBJ', '1006', 'Subject6', 6, [t1, t2], faculty)

    req1001 = subjectReq.SubjectReq(subj1001, 75)
    req1002 = subjectReq.SubjectReq(subj1002)
    req1003 = subjectReq.SubjectReq(subj1003)
    req1004 = subjectReq.SubjectReq(subj1004)

    req1002_and = andReq.AndReq([req1002, req1003])
    prereq_or = orReq.OrReq([req1001, req1002_and])

    ex = ['SUBJ1005', 'SUBJ1006']
    subj1007 = course.Course('SUBJ',
                             '1007',
                             'Subject7',
                             6, [t1, t2],
                             faculty,
                             prereqs=prereq_or,
                             coreqs=req1004,
                             exclusions=ex)

    enrol1005 = courseEnrollment.CourseEnrollment(subj1005, t1)

    prog = program.Program(degree1, [enrol1005], [])

    errors = subj1007.check_reqs(prog, t2)

    assert len(errors) == 3
    assert errors[0]['filter_type'] == 'Prerequisite'
    assert errors[0]['info'] == [
        '(A mark of 75 in SUBJ1001 OR (SUBJ1002 AND SUBJ1003))'
    ]
    assert errors[1]['filter_type'] == 'Corequisite'
    assert errors[1]['info'] == ['SUBJ1004']
    assert errors[2]['filter_type'] == 'Exclusion'
    assert errors[2]['info'] == ['SUBJ1005']

    prog.add_course(subj1001, t1)
    errors = subj1007.check_reqs(prog, t2)
    assert len(errors) == 2
    assert errors[0]['filter_type'] == 'Corequisite'
    assert errors[0]['info'] == ['SUBJ1004']
    assert errors[1]['filter_type'] == 'Exclusion'
    assert errors[1]['info'] == ['SUBJ1005']

    assert subj1007.check_warnings(prog, t2) == ['A mark of 75 in SUBJ1001']
コード例 #10
0
def test_term_cap_enrollment():
    # make a coreq subject
    subj1005 = course.Course('SUBJ', '1005', 'Subject5', 6, [t1, t4], faculty)
    subj1006 = course.Course('SUBJ', '1006', 'Subject6', 6, [t1, t2], faculty)
    subj1007 = course.Course('SUBJ', '1007', 'Subject7', 6, [t1, t2], faculty)

    uni.add_course(subj1005)
    uni.add_course(subj1006)
    uni.add_course(subj1007)

    # Make some degree requirements
    # 1001 and 1002 and 1003
    filter1001 = specificCourseFilter.SpecificCourseFilter(subj1001)
    filter1005 = specificCourseFilter.SpecificCourseFilter(subj1005)
    filter1006 = specificCourseFilter.SpecificCourseFilter(subj1006)
    filter1007 = specificCourseFilter.SpecificCourseFilter(subj1007)

    req1001 = minDegreeReq.MinDegreeReq(filter1001, 6)
    req1005 = minDegreeReq.MinDegreeReq(filter1005, 6)
    req1006 = minDegreeReq.MinDegreeReq(filter1006, 6)
    req1007 = minDegreeReq.MinDegreeReq(filter1007, 6)

    degree1 = degree.Degree(1, 'Bachelor of Testing', 2019, 2, faculty,
                            [req1001, req1005, req1006, req1007], 'TESTA1')

    gen = generator.Generator(degree1, uni)
    prog = gen.generate()

    assert prog.enrolled(subj1001)
    assert prog.enrolled(subj1005)
    assert prog.enrolled(subj1006)
    assert prog.enrolled(subj1007)

    assert prog.term_taken(subj1001) == t1
    assert prog.term_taken(subj1005) == t1
    assert prog.term_taken(subj1006) == t1
    assert prog.term_taken(subj1007) == t2
コード例 #11
0
def test_equivalent():
    # make an equivalent subject
    subj1005 = course.Course('SUBJ',
                             '1005',
                             'Subject5',
                             6, [],
                             faculty,
                             equivalents=['SUBJ1001'])
    subj1001.add_equivalent('SUBJ1005')

    subj1006 = course.Course('SUBJ', '1006', 'Subject5', 6, [t2, t3, t5, t6],
                             faculty)

    uni.add_course(subj1005)
    uni.add_course(subj1006)

    # Make some degree requirements
    # 1006 requires 1005 but 1001 is an equivalent
    filter1005 = specificCourseFilter.SpecificCourseFilter(subj1005)
    filter1006 = specificCourseFilter.SpecificCourseFilter(subj1006)

    req1005 = minDegreeReq.MinDegreeReq(filter1005, 6)
    req1006 = minDegreeReq.MinDegreeReq(filter1006, 6)

    degree1 = degree.Degree(1, 'Bachelor of Testing', 2019, 2, faculty,
                            [req1005, req1006], 'TESTA1')

    gen = generator.Generator(degree1, uni)
    prog = gen.generate()

    assert prog.enrolled(subj1001)
    assert prog.enrolled(subj1006)
    assert not prog.enrolled(subj1005)

    assert prog.term_taken(subj1001) == t1
    assert prog.term_taken(subj1006) == t2
コード例 #12
0
    def setup_method(self, function):
        self.db = sqlite3.connect(':memory:',
                                  detect_types=sqlite3.PARSE_DECLTYPES)
        self.db.row_factory = sqlite3.Row

        self.cursor = self.db.cursor()

        with open('server/db/schema.sql') as f:
            self.db.executescript(f.read())

        with open('server/db/setup_enums.sql') as f:
            self.db.executescript(f.read())

        self.h = DbHelper(self.db)

        self.university = university.University(self.h.query_db)

        self.first_course = course.Course('TEST',
                                          '1000',
                                          'Test course 1',
                                          6, [],
                                          'TestFaculty',
                                          finished=True)
        self.second_course = course.Course('COMP',
                                           '2521',
                                           'Test course 2',
                                           3, [],
                                           'Engineering',
                                           finished=True)

        # TODO: check different years
        self.first_degree = degree.Degree(1111, 'Test degree', 2019, 3,
                                          'TestFaculty', [], 'ABCDE')

        self.second_degree = degree.Degree(3223, 'Test degree 2', 2019, 5,
                                           'Engineering', [], 'FGHIJ')
コード例 #13
0
ファイル: timetable.py プロジェクト: elootje98/Rooster
    def make_courses(self):
        """" Fills list of courses with Course objects made from data file. """

        relative_path = os.path.dirname(os.path.abspath("main.py"))
        absolute_path = os.path.join(relative_path, "data", "courses.csv")

        with open(absolute_path) as csv_file:
            csv_reader = csv.reader(csv_file, delimiter=';')
            line = 0
            courses = []

            # Loops over all lines in csv file
            for row in csv_reader:
                courses.append(row[0])

        for course in courses:
            self.courses.append(crs.Course(course))
コード例 #14
0
    def to_course(self) -> 'course.Course':
        # Step 1: save into db
        subject = self.code[:4]
        code = self.code[4:]
        name = self.name
        units = self.units
        terms = self.terms
        faculty = self.faculty
        prereqs = self.prereqs
        coreqs = self.coreqs

        # store in dict
        #STORE IN DB
        return course.Course(subject,
                             code,
                             name,
                             units,
                             terms,
                             faculty,
                             prereqs=self.prereqs,
                             coreqs=self.coreqs,
                             exclusions=self.exclusions,
                             equivalents=self.equivalents,
                             finished=self.finished)
コード例 #15
0

uni = MockUniversity()

t1 = term.Term(2019, 1)
t2 = term.Term(2019, 2)
t3 = term.Term(2019, 3)
t4 = term.Term(2020, 1)
t5 = term.Term(2020, 2)
t6 = term.Term(2020, 3)

faculty = 'SubjFaculty'

# Make some courses
# subj1001
subj1001 = course.Course('SUBJ', '1001', 'Subject1', 6,
                         [t1, t2, t3, t4, t5, t6], faculty)

# subj1002, prereq subj1001
prereq1001 = subjectReq.SubjectReq(subj1001)
subj1002 = course.Course('SUBJ', '1002', 'Subject2', 6, [t1, t3, t4, t6],
                         faculty, prereq1001)

# subj1003, prereq subj1001 and 1002
prereq1002 = subjectReq.SubjectReq(subj1002)
req1001_and_1002 = andReq.AndReq([prereq1001, prereq1002])
subj1003 = course.Course('SUBJ', '1003', 'Subject3', 6, [t1, t4], faculty,
                         req1001_and_1002)

# TODO subj1004 was not defined! making a dummy one
subj1004 = course.Course('SUBJ', '1004', 'Subject4', 6, [t1, t2], faculty,
                         req1001_and_1002)
コード例 #16
0
Test the functions defined in andFilter.py
'''

import pytest
from classes import course
from classes import andFilter
from classes import fieldFilter
from classes import levelFilter
from classes import degree

f = fieldFilter.FieldFilter('SUBJ')
l = levelFilter.LevelFilter(3)
deg = degree.Degree(num_code='3778',
                    name='Computer Science',
                    year=2019,
                    duration=3,
                    faculty='Engineering',
                    requirements=[],
                    alpha_code='COMPA1')
c1 = course.Course('SUBJ', '3001', 'Subject1', 6, [], 'Engineering')
c2 = course.Course('SUBJ', '1001', 'Subject1', 6, [], 'Engineering')
and_filt = andFilter.AndFilter([f, l])


def test_accepts_course_true():
    assert and_filt.accepts_course(c1, deg)


def test_accepts_course_false():
    assert not and_filt.accepts_course(c2, deg)
コード例 #17
0
def test_accepts_course():
    c = course.Course('SUBJ', '1001', 'Subject1', 6, [], 'SubjectFac')
    assert f.accepts_course(c, deg)
コード例 #18
0
def test_accepts_course_true():
    c = course.Course('OTHR', '1001', 'Other1', 6, [], 'OtherFac')
    assert f.accepts_course(c, deg)
コード例 #19
0
Team: On Course
Alexander Rowell (z5116848), Eleni Dimitriadis (z5191013), Emily Chen (z5098910)
George Fidler (z5160384), Kevin Ni (z5025098)

test_orFilter.py
Test the functions defined in orFilter.py
'''

import pytest
from classes import course
from classes import orFilter
from classes import fieldFilter
from classes import levelFilter
from classes import degree



f1 = fieldFilter.FieldFilter('SUBJ')
f2 = fieldFilter.FieldFilter('OTHR')
deg = degree.Degree(num_code='3778', name='Computer Science', year=2019,
        duration=3, faculty='Engineering', requirements=[], alpha_code='COMPA1')
c1 = course.Course('SUBJ', '1001', 'Subject1', 6, [], 'Engineering')
c2 = course.Course('FALS', '1001', 'False1', 6, [], 'Engineering')
or_filt1 = orFilter.OrFilter([f1, f2])

def test_accepts_course_true():
    assert or_filt1.accepts_course(c1, deg)

def test_accepts_course_false():
    assert not or_filt1.accepts_course(c2, deg)
コード例 #20
0
import pytest
from typing import List

from classes import degree
from classes import program
from classes import term
from classes import subjectReq
from classes import course
from classes import courseEnrollment

faculty = 'SubjFaculty'
t1 = term.Term(2019, 1)
t2 = term.Term(2019, 2)
degree1 = degree.Degree('1', 'Bachelor of Testing', 2019, 3, faculty, [],
                        'BAT1')
subj1001 = course.Course('SUBJ', '1001', 'Subject1', 6, [t1], faculty)
subj1002 = course.Course('SUBJ', '1002', 'Subject1', 6, [t1], faculty)
enrol1001 = courseEnrollment.CourseEnrollment(subj1001, t1)
enrol1002 = courseEnrollment.CourseEnrollment(subj1002, t1)
prog1 = program.Program(degree1, [enrol1001], [])
prog2 = program.Program(degree1, [enrol1002], [])
req = subjectReq.SubjectReq(subj1001)


def test_fulfilled():
    assert req.fulfilled(prog1, t2)
    assert req.fulfilled(prog1, t1, coreq=True)


def test_not_fulfilled():
    assert not req.fulfilled(prog2, t2)