def add_review_by_user(user: User, submisson: Submission, review_type: int) -> None: review = Review(user=user, submission=submisson, review_type=review_type, mwe=mwe_helper.get_todays_mwe(user.language)) session.add(review) session.commit() pass
def _parse_review(self, li): _user_info = li('div', class_='dper-info')[0] _user_rank = li('div', class_='review-rank')[0] _user_words = li('div', class_='review-words')[0] _reply = li('a', class_='reply')[0] _review_pic_li = li('div', class_='review-pictures') _review_pics = _review_pic_li[0] if _review_pic_li else None _review_info = li('div', class_='misc-info')[0] _score = _user_rank('span', class_='item') _actions = _review_info('span', class_='actions')[0] _actions_a = _actions('a') actions = {} imgs = [] user_img = li.img['data-lazyload'].split('%')[0] # 有可能是匿名用户 user_url = HOST + li.a['href'].strip() if li.a.has_attr( 'href') else None user_id = li.a['data-user-id'] user_name = _user_info.a.text.strip() user_level = from_pattern( PATTERN_USER_LEVEL, _user_info.img['src']) if _user_info.img else None use_vip = True if _user_info.span and _user_info.span['class'][ 0] == 'vip' else False star = from_pattern(PATTERN_STAR, ''.join(_user_rank.span['class'])) score = { i.text.strip().split(':')[0]: i.text.strip().split(':')[1] for i in _score } review_time = _review_info.span.text.strip() review_shop = _review_info('span', class_='shop')[0].text review_shop_id = self.id review_id = _reply['data-id'] review_url = 'http:' + _reply['href'] for a in _actions_a: action_name = a.text.strip() _next = a.next_sibling.next_sibling if _next and _next.name == 'em': num = from_pattern(PATTERN_NUMS, _next.text) actions[action_name] = num if _review_pics: for pic in _review_pics('img'): imgs.append(pic['data-big']) words = self.decrypter.decrypt(_user_words, *self.decrypt_dict, comment=True) review = Review(user_name, user_id, user_url, user_img, user_level, use_vip, star, score, review_id, review_url, review_time, review_shop, review_shop_id, imgs, words, actions) return review
def review_handler_2(user: User, update: Update, context: CallbackContext): review_types = [ get_language_token(user.language, Tokens.AGREE_NICE_EXAMPLE), get_language_token(user.language, Tokens.DO_NOT_LIKE_EXAMPLE), get_language_token(user.language, Tokens.SKIP_THIS_ONE), get_language_token(user.language, Tokens.QUIT_REVIEWING) ] user = get_user_from_update(update) if update.message.text in review_types: submission = context.user_data["submission"] todays_mwe = mwe_helper.get_todays_mwe(user.language) points_earned_for_submission = { "together": 10, "separated": 20, "non-mwe": 30 } if update.message.text == review_types[0]: points_earned = points_earned_for_submission[submission.category] reply_message = get_language_token( user.language, Tokens.SOMEONE_LOVED_YOUR_EXAMPLE) % ( get_random_congrats_message(user.language), points_earned) send_message_to_user(submission.user, reply_message) review = Review(user=user, mwe=todays_mwe, submission=submission, review_type=POSITIVE_REVIEW) session.add(review) session.commit() review_handler(user, update, context) elif update.message.text == review_types[1]: review = Review(user=user, mwe=todays_mwe, submission=submission, review_type=NEGATIVE_REVIEW) session.add(review) session.commit() review_handler(user, update, context) elif update.message.text == review_types[2]: review = Review(user=user, mwe=todays_mwe, submission=submission, review_type=NEUTRAL_REVIEW) session.add(review) session.commit() review_handler(user, update, context) elif update.message.text == review_types[3]: del context.user_data["submission"] del context.user_data["state"] update.message.reply_text( get_language_token(user.language, Tokens.THANKS_FOR_CONTRIBUTION), parse_mode=telegram.ParseMode.MARKDOWN, reply_markup=get_main_keyboard_markup(user.language)) else: update.message.reply_text( get_language_token(user.language, Tokens.PLEASE_ENTER_VALID_REVIEW), parse_mode=telegram.ParseMode.MARKDOWN, reply_markup=get_review_type_keyboard_keyboard_markup( user.language))
def add_customer_review_db(session, customer, review, rating): review = Review(review, rating) customer.reviews.append(review) session.add(review) session.commit() return review
class ReviewTests(unittest.TestCase): def setUp(self): self.venue_one = Venue(name='Surf Club') self.venue_two = Venue(name=u'Greentree') self.review_one = Review(venue = self.venue_one, cost = 10000.00, num_guests = 200) self.review_two = Review(venue = self.venue_one, cost = 20000.00, num_guests = 500) self.review_three = Review(venue = self.venue_two, cost = 20000.00, num_guests=30.5) def test_venue_constructors(self): self.assertEqual(self.venue_one.name, 'Surf Club') self.assertEqual(self.venue_two.name, 'Greentree') def test_review_constructors(self): #test the venue for actual object identity self.assertTrue(self.review_one.venue is self.venue_one) self.assertEqual(self.review_one.cost, 10000.00) self.assertEqual(self.review_one.num_guests, 200) def test_out_of_bounds_assignments(self): #can't enter string for venue name self.assertRaises(TypeError, Venue, name=5) #venue must be a venue object self.assertRaises(TypeError, Review, venue = 'Surf Club', cost = 10000.00, num_guests = 200) #cost and num_guests must both be greater than 0 self.assertRaises(ValueError, Review, venue = self.venue_one, cost = 0, num_guests = 200) self.assertRaises(ValueError, Review, venue = self.venue_one, cost = 10000.00, num_guests = 0) #after construction, num_guests must be an int self.assertTrue(isinstance(self.review_three.num_guests,int)) def test_review_in_venue_list(self): #check that creating the revue adds it to the venue's list self.assertTrue(self.review_one in self.venue_one.reviews) self.assertTrue(self.review_three not in self.venue_one.reviews) self.assertEqual(len(self.venue_one.reviews),2) #prevent duplicate reviews self.venue_one.add_review(self.review_one) self.assertEqual(len(self.venue_one.reviews),2) def test_set_review(self): self.review_two.set_cost(15000.00) self.assertEqual(self.review_two.cost, 15000.00) self.review_two.set_num_guests(160) self.assertEqual(self.review_two.num_guests,160) #review_three is the only review for venue 2 set_venue_result = self.review_three.set_venue(self.venue_one) self.assertTrue(self.review_three.venue is self.venue_one) def test_venue_average_cost(self): self.assertAlmostEqual(self.venue_one.calculate_average_cost(), 15000.00) self.dummy_venue = Venue(name='Fake venue') self.assertEqual(self.dummy_venue.calculate_average_cost(), None)
def setUp(self): self.venue_one = Venue(name='Surf Club') self.venue_two = Venue(name=u'Greentree') self.review_one = Review(venue = self.venue_one, cost = 10000.00, num_guests = 200) self.review_two = Review(venue = self.venue_one, cost = 20000.00, num_guests = 500) self.review_three = Review(venue = self.venue_two, cost = 20000.00, num_guests=30.5)
def test_invalid_previous_steps(self): review = Review() review.set_submission('Author submission (submission.doc)') review.set_review_request_1('Request the first reviewer') review.set_review_request_2('Request the second reviewer') with self.assertRaises(ValueError): review.set_review_request_2('Request the second reviewer') with self.assertRaises(ValueError): review.set_review_request_1('Request the first reviewer') with self.assertRaises(ValueError): review.set_submission('Author submission (submission.doc)')
def test_invalid_steps(self): review = Review() with self.assertRaises(ValueError): review.set_review_request_1('Request the first reviewer') with self.assertRaises(ValueError): review.set_review_request_2('Request the second reviewer') with self.assertRaises(ValueError): review.set_review_response_1('Response from the first reviewer') with self.assertRaises(ValueError): review.set_review_response_2('Response from the second reviewer') with self.assertRaises(ValueError): review.set_evaluation_result('Evaluation result to the author')
def test_valid_steps(self): review = Review() review.set_submission('Author submission (submission.doc)') review.set_review_request_1('Request the first reviewer') review.set_review_request_2('Request the second reviewer') review.set_review_response_1('Response from the first reviewer') review.set_review_response_2('Response from the second reviewer') review.set_evaluation_result('Evaluation result to the author')
def test_review_creation(self): review = Review()
service.create_customer(customer) elif opt == 5: id = int(input("Enter customer id: ")) service.list_reviews(id) else: print("Please select one from the given options.") elif inp == 3: service = ReviewService(conn) print("1. See all reviews") print("2. Add review") opt = int(input()) if opt == 1: service.list_reviews() elif opt == 2: id = int(input("Enter review id: ")) customer_id = int(input("Enter customer id: ")) restaurant_id = int(input("Enter restaurant id: ")) text = input("Enter review: ") rating = float(input("Enter rating (1-5)")) review = Review(id, customer_id, restaurant_id, text, rating) service.add_review(review) else: print("Please select one from the given options.") elif inp == 4: exit() else: print("Please select one from the given options.") continue