Пример #1
0
    def clean_data(data):
        prepared_data = {
            "base_id": data["id"],
            "act_type": data["type"],
            "model_type": data["modelType"],
            "contract_type": data["contractType"],
            "description": data["contractDesignation"],
            "announcement_number": data["announcementNumber"],
            "dre_url": data["reference"],
            "publication_date": data["drPublicationDate"],
            "deadline_date": data["proposalDeadline"],
            "cpvs": data["cpvs"],
            "category": data["cpvs"],
            "price": data["basePrice"],
            "contractors": data["contractingEntities"],
        }

        prepared_data["publication_date"] = TenderForm.prepare_publication_date(prepared_data)
        form = TenderForm(prepared_data)

        if not form.is_valid():
            logger.error('Validation of tender "%d" failed' % data["id"])
            raise ValidationError(form.errors)

        return form.cleaned_data
Пример #2
0
    def clean_data(data):
        prepared_data = {'base_id': data['id'],
                         'act_type': data['type'],
                         'model_type': data['modelType'],
                         'contract_type': data['contractType'],
                         'description': data['contractDesignation'],
                         'announcement_number': data['announcementNumber'],
                         'dre_url': data['reference'],
                         'publication_date': data['drPublicationDate'],
                         'deadline_date': data['proposalDeadline'],
                         'cpvs': data['cpvs'],
                         'category': data['cpvs'],
                         'price': data['basePrice'],
                         'contractors': data['contractingEntities']}

        prepared_data['publication_date'] = \
            TenderForm.prepare_publication_date(prepared_data)
        form = TenderForm(prepared_data)

        if not form.is_valid():
            logger.error('Validation of tender "%d" failed' %
                         data['id'])
            raise ValidationError(form.errors)

        return form.cleaned_data
    def test_date_from_url(self):
        date = datetime.date(year=2010, month=8, day=12)

        # by default use publication date
        data = {
            'publication_date':
            date,
            'dre_url':
            'http://dre.pt/util/getpdf.asp?s=udrcp&serie=2&'
            'data=2009-08-12&iddr=155&iddip=402188583'
        }
        self.assertEqual(TenderForm.prepare_publication_date(data), date)

        # no pub_date -> fall back to url date
        data = {
            'publication_date':
            None,
            'dre_url':
            'http://dre.pt/util/getpdf.asp?s=udrcp&serie=2&'
            'data=2009-08-12'
            '&iddr=155&iddip=402188583'
        }

        self.assertEqual(TenderForm.prepare_publication_date(data),
                         datetime.date(year=2009, month=8, day=12))

        # no dates -> None
        data = {
            'publication_date':
            None,
            'dre_url':
            'http://dre.pt/util/getpdf.asp?s=udrcp&serie=2&'
            'iddr=155&iddip=402188583'
        }
        self.assertEqual(TenderForm.prepare_publication_date(data), None)
    def test_date_from_url(self):
        date = datetime.date(year=2010, month=8, day=12)

        # by default use publication date
        data = {'publication_date': date,
                'dre_url': 'http://dre.pt/util/getpdf.asp?s=udrcp&serie=2&'
                           'data=2009-08-12&iddr=155&iddip=402188583'}
        self.assertEqual(TenderForm.prepare_publication_date(data), date)

        # no pub_date -> fall back to url date
        data = {'publication_date': None,
                'dre_url': 'http://dre.pt/util/getpdf.asp?s=udrcp&serie=2&'
                           'data=2009-08-12'
                           '&iddr=155&iddip=402188583'}

        self.assertEqual(TenderForm.prepare_publication_date(data),
                         datetime.date(year=2009, month=8, day=12))

        # no dates -> None
        data = {'publication_date': None,
                'dre_url': 'http://dre.pt/util/getpdf.asp?s=udrcp&serie=2&'
                           'iddr=155&iddip=402188583'}
        self.assertEqual(TenderForm.prepare_publication_date(data), None)
    def test_deadline(self):
        form = TenderForm()

        date = datetime.date(year=2010, month=8, day=12)
        timedelta = datetime.timedelta(days=10)
        form.cleaned_data = {
            'publication_date': date,
            'deadline_date': timedelta
        }

        self.assertEqual(date + timedelta, form.clean_deadline_date())

        # should not raise ValidationError because other clean will do it.
        form.cleaned_data = {'deadline_date': timedelta}
        form.clean_deadline_date()
    def test_deadline(self):
        form = TenderForm()

        date = datetime.date(year=2010, month=8, day=12)
        timedelta = datetime.timedelta(days=10)
        form.cleaned_data = {
            'publication_date': date,
            'deadline_date': timedelta}

        self.assertEqual(date + timedelta, form.clean_deadline_date())

        # should not raise ValidationError because other clean will do it.
        form.cleaned_data = {'deadline_date': timedelta}
        form.clean_deadline_date()