def test_reservations(self): for r in Reservation.get_reservations(self.user): self.assertIn(r, [self.reservation1, self.reservation2]) for r in self.user.get_reservations(): self.assertIn(r, [self.reservation1, self.reservation2]) self.assertEqual(Reservation.get_reservation_by_id(self.reservation1.id), \ self.reservation1) self.assertEqual(Reservation.get_reservation_by_id(self.reservation2.id), \ self.reservation2)
def tearDown(self): Reservation.delete_reservation(self.reservation1) self.user.remove_reservation(self.reservation2) Item.delete_item(self.item1) Item.delete_item(self.item2) Item.delete_item(self.item3) User.delete_user(self.user) Category.delete_category(self.category)
def test_matching_reservations(self): # we expect to match the 8.01 reservation physics1 = Reservation.get_matching_reservations(self.item1) self.assertEqual(len(physics1), 1) self.assertIn(self.reservation1, physics1) # we expect to match nothing, since the price is too high physics2 = Reservation.get_matching_reservations(self.item2) self.assertEqual(len(physics2), 0) # we don't expect to match anything video = Reservation.get_matching_reservations(self.item3) self.assertEqual(len(video), 0)
def sell_page(request): if request.method == "POST": form = ItemForm(request.POST, request.FILES) if form.is_valid(): name = form.cleaned_data['name'] description = form.cleaned_data['description'] category = form.cleaned_data['category'] price = form.cleaned_data['price'] image = form.files.get('image', None) active = True upload_time = datetime.utcnow # TODO: Grab username from web cert get_current_user(request).add_item(name, description, category, price, image) return redirect('data.views.buy_page') else: # Create unbound form form = ItemForm() render_params = base_params(request) render_params[NAV_PAGE] = SELL render_params['form'] = form # For the Google Maps location if get_current_user(request).location is not None: render_params['latitude'] = get_current_user(request).location.latitude render_params['longitude'] = get_current_user(request).location.longitude render_params['items'] = get_current_user(request).get_items() render_params['reservations'] = Reservation.get_all_reservations() return render(request, 'sell/sell.html', render_params, \ context_instance=RequestContext(request))
def delete_reservation(request): if request.method != 'POST': return redirect('data.views.dashboard_page') reservation_id = request.POST['reservation_id'] reservation = Reservation.get_reservation_by_id(reservation_id) get_current_user(request).remove_reservation(reservation) return redirect('data.views.dashboard_page')
def setUp(self): self.category = Category.create_category(self.GIRS_CATEGORY) self.user = User.create_user(self.USERNAME, self.FIRST_NAME, self.LAST_NAME, \ self.EMAIL, self.PHONE, self.LOCATION) self.item1 = Item.create_item(self.user, self.PHYSICS_NAME, \ self.PHYSICS_DESCRIPTION, self.category, self.PHYSICS_PRICE_1) self.item2 = Item.create_item(self.user, self.PHYSICS_NAME, \ self.PHYSICS_DESCRIPTION, self.category, self.PHYSICS_PRICE_2) self.item3 = Item.create_item(self.user, self.VIDEO_NAME, \ self.VIDEO_DESCRIPTION, self.category, self.VIDEO_PRICE) self.reservation1 = Reservation.create_reservation(self.user, \ self.SEARCH_QUERY1, self.MAX_PRICE) self.reservation2 = self.user.add_reservation(self.SEARCH_QUERY2, self.MAX_PRICE)