Projet

Général

Profil

0001-misc-format-date-in-a-parseable-format-by-default-34.patch

Frédéric Péters, 09 juillet 2019 19:10

Télécharger (7,35 ko)

Voir les différences:

Subject: [PATCH] misc: format date in a parseable format by default (#34703)

 tests/test_templates.py    | 57 +++++++++++++++++++++++---------------
 wcs/formats/__init__.py    |  0
 wcs/formats/en/__init__.py |  0
 wcs/formats/en/formats.py  |  2 ++
 wcs/formats/fr/__init__.py |  0
 wcs/formats/fr/formats.py  |  2 ++
 wcs/settings.py            |  3 ++
 7 files changed, 42 insertions(+), 22 deletions(-)
 create mode 100644 wcs/formats/__init__.py
 create mode 100644 wcs/formats/en/__init__.py
 create mode 100644 wcs/formats/en/formats.py
 create mode 100644 wcs/formats/fr/__init__.py
 create mode 100644 wcs/formats/fr/formats.py
tests/test_templates.py
4 4
import pytest
5 5
import string
6 6

  
7
from django.test import override_settings
7 8
from quixote import cleanup
8 9
from qommon.template import Template, TemplateError
9 10
from wcs.conditions import Condition
......
145 146

  
146 147
def test_datetime_templatetags():
147 148
    tmpl = Template('{{ plop|datetime }}')
148
    assert tmpl.render({'plop': '2017-12-21 10:32'}) == 'Dec. 21, 2017, 10:32 a.m.'
149
    assert tmpl.render({'plop': '21/12/2017 10h32'}) == 'Dec. 21, 2017, 10:32 a.m.'
150
    assert tmpl.render({'plop': '2017-12-21'}) == 'Dec. 21, 2017, midnight'
151
    assert tmpl.render({'plop': '21/12/2017'}) == 'Dec. 21, 2017, midnight'
149
    assert tmpl.render({'plop': '2017-12-21 10:32'}) == '2017-12-21 10:32'
150
    assert tmpl.render({'plop': '21/12/2017 10h32'}) == '2017-12-21 10:32'
151
    assert tmpl.render({'plop': '2017-12-21'}) == '2017-12-21 00:00'
152
    assert tmpl.render({'plop': '21/12/2017'}) == '2017-12-21 00:00'
153
    with override_settings(LANGUAGE_CODE='fr-fr'):
154
        assert tmpl.render({'plop': '2017-12-21 10:32'}) == '21/12/2017 10:32'
155
        assert tmpl.render({'plop': '21/12/2017 10h32'}) == '21/12/2017 10:32'
156
        assert tmpl.render({'plop': '2017-12-21'}) == '21/12/2017 00:00'
157
        assert tmpl.render({'plop': '21/12/2017'}) == '21/12/2017 00:00'
152 158
    assert tmpl.render({'plop': '10h32'}) == ''
153 159
    assert tmpl.render({'plop': 'x'}) == ''
154 160
    assert tmpl.render({'plop': None}) == ''
......
179 185
    assert tmpl.render({'d2': '2017-12-22'}) == 'd1<=d2'
180 186

  
181 187
    tmpl = Template('{{ plop|date }}')
182
    assert tmpl.render({'plop': '2017-12-21'}) == 'Dec. 21, 2017'
183
    assert tmpl.render({'plop': '21/12/2017'}) == 'Dec. 21, 2017'
184
    assert tmpl.render({'plop': '2017-12-21 10:32'}) == 'Dec. 21, 2017'
185
    assert tmpl.render({'plop': '21/12/2017 10:32'}) == 'Dec. 21, 2017'
186
    assert tmpl.render({'plop': '21/12/2017 10h32'}) == 'Dec. 21, 2017'
187
    assert tmpl.render({'plop': '21/12/2017 10:32:42'}) == 'Dec. 21, 2017'
188
    assert tmpl.render({'plop': '2017-12-21'}) == '2017-12-21'
189
    assert tmpl.render({'plop': '21/12/2017'}) == '2017-12-21'
190
    assert tmpl.render({'plop': '2017-12-21 10:32'}) == '2017-12-21'
191
    assert tmpl.render({'plop': '21/12/2017 10:32'}) == '2017-12-21'
192
    assert tmpl.render({'plop': '21/12/2017 10h32'}) == '2017-12-21'
193
    assert tmpl.render({'plop': '21/12/2017 10:32:42'}) == '2017-12-21'
194
    with override_settings(LANGUAGE_CODE='fr-fr'):
195
        assert tmpl.render({'plop': '2017-12-21'}) == '21/12/2017'
196
        assert tmpl.render({'plop': '21/12/2017'}) == '21/12/2017'
197
        assert tmpl.render({'plop': '2017-12-21 10:32'}) == '21/12/2017'
198
        assert tmpl.render({'plop': '21/12/2017 10:32'}) == '21/12/2017'
199
        assert tmpl.render({'plop': '21/12/2017 10h32'}) == '21/12/2017'
200
        assert tmpl.render({'plop': '21/12/2017 10:32:42'}) == '21/12/2017'
188 201
    assert tmpl.render({'plop': '10:32'}) == ''
189 202
    assert tmpl.render({'plop': 'x'}) == ''
190 203
    assert tmpl.render({'plop': None}) == ''
......
263 276

  
264 277
def test_date_maths():
265 278
    tmpl = Template('{{ plop|add_days:4 }}')
266
    assert tmpl.render({'plop': '2017-12-21'}) == 'Dec. 25, 2017'
267
    assert tmpl.render({'plop': '2017-12-21 18:00'}) == 'Dec. 25, 2017'
279
    assert tmpl.render({'plop': '2017-12-21'}) == '2017-12-25'
280
    assert tmpl.render({'plop': '2017-12-21 18:00'}) == '2017-12-25'
268 281
    tmpl = Template('{{ plop|add_days:"-1" }}')
269
    assert tmpl.render({'plop': '2017-12-21'}) == 'Dec. 20, 2017'
270
    assert tmpl.render({'plop': '2017-12-21 18:00'}) == 'Dec. 20, 2017'
282
    assert tmpl.render({'plop': '2017-12-21'}) == '2017-12-20'
283
    assert tmpl.render({'plop': '2017-12-21 18:00'}) == '2017-12-20'
271 284
    tmpl = Template('{{ plop|add_days:1.5 }}')
272
    assert tmpl.render({'plop': '2017-12-21'}) == 'Dec. 22, 2017'
273
    assert tmpl.render({'plop': '2017-12-21 18:00'}) == 'Dec. 22, 2017'
285
    assert tmpl.render({'plop': '2017-12-21'}) == '2017-12-22'
286
    assert tmpl.render({'plop': '2017-12-21 18:00'}) == '2017-12-22'
274 287
    tmpl = Template('{{ plop|add_days:"1.5" }}')
275
    assert tmpl.render({'plop': '2017-12-21'}) == 'Dec. 22, 2017'
276
    assert tmpl.render({'plop': '2017-12-21 18:00'}) == 'Dec. 22, 2017'
288
    assert tmpl.render({'plop': '2017-12-21'}) == '2017-12-22'
289
    assert tmpl.render({'plop': '2017-12-21 18:00'}) == '2017-12-22'
277 290

  
278 291
    tmpl = Template('{{ plop|add_hours:24 }}')
279
    assert tmpl.render({'plop': '2017-12-21'}) == 'Dec. 22, 2017, midnight'
280
    assert tmpl.render({'plop': '2017-12-21 18:00'}) == 'Dec. 22, 2017, 6 p.m.'
292
    assert tmpl.render({'plop': '2017-12-21'}) == '2017-12-22 00:00'
293
    assert tmpl.render({'plop': '2017-12-21 18:00'}) == '2017-12-22 18:00'
281 294
    tmpl = Template('{{ plop|add_hours:"12.5" }}')
282
    assert tmpl.render({'plop': '2017-12-21'}) == 'Dec. 21, 2017, 12:30 p.m.'
283
    assert tmpl.render({'plop': '2017-12-21 18:00'}) == 'Dec. 22, 2017, 6:30 a.m.'
295
    assert tmpl.render({'plop': '2017-12-21'}) == '2017-12-21 12:30'
296
    assert tmpl.render({'plop': '2017-12-21 18:00'}) == '2017-12-22 06:30'
284 297

  
285 298
def test_variable_unicode_error_handling():
286 299
    tmpl = Template('{{ form_var_éléphant }}')
wcs/formats/en/formats.py
1
DATETIME_FORMAT = 'Y-m-d H:i'
2
DATE_FORMAT = "Y-m-d"
wcs/formats/fr/formats.py
1
DATETIME_FORMAT = 'd/m/Y H:i'
2
DATE_FORMAT = "d/m/Y"
wcs/settings.py
126 126
# Python dotted path to the WSGI application used by Django's runserver.
127 127
WSGI_APPLICATION = 'wcs.wsgi.application'
128 128

  
129
# custom date formats
130
FORMAT_MODULE_PATH = 'wcs.formats'
131

  
129 132
INSTALLED_APPS = (
130 133
    #'django.contrib.auth',
131 134
    #'django.contrib.contenttypes',
132
-