示例#1
0
 def test_bid_validor_is_not_valid(self):
     self.assertFalse(BidValidator({}).is_valid())
     self.assertFalse(BidValidator({'description': ""}).is_valid())
     self.assertFalse(
         BidValidator({
             'title': "Toto",
             'description': "Titi",
             "toto": "tata"
         }).is_valid())
示例#2
0
def create_bid(request):
    json_bid = json.loads(request.body.decode('utf-8'))
    bid_validator = BidValidator(json_bid)
    if not bid_validator.is_valid():
        logger.debug('bid is not valid : %s' % bid_validator.error_message)
        return HttpBadRequest(bid_validator.error_code, bid_validator.error_message)

    bid = bid_validator.get_bid_object(request.user)
    new_bid = models.Bid(**bid)
    new_bid.save()
    new_bid_id = new_bid.id
    return HttpCreated(json.dumps({'bid_id': new_bid_id}), location='/api/bids/%d/' % new_bid_id)
示例#3
0
def update_bid(request, bid_id):
    bids = models.Bid.objects.filter(id=bid_id)
    new_bid = json.loads(request.body.decode('utf-8'))
    if bids and new_bid:
        bid_creator = bids[0].creator
        bid_validator = BidValidator(new_bid)
        if request.user == bid_creator or request.user.is_staff:
            if bid_validator.is_valid():
                updated_bid = bid_validator.get_bid_object(bid_creator)
                bids.update(**updated_bid)
                return HttpResponse(json.dumps({'bid_id': bids[0].id}), content_type='application/json')
        return HttpBadRequest(10666, bid_validator.error_message)
    return HttpBadRequest(10666, error_codes['10666'])
示例#4
0
 def test_get_bid_object_sent_with_keys_none_value(self):
     bid_validated = BidValidator({
         'title': "Chaise",
         'description': "Un siège, un dossier, 4 pieds",
         'type': 'Offer',
         'category': None,
         'localization': None,
         'association': None,
         "begin": constants.TODAY_ISO,
         "end": constants.TOMORROW_ISO,
         "quantity": "",
         "real_author": "titi"}
     )
     self.assertTrue(bid_validated.get_bid_object(self.creator))
示例#5
0
 def test_get_bid_object_sent_with_keys_none_value(self):
     bid_validated = BidValidator({
         'title': "Chaise",
         'description': "Un siège, un dossier, 4 pieds",
         'type': 'Offer',
         'category': None,
         'localization': None,
         'association': None,
         "begin": constants.TODAY_ISO,
         "end": constants.TOMORROW_ISO,
         "quantity": "",
         "real_author": "titi"
     })
     self.assertTrue(bid_validated.get_bid_object(self.creator))
示例#6
0
 def test_bid_validator_with_bad_date(self):
     bid_with_bad_date = {
         "title": "Ma première annonce wouhouhou test 1234",
         "description": 'Ceci est une description',
         "type": "DEMAND",
         "begin": constants.TODAY_ISO,
         "end": constants.YESTERDAY_ISO
     }
     self.assertFalse(BidValidator(bid_with_bad_date).is_valid())
示例#7
0
 def test_bid_is_valid(self):
     self.assertTrue(
         BidValidator({
             'title': "Chaise",
             'description': "Un siège, un dossier, 4 pieds",
             'type': 'Offer',
             'category': 'ALIMENTAIRE',
             "begin": constants.TODAY_ISO,
             "end": constants.TOMORROW_ISO,
             "quantity": "",
             "real_author": "titi"
         }).is_valid())