Пример #1
0
    def __call__(self, data):
        field = self.parent.fields[self.field_name]

        value = field.get_attribute(data)

        if value is None:
            return data

        if callable(self.patient):
            patient = self.patient()
        elif isinstance(self.patient, Patient):
            patient = self.patient
        else:
            patient_field = self.parent.fields[self.patient]
            patient = patient_field.get_attribute(data)

        if patient is None:
            return data

        if is_datetime(value):
            value_date = datetime_to_date(value)
        else:
            value_date = value

        earliest_date_of_birth = patient.earliest_date_of_birth

        if earliest_date_of_birth is not None and value_date < earliest_date_of_birth:
            message = "Value is before the patient's date of birth ({}).".format(
                safe_strftime(earliest_date_of_birth, HUMAN_DATE_FORMAT)
            )

            raise ValidationError({self.field_name: message})

        return data
Пример #2
0
    def before_f(value):
        if is_date(value):
            value_dt = date_to_datetime(value)
        else:
            value_dt = value

        if value_dt > max_dt:
            raise ValidationError('Value is after %s.' % safe_strftime(max_dt, dt_format))

        return value
Пример #3
0
    def before_f(value):
        if is_date(value):
            value_dt = date_to_datetime(value)
        else:
            value_dt = value

        if value_dt > max_dt:
            raise ValidationError('Value is after %s.' %
                                  safe_strftime(max_dt, dt_format))

        return value
Пример #4
0
def test_f_lower():
    assert safe_strftime(datetime(1234, 1, 2, 3, 4, 5, 123, tzinfo=pytz.utc), '%f') == '000123'
Пример #5
0
def test_b_lower():
    assert safe_strftime(datetime(1234, 1, 2, 3, 4, 5, tzinfo=pytz.utc), '%b') == 'Jan'
    assert safe_strftime(datetime(1234, 2, 2, 3, 4, 5, tzinfo=pytz.utc), '%b') == 'Feb'
    assert safe_strftime(datetime(1234, 3, 2, 3, 4, 5, tzinfo=pytz.utc), '%b') == 'Mar'
    assert safe_strftime(datetime(1234, 4, 2, 3, 4, 5, tzinfo=pytz.utc), '%b') == 'Apr'
    assert safe_strftime(datetime(1234, 5, 2, 3, 4, 5, tzinfo=pytz.utc), '%b') == 'May'
    assert safe_strftime(datetime(1234, 6, 2, 3, 4, 5, tzinfo=pytz.utc), '%b') == 'Jun'
    assert safe_strftime(datetime(1234, 7, 2, 3, 4, 5, tzinfo=pytz.utc), '%b') == 'Jul'
    assert safe_strftime(datetime(1234, 8, 2, 3, 4, 5, tzinfo=pytz.utc), '%b') == 'Aug'
    assert safe_strftime(datetime(1234, 9, 2, 3, 4, 5, tzinfo=pytz.utc), '%b') == 'Sep'
    assert safe_strftime(datetime(1234, 10, 2, 3, 4, 5, tzinfo=pytz.utc), '%b') == 'Oct'
    assert safe_strftime(datetime(1234, 11, 2, 3, 4, 5, tzinfo=pytz.utc), '%b') == 'Nov'
    assert safe_strftime(datetime(1234, 12, 2, 3, 4, 5, tzinfo=pytz.utc), '%b') == 'Dec'
Пример #6
0
def test_p_lower():
    assert safe_strftime(datetime(1234, 1, 2, 0, 0, 0, tzinfo=pytz.utc), '%p') == 'AM'
    assert safe_strftime(datetime(1234, 1, 2, 11, 0, 0, tzinfo=pytz.utc), '%p') == 'AM'
    assert safe_strftime(datetime(1234, 1, 2, 12, 0, 0, tzinfo=pytz.utc), '%p') == 'PM'
    assert safe_strftime(datetime(1234, 1, 2, 13, 0, 0, tzinfo=pytz.utc), '%p') == 'PM'
    assert safe_strftime(datetime(1234, 1, 2, 23, 0, 0, tzinfo=pytz.utc), '%p') == 'PM'
Пример #7
0
def test_s_upper():
    assert safe_strftime(datetime(1234, 1, 2, 3, 4, 5, tzinfo=pytz.utc), '%S') == '05'
Пример #8
0
def test_i_upper_pm():
    assert safe_strftime(datetime(1234, 1, 2, 15, 4, 5, tzinfo=pytz.utc), '%I') == '03'
Пример #9
0
def test_iso_format():
    assert safe_strftime(datetime(1234, 1, 2, 3, 4, 5, tzinfo=pytz.utc), '%Y-%m-%dT%H:%M:%SZ') == '1234-01-02T03:04:05Z'
Пример #10
0
def test_d_lower():
    assert safe_strftime(datetime(1234, 1, 2, 3, 4, 5, tzinfo=pytz.utc), '%d') == '02'
Пример #11
0
def test_h_upper_am():
    assert safe_strftime(datetime(1234, 1, 2, 3, 4, 5, tzinfo=pytz.utc), '%H') == '03'
Пример #12
0
def test_b_upper():
    assert safe_strftime(datetime(1234, 1, 2, 3, 4, 5, tzinfo=pytz.utc), '%B') == 'January'
    assert safe_strftime(datetime(1234, 2, 2, 3, 4, 5, tzinfo=pytz.utc), '%B') == 'February'
    assert safe_strftime(datetime(1234, 3, 2, 3, 4, 5, tzinfo=pytz.utc), '%B') == 'March'
    assert safe_strftime(datetime(1234, 4, 2, 3, 4, 5, tzinfo=pytz.utc), '%B') == 'April'
    assert safe_strftime(datetime(1234, 5, 2, 3, 4, 5, tzinfo=pytz.utc), '%B') == 'May'
    assert safe_strftime(datetime(1234, 6, 2, 3, 4, 5, tzinfo=pytz.utc), '%B') == 'June'
    assert safe_strftime(datetime(1234, 7, 2, 3, 4, 5, tzinfo=pytz.utc), '%B') == 'July'
    assert safe_strftime(datetime(1234, 8, 2, 3, 4, 5, tzinfo=pytz.utc), '%B') == 'August'
    assert safe_strftime(datetime(1234, 9, 2, 3, 4, 5, tzinfo=pytz.utc), '%B') == 'September'
    assert safe_strftime(datetime(1234, 10, 2, 3, 4, 5, tzinfo=pytz.utc), '%B') == 'October'
    assert safe_strftime(datetime(1234, 11, 2, 3, 4, 5, tzinfo=pytz.utc), '%B') == 'November'
    assert safe_strftime(datetime(1234, 12, 2, 3, 4, 5, tzinfo=pytz.utc), '%B') == 'December'
Пример #13
0
def safe_strftime_template_filter(value, format):
    if value is None:
        return ''
    else:
        return safe_strftime(value, format)
Пример #14
0
def test_ddmmyyyy():
    assert safe_strftime(datetime(1234, 1, 2, 3, 4, 5, tzinfo=pytz.utc), '%d/%m/%Y') == '02/01/1234'
Пример #15
0
def test_yyyymmdd():
    assert safe_strftime(datetime(1234, 1, 2, 3, 4, 5, tzinfo=pytz.utc), '%Y-%m-%d') == '1234-01-02'
    assert safe_strftime(date(1234, 1, 2), '%Y-%m-%d') == '1234-01-02'
Пример #16
0
def test_blank():
    assert safe_strftime(datetime(1234, 1, 2, 3, 4, 5, tzinfo=pytz.utc), '') == ''
Пример #17
0
def test_invalid_directive():
    with pytest.raises(ValueError) as e:
        safe_strftime(datetime(1234, 1, 2, 3, 4, 5, tzinfo=pytz.utc), '%e')

    assert e.value.args[0] == 'Invalid format string'
Пример #18
0
def test_percent():
    assert safe_strftime(datetime(1234, 1, 2, 3, 4, 5, tzinfo=pytz.utc), '100%%') == '100%'