use regular WTForms DateField for requests dates
This commit is contained in:
@@ -1,20 +0,0 @@
|
||||
import pytest
|
||||
import pendulum
|
||||
|
||||
from atst.domain.date import parse_date
|
||||
|
||||
|
||||
def test_date_with_slashes():
|
||||
date_str = "1/2/2020"
|
||||
assert parse_date(date_str) == pendulum.date(2020, 1, 2)
|
||||
|
||||
|
||||
def test_date_with_dashes():
|
||||
date_str = "2020-1-2"
|
||||
assert parse_date(date_str) == pendulum.date(2020, 1, 2)
|
||||
|
||||
|
||||
def test_invalid_date():
|
||||
date_str = "This is not a valid data"
|
||||
with pytest.raises(ValueError):
|
||||
parse_date(date_str)
|
@@ -3,33 +3,13 @@ from wtforms import Form
|
||||
import pendulum
|
||||
from werkzeug.datastructures import ImmutableMultiDict
|
||||
|
||||
from atst.forms.fields import DateField, NewlineListField
|
||||
|
||||
|
||||
class DateForm(Form):
|
||||
date = DateField()
|
||||
from atst.forms.fields import NewlineListField
|
||||
|
||||
|
||||
class NewlineListForm(Form):
|
||||
newline_list = NewlineListField()
|
||||
|
||||
|
||||
def test_date_ie_format():
|
||||
form = DateForm(data={"date": "12/24/2018"})
|
||||
assert form.date._value() == pendulum.date(2018, 12, 24)
|
||||
|
||||
|
||||
def test_date_sane_format():
|
||||
form = DateForm(data={"date": "2018-12-24"})
|
||||
assert form.date._value() == pendulum.date(2018, 12, 24)
|
||||
|
||||
|
||||
def test_date_insane_format():
|
||||
form = DateForm(data={"date": "hello"})
|
||||
with pytest.raises(ValueError):
|
||||
form.date._value()
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"input_,expected",
|
||||
[
|
||||
|
@@ -12,6 +12,20 @@ def screens(app):
|
||||
return JEDIRequestFlow(3).screens
|
||||
|
||||
|
||||
def serialize_dates(data):
|
||||
if not data:
|
||||
return data
|
||||
|
||||
dates = {
|
||||
k: v.strftime("%m/%d/%Y") for k, v in data.items() if hasattr(v, "strftime")
|
||||
}
|
||||
|
||||
new_data = data.copy()
|
||||
new_data.update(dates)
|
||||
|
||||
return new_data
|
||||
|
||||
|
||||
def test_stepthrough_request_form(user_session, screens, client):
|
||||
user = UserFactory.create()
|
||||
user_session(user)
|
||||
@@ -46,7 +60,8 @@ def test_stepthrough_request_form(user_session, screens, client):
|
||||
for i in range(1, len(screens)):
|
||||
# get appropriate form data to POST for this section
|
||||
section = screens[i - 1]["section"]
|
||||
post_data = urlencode(mock_body[section])
|
||||
massaged = serialize_dates(mock_body[section])
|
||||
post_data = urlencode(massaged)
|
||||
|
||||
effective_url, resp = take_a_step(i, req=req_id, data=post_data)
|
||||
req_id = effective_url.split("/")[-1]
|
||||
|
Reference in New Issue
Block a user