def test5(): courses = [] coursera_root_page_filepath = ls.get_default_coursera_stocked_root_webpage_osfilepath() html_text = open(coursera_root_page_filepath).read() root = etree.HTML(html_text) elements = root.findall(".//div[@class]") for element in elements: classname = element.get('class') if classname == 'coursera-course-listing-main': course_obj = process_element(element) if course_obj != None: courses.append(course_obj) #sys.exit(0) grabber = CourseraRootCourseGrabber() grabber.restart_items_by_reading_htmlwebroot_source() for course_id in grabber.unique_course_id_dict.keys(): msg = '%s seq = %s' %(course_id, grabber.unique_course_id_dict[course_id].course_n_seq) logging.info(msg) logging.info('**********************************') for i, course_obj in enumerate(courses): if course_obj.course_id in grabber.unique_course_id_dict.keys(): course_there = grabber.unique_course_id_dict[course_obj.course_id] course_obj.course_n_seq = course_there.course_n_seq msg = '****EQUAL **** %s :: seq = %s' %(course_obj.course_id, course_there.course_n_seq) logging.info(msg) print i, course_obj.course_id logging.info(course_obj.course_id) print 'title', course_obj.title print 'nseq', course_obj.course_n_seq
def test_non_empty_items(self): ''' Test grabber for non-empty items when it SHOULD NOT have non-empty items ''' grabber = CourseraRootCourseGrabber() course_id = 'anycourse' course_n_seq = '001' coursera_item_obj = CourseraCourse(course_id, course_n_seq) # adding one arbitrary course arbitrarily grabber.course_tuple_list = [(coursera_item_obj.course_id, coursera_item_obj)] # it must NOT be empty if an item was added to it self.assertNotEqual([], grabber.course_tuple_list)
def test_empty_items(self): ''' Test grabber when it SHOULD have non empty items Here there are 2 subtests: ST#1 : items should be empty after constructor ST#2 : items should be empty after method empty_items() is invoked ''' grabber = CourseraRootCourseGrabber() # ST#1 : items should be empty after constructor self.assertEqual([], grabber.course_tuple_list) grabber.empty_items() # ST#2 : items should be empty after method empty_items() is invoked self.assertEqual([], grabber.course_tuple_list)
def test_saved_txt(self): ''' Here follows this test's rationale: :: First (ST#1) SubTest 1) Read coursera's items from its webroot html page 2) Write the items to a test text file 3) Copy items to a 'buffer' list 4) Empty items data from the stocking object 5) Read coursera's items from the given test text file, just writen out above 6) Assert equality of buffered items with current items read from the test text file in the previous step :: Second (ST#2) SubTest 7) Recopy items to the 'buffer' list 8) Again empty items data from the stocking object 9) Refetch items now via a different method 10) Again, a second time, assert equality of buffered items with current items read from the test text file in the previous step ''' grabber = CourseraRootCourseGrabber() grabber.fill_in_items_by_read_source(grabber.COURSERA_COURSES_IN_WEBROOT_HTML) # hardcopy course_tuple_list course_tuple_list = grabber.course_tuple_list[:] target_txt_filename = 'test_txt_of_coursera_items.txt' grabber.write_to_txtfile_current_stocked_coursera_items(target_txt_filename) grabber.empty_items() grabber.fill_in_items_by_read_source(grabber.COURSERA_COURSES_IN_STOCKED_TXT, filename = target_txt_filename) self.assertEqual(course_tuple_list, grabber.course_tuple_list) # test the same items fetch, but via a different method course_tuple_list = grabber.course_tuple_list[:] grabber.restart_items_by_reading_txt_source(target_txt_filename) self.assertEqual(course_tuple_list, grabber.course_tuple_list)