def test_hash_not_depending_on_order(self): oneorder = Courses() otherorder = Courses() metal = Course('metalli', 'beep.com') polim = Course('polimeri', 'beep.it') oneorder.append(metal, polim) otherorder.append(polim, metal) assert hash(oneorder) == hash(otherorder)
def test_remove(self): all = Courses() one = Courses() metal = Course('metalli', 'beep.com') other = Course('other', 'doesntmatter') all.append(metal, other) one.append(other) all.remove(metal) assert all == one
def test_append(self): metal = Course('metalli', 'beep.com') other = Course('other', 'doesntmatter') oneatatime = Courses() # append in two steps oneatatime.append(metal) oneatatime.append(other) twocourses = Courses() twocourses.append(other, metal) # append in one step assert twocourses == oneatatime
def test_difference(self): offline_metal = Course('metalli', 'beep.com') offline_polim = Course('polimeri', 'beep.it') metal = Course('metalli', 'beep.com') polim = Course('polimeri', 'beep.it') offline = Courses() offline.append(offline_polim, offline_metal) online = Courses() online.append(metal, polim) for course in online: print('online {}'.format(course.name)) for course in offline: print('offline {}'.format(course.name)) assert online - offline == []
def test_notbelonging(self): metal = Course('metalli', 'beep.com') courseinside = Course('polimeri', 'beep.com') other = Course('other', 'doesntmatter') courses = Courses() courses.append(courseinside, other) assert metal not in courses
def test_belonging(self): metal = Course('metalli', 'beep.com') metalinside = Course('metalli', 'beep.com') other = Course('other', 'doesntmatter') courses = Courses() courses.append(metalinside, other) assert metal in courses
def test_ignorebeepcourse(self): clean_list = [ Course( '[2014-15] - ADVANCED CHEMISTRY FOR MATERIALS ENGINEERING [ MATERIALS ENGINEERING AND NANOTECHNOLOGY ]', 'beep.com'), Course( '[2014-15] - DURABILITY OF MATERIALS [ MATERIALS ENGINEERING AND NANOTECHNOLOGY ]', 'beep.com'), Course( '[2014-15] - FAILURE AND CONTROL OF METALS [ MAURIZIO VEDANI ]', 'beep.com'), Course( '[2014-15] - MATHEMATICAL METHODS FOR MATERIALS ENGINEERING [ MICHELE DI CRISTO ]', 'beep.com'), Course( '[2014-15] - MECHANICAL BEHAVIOUR OF MATERIALS [ LAURA VERGANI ]', 'beep.com'), Course( '[2014-15] - MICRO ELECTRO MECHANICAL SYSTEMS (MEMS) [ ALBERTO CORIGLIANO ]', 'beep.com'), Course( '[2014-15] - PHYSICAL PROPERTIES OF MOLECULAR MATERIALS [ MATTEO MARIA SAVERIO TOMMASINI ]', 'beep.com'), Course('[2014-15] - PHYSICS OF NANOSTRUCTURES [ CARLO S. CASARI ]', 'beep.com'), Course('[2014-15] - SOLID STATE PHYSICS [ CARLO ENRICO BOTTANI ]', 'beep.com'), Course( '[2014-15] - STRUCTURAL CHEMISTRY OF MATERIALS [ GUIDO RAOS ]', 'beep.com'), ] clean_courses = Courses() clean_courses.append(*clean_list) # the following file is an exact copy of what you get online. # It's a one-line document path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'courses-page.html') with open(path) as fake_courses: text = fake_courses.read() user = User("doesn't matter", 'nope') temp_courses = user._courses_scraper(text) courses = Courses() for elem in temp_courses: course = Course(elem[0], elem[1]) courses.append(course) assert courses == clean_courses
def step_impl(context): new_course = Course('newcourse', 'fakelink') common_course = Course('common', 'commonlink') guy = User('fakeid', 'fakepwd') guy.available_courses.append(new_course, common_course) context.guy = guy online_courses = Courses() online_courses.append(common_course) context.online_courses = online_courses
def test_sync_courses_remove(self): guy = User('fakeid', 'fakepwd') metal = Course('metalli', 'beep.com') other = Course('other', 'doesntmatter') online = Courses() online.append(metal) guy.available_courses.append(metal, other) guy.sync_available_courses(online) assert guy.available_courses == online
def test__len__(self): courses = Courses() courses.append(Course('metalli', 'beep.com'), Course('other', 'doesntmatter')) assert len(courses) == 2
def test_return_hash(self): courses = Courses() courses.append(Course('metalli', 'beep.com')) assert hash(courses) is not None