def article_request(request): if request.method == 'POST': article = Article.objects.get(id=request.POST['article_id']) if request.user.enabled: try: string_inicio = request.POST[ 'fecha_inicio'] + " " + request.POST['hora_inicio'] start_date_time = datetime.strptime(string_inicio, '%Y-%m-%d %H:%M') string_fin = request.POST['fecha_fin'] + " " + request.POST[ 'hora_fin'] end_date_time = datetime.strptime(string_fin, '%Y-%m-%d %H:%M') if start_date_time > end_date_time: messages.warning( request, 'La reserva debe terminar después de iniciar.') elif start_date_time < datetime.now() + timedelta(hours=1): messages.warning( request, 'Los pedidos deben ser hechos al menos con una hora de anticipación.' ) elif start_date_time.date() != end_date_time.date(): messages.warning( request, 'Los pedidos deben ser devueltos el mismo día que se entregan.' ) elif not verificar_horario_habil( start_date_time) or not verificar_horario_habil( end_date_time): messages.warning( request, 'Los pedidos deben ser hechos en horario hábil de Lunes a Viernes entre 9:00 y 18:00.' ) else: loan = Loan(article=article, starting_date_time=start_date_time, ending_date_time=end_date_time, user=request.user) loan.save() messages.success(request, 'Pedido realizado con éxito') except Exception as e: messages.warning(request, 'Ingrese una fecha y hora válida.') else: messages.warning(request, 'Usuario no habilitado para realizar préstamos') return redirect('/article/' + str(article.id))
def create_a_loan(self, article=None): if article is None: article = self.create_an_article() start_date_time = datetime.now() end_date_time = datetime.now() loan = Loan(article=article, starting_date_time=start_date_time, ending_date_time=end_date_time, user=self.get_user_foo()) if self.loans is None: self.loans = [] self.loans.append(loan) return loan
def setUp(self): # Set Up temp_file = tempfile.NamedTemporaryFile() test_image = get_temporary_image(temp_file) self.my_article = create_article(image=test_image.name) self.my_article_id = self.my_article.id self.user = User.objects.create(email='*****@*****.**') self.user.set_password('12345') self.user.save() fecha_inicio = '2018-08-10' hora_inicio = '15:01' fecha_fin = '2018-09-10' hora_fin = '16:30' string_inicio = fecha_inicio + ' ' + hora_inicio start_date_time = datetime.strptime(string_inicio, '%Y-%m-%d %H:%M') string_fin = fecha_fin + ' ' + hora_fin final_date_time = datetime.strptime(string_fin, '%Y-%m-%d %H:%M') self.reservation1 = Loan(article=self.my_article, starting_date_time=start_date_time, ending_date_time=final_date_time, user=self.user) #self.reservation1_id = self.reservation1.id self.reservation1.save() fecha_inicio = '2018-08-10' hora_inicio = '15:02' fecha_fin = '2018-09-10' hora_fin = '16:30' string_inicio = fecha_inicio + ' ' + hora_inicio start_date_time = datetime.strptime(string_inicio, '%Y-%m-%d %H:%M') string_fin = fecha_fin + ' ' + hora_fin final_date_time = datetime.strptime(string_fin, '%Y-%m-%d %H:%M') self.reservation2 = Loan(article=self.my_article, starting_date_time=start_date_time, ending_date_time=final_date_time, user=self.user) #self.reservation1_id = self.reservation1.id self.reservation2.save() fecha_inicio = '2018-08-10' hora_inicio = '15:04' fecha_fin = '2018-09-10' hora_fin = '16:30' string_inicio = fecha_inicio + ' ' + hora_inicio start_date_time = datetime.strptime(string_inicio, '%Y-%m-%d %H:%M') string_fin = fecha_fin + ' ' + hora_fin final_date_time = datetime.strptime(string_fin, '%Y-%m-%d %H:%M') self.reservation3 = Loan(article=self.my_article, starting_date_time=start_date_time, ending_date_time=final_date_time, user=self.user) #self.reservation1_id = self.reservation1.id self.reservation3.save() fecha_inicio = '2018-08-10' hora_inicio = '15:06' fecha_fin = '2018-09-10' hora_fin = '16:30' string_inicio = fecha_inicio + ' ' + hora_inicio start_date_time = datetime.strptime(string_inicio, '%Y-%m-%d %H:%M') string_fin = fecha_fin + ' ' + hora_fin final_date_time = datetime.strptime(string_fin, '%Y-%m-%d %H:%M') self.reservation4 = Loan(article=self.my_article, starting_date_time=start_date_time, ending_date_time=final_date_time, user=self.user) #self.reservation1_id = self.reservation1.id self.reservation4.save() fecha_inicio = '2018-08-10' hora_inicio = '15:08' fecha_fin = '2018-09-10' hora_fin = '16:30' string_inicio = fecha_inicio + ' ' + hora_inicio start_date_time = datetime.strptime(string_inicio, '%Y-%m-%d %H:%M') string_fin = fecha_fin + ' ' + hora_fin final_date_time = datetime.strptime(string_fin, '%Y-%m-%d %H:%M') self.reservation5 = Loan(article=self.my_article, starting_date_time=start_date_time, ending_date_time=final_date_time, user=self.user) #self.reservation1_id = self.reservation1.id self.reservation5.save() fecha_inicio = '2018-08-10' hora_inicio = '15:10' fecha_fin = '2018-09-10' hora_fin = '16:30' string_inicio = fecha_inicio + ' ' + hora_inicio start_date_time = datetime.strptime(string_inicio, '%Y-%m-%d %H:%M') string_fin = fecha_fin + ' ' + hora_fin final_date_time = datetime.strptime(string_fin, '%Y-%m-%d %H:%M') self.reservation6 = Loan(article=self.my_article, starting_date_time=start_date_time, ending_date_time=final_date_time, user=self.user) #self.reservation1_id = self.reservation1.id self.reservation6.save() fecha_inicio = '2018-08-10' hora_inicio = '15:12' fecha_fin = '2018-09-10' hora_fin = '16:30' string_inicio = fecha_inicio + ' ' + hora_inicio start_date_time = datetime.strptime(string_inicio, '%Y-%m-%d %H:%M') string_fin = fecha_fin + ' ' + hora_fin final_date_time = datetime.strptime(string_fin, '%Y-%m-%d %H:%M') self.reservation7 = Loan(article=self.my_article, starting_date_time=start_date_time, ending_date_time=final_date_time, user=self.user) #self.reservation1_id = self.reservation1.id self.reservation7.save() fecha_inicio = '2018-08-10' hora_inicio = '15:14' fecha_fin = '2018-09-10' hora_fin = '16:30' string_inicio = fecha_inicio + ' ' + hora_inicio start_date_time = datetime.strptime(string_inicio, '%Y-%m-%d %H:%M') string_fin = fecha_fin + ' ' + hora_fin final_date_time = datetime.strptime(string_fin, '%Y-%m-%d %H:%M') self.reservation8 = Loan(article=self.my_article, starting_date_time=start_date_time, ending_date_time=final_date_time, user=self.user) #self.reservation1_id = self.reservation1.id self.reservation8.save() fecha_inicio = '2018-08-10' hora_inicio = '15:16' fecha_fin = '2018-09-10' hora_fin = '16:30' string_inicio = fecha_inicio + ' ' + hora_inicio start_date_time = datetime.strptime(string_inicio, '%Y-%m-%d %H:%M') string_fin = fecha_fin + ' ' + hora_fin final_date_time = datetime.strptime(string_fin, '%Y-%m-%d %H:%M') self.reservation9 = Loan(article=self.my_article, starting_date_time=start_date_time, ending_date_time=final_date_time, user=self.user) #self.reservation1_id = self.reservation1.id self.reservation9.save() fecha_inicio = '2018-08-10' hora_inicio = '15:18' fecha_fin = '2018-09-10' hora_fin = '16:30' string_inicio = fecha_inicio + ' ' + hora_inicio start_date_time = datetime.strptime(string_inicio, '%Y-%m-%d %H:%M') string_fin = fecha_fin + ' ' + hora_fin final_date_time = datetime.strptime(string_fin, '%Y-%m-%d %H:%M') self.reservation10 = Loan(article=self.my_article, starting_date_time=start_date_time, ending_date_time=final_date_time, user=self.user) #self.reservation1_id = self.reservation1.id self.reservation10.save() fecha_inicio = '2018-08-10' hora_inicio = '15:20' fecha_fin = '2018-09-10' hora_fin = '16:30' string_inicio = fecha_inicio + ' ' + hora_inicio start_date_time = datetime.strptime(string_inicio, '%Y-%m-%d %H:%M') string_fin = fecha_fin + ' ' + hora_fin final_date_time = datetime.strptime(string_fin, '%Y-%m-%d %H:%M') self.reservation11 = Loan(article=self.my_article, starting_date_time=start_date_time, ending_date_time=final_date_time, user=self.user) #self.reservation1_id = self.reservation1.id self.reservation11.save() #import pdb #pdb.set_trace() self.reservation1 = Loan(article=self.my_article, starting_date_time=start_date_time, ending_date_time=final_date_time, user=self.user) #self.reservation1_id = self.reservation1.id self.reservation1.save()
class UsersTest(TestCase): def setUp(self): # Set Up temp_file = tempfile.NamedTemporaryFile() test_image = get_temporary_image(temp_file) self.my_article = create_article(image=test_image.name) self.my_article_id = self.my_article.id self.user = User.objects.create(email='*****@*****.**') self.user.set_password('12345') self.user.save() fecha_inicio = '2018-08-10' hora_inicio = '15:01' fecha_fin = '2018-09-10' hora_fin = '16:30' string_inicio = fecha_inicio + ' ' + hora_inicio start_date_time = datetime.strptime(string_inicio, '%Y-%m-%d %H:%M') string_fin = fecha_fin + ' ' + hora_fin final_date_time = datetime.strptime(string_fin, '%Y-%m-%d %H:%M') self.reservation1 = Loan(article=self.my_article, starting_date_time=start_date_time, ending_date_time=final_date_time, user=self.user) #self.reservation1_id = self.reservation1.id self.reservation1.save() fecha_inicio = '2018-08-10' hora_inicio = '15:02' fecha_fin = '2018-09-10' hora_fin = '16:30' string_inicio = fecha_inicio + ' ' + hora_inicio start_date_time = datetime.strptime(string_inicio, '%Y-%m-%d %H:%M') string_fin = fecha_fin + ' ' + hora_fin final_date_time = datetime.strptime(string_fin, '%Y-%m-%d %H:%M') self.reservation2 = Loan(article=self.my_article, starting_date_time=start_date_time, ending_date_time=final_date_time, user=self.user) #self.reservation1_id = self.reservation1.id self.reservation2.save() fecha_inicio = '2018-08-10' hora_inicio = '15:04' fecha_fin = '2018-09-10' hora_fin = '16:30' string_inicio = fecha_inicio + ' ' + hora_inicio start_date_time = datetime.strptime(string_inicio, '%Y-%m-%d %H:%M') string_fin = fecha_fin + ' ' + hora_fin final_date_time = datetime.strptime(string_fin, '%Y-%m-%d %H:%M') self.reservation3 = Loan(article=self.my_article, starting_date_time=start_date_time, ending_date_time=final_date_time, user=self.user) #self.reservation1_id = self.reservation1.id self.reservation3.save() fecha_inicio = '2018-08-10' hora_inicio = '15:06' fecha_fin = '2018-09-10' hora_fin = '16:30' string_inicio = fecha_inicio + ' ' + hora_inicio start_date_time = datetime.strptime(string_inicio, '%Y-%m-%d %H:%M') string_fin = fecha_fin + ' ' + hora_fin final_date_time = datetime.strptime(string_fin, '%Y-%m-%d %H:%M') self.reservation4 = Loan(article=self.my_article, starting_date_time=start_date_time, ending_date_time=final_date_time, user=self.user) #self.reservation1_id = self.reservation1.id self.reservation4.save() fecha_inicio = '2018-08-10' hora_inicio = '15:08' fecha_fin = '2018-09-10' hora_fin = '16:30' string_inicio = fecha_inicio + ' ' + hora_inicio start_date_time = datetime.strptime(string_inicio, '%Y-%m-%d %H:%M') string_fin = fecha_fin + ' ' + hora_fin final_date_time = datetime.strptime(string_fin, '%Y-%m-%d %H:%M') self.reservation5 = Loan(article=self.my_article, starting_date_time=start_date_time, ending_date_time=final_date_time, user=self.user) #self.reservation1_id = self.reservation1.id self.reservation5.save() fecha_inicio = '2018-08-10' hora_inicio = '15:10' fecha_fin = '2018-09-10' hora_fin = '16:30' string_inicio = fecha_inicio + ' ' + hora_inicio start_date_time = datetime.strptime(string_inicio, '%Y-%m-%d %H:%M') string_fin = fecha_fin + ' ' + hora_fin final_date_time = datetime.strptime(string_fin, '%Y-%m-%d %H:%M') self.reservation6 = Loan(article=self.my_article, starting_date_time=start_date_time, ending_date_time=final_date_time, user=self.user) #self.reservation1_id = self.reservation1.id self.reservation6.save() fecha_inicio = '2018-08-10' hora_inicio = '15:12' fecha_fin = '2018-09-10' hora_fin = '16:30' string_inicio = fecha_inicio + ' ' + hora_inicio start_date_time = datetime.strptime(string_inicio, '%Y-%m-%d %H:%M') string_fin = fecha_fin + ' ' + hora_fin final_date_time = datetime.strptime(string_fin, '%Y-%m-%d %H:%M') self.reservation7 = Loan(article=self.my_article, starting_date_time=start_date_time, ending_date_time=final_date_time, user=self.user) #self.reservation1_id = self.reservation1.id self.reservation7.save() fecha_inicio = '2018-08-10' hora_inicio = '15:14' fecha_fin = '2018-09-10' hora_fin = '16:30' string_inicio = fecha_inicio + ' ' + hora_inicio start_date_time = datetime.strptime(string_inicio, '%Y-%m-%d %H:%M') string_fin = fecha_fin + ' ' + hora_fin final_date_time = datetime.strptime(string_fin, '%Y-%m-%d %H:%M') self.reservation8 = Loan(article=self.my_article, starting_date_time=start_date_time, ending_date_time=final_date_time, user=self.user) #self.reservation1_id = self.reservation1.id self.reservation8.save() fecha_inicio = '2018-08-10' hora_inicio = '15:16' fecha_fin = '2018-09-10' hora_fin = '16:30' string_inicio = fecha_inicio + ' ' + hora_inicio start_date_time = datetime.strptime(string_inicio, '%Y-%m-%d %H:%M') string_fin = fecha_fin + ' ' + hora_fin final_date_time = datetime.strptime(string_fin, '%Y-%m-%d %H:%M') self.reservation9 = Loan(article=self.my_article, starting_date_time=start_date_time, ending_date_time=final_date_time, user=self.user) #self.reservation1_id = self.reservation1.id self.reservation9.save() fecha_inicio = '2018-08-10' hora_inicio = '15:18' fecha_fin = '2018-09-10' hora_fin = '16:30' string_inicio = fecha_inicio + ' ' + hora_inicio start_date_time = datetime.strptime(string_inicio, '%Y-%m-%d %H:%M') string_fin = fecha_fin + ' ' + hora_fin final_date_time = datetime.strptime(string_fin, '%Y-%m-%d %H:%M') self.reservation10 = Loan(article=self.my_article, starting_date_time=start_date_time, ending_date_time=final_date_time, user=self.user) #self.reservation1_id = self.reservation1.id self.reservation10.save() fecha_inicio = '2018-08-10' hora_inicio = '15:20' fecha_fin = '2018-09-10' hora_fin = '16:30' string_inicio = fecha_inicio + ' ' + hora_inicio start_date_time = datetime.strptime(string_inicio, '%Y-%m-%d %H:%M') string_fin = fecha_fin + ' ' + hora_fin final_date_time = datetime.strptime(string_fin, '%Y-%m-%d %H:%M') self.reservation11 = Loan(article=self.my_article, starting_date_time=start_date_time, ending_date_time=final_date_time, user=self.user) #self.reservation1_id = self.reservation1.id self.reservation11.save() #import pdb #pdb.set_trace() self.reservation1 = Loan(article=self.my_article, starting_date_time=start_date_time, ending_date_time=final_date_time, user=self.user) #self.reservation1_id = self.reservation1.id self.reservation1.save() @override_settings(MEDIA_ROOT=tempfile.gettempdir()) def test_model(self): self.assertIsNotNone(self.my_article.image) self.assertTrue(isinstance(self.my_article, Article)) def test_have_object(self): self.client.login(email='*****@*****.**', password='******') url = reverse('user_data', args=[self.user.id]) response = self.client.get(url) self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, 'usersApp/user_profile.html') self.assertEqual(len(response.context['articulos1']), 10) # no se han hecho prestamos the_article = response.context['articulos1'][0].article self.assertEqual(the_article.name, 'guitarra') self.assertEqual(the_article.description, 'una guitarra') self.assertIsNotNone(the_article.image) self.assertEqual(the_article.image, self.my_article.image) self.assertEqual(the_article.state, 'D') def test_have_order(self): self.client.login(email='*****@*****.**', password='******') url = reverse('user_data', args=[self.user.id]) response = self.client.get(url) self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, 'usersApp/user_profile.html') self.assertEqual(len(response.context['articulos1']), 10) # no se han hecho prestamos the_article_time1 = response.context['articulos1'][ 0].starting_date_time the_article_time2 = response.context['articulos1'][ 1].starting_date_time the_article_time3 = response.context['articulos1'][ 2].starting_date_time self.assertTrue(the_article_time2 > the_article_time3) def test_eliminate(self): self.client.login(email='*****@*****.**', password='******') url = reverse('delete_loans') data = {'loan': self.reservation1.id} response = self.client.post(url, data=data) url = reverse('delete_loans') data = {'loan': self.reservation2.id} response = self.client.post(url, data=data) url = reverse('delete_loans') data = {'loan': self.reservation3.id} response = self.client.post(url, data=data) url = reverse('user_data', args=[self.user.id]) response = self.client.get(url) self.assertEqual(len(response.context['articulos1']), 9) def test_space_data(self): self.client.login(email='*****@*****.**', password='******') url = reverse('space_data', args=[self.my_space_id]) response = self.client.get(url) self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, 'space_data.html')