Skip to content
Snippets Groups Projects
Commit 2f34207b authored by Martin Burchell's avatar Martin Burchell
Browse files

Fixed display of date fields on view/edit page

Previously were strings - django tables2 requires datetime objects
parent 62867ce9
No related branches found
No related tags found
No related merge requests found
......@@ -94,6 +94,7 @@ def test_get_categories_filters_out_removed():
@pytest.fixture
def request_item():
'''Create item and request'''
msg = {'body': "Message text"}
transport.items.create(msg)
......
from django.core.urlresolvers import reverse
from django.utils.dateparse import parse_datetime
from rest_framework.test import APIRequestFactory
from rest_framework import status
from rest_api.views import ItemViewSet
......@@ -6,7 +7,6 @@ from rest_api.views import ItemViewSet
from .exceptions import TransportException
url_name = 'item-list'
actions = {
'get': 'list',
......@@ -33,7 +33,22 @@ def list(**kwargs):
# FIXME: currently only body exact filtering is supported
view = get_view()
request = request_factory.get(url(), kwargs)
return view(request).data
items = view(request).data
date_fields = ('created', 'timestamp')
for item in items:
item_dict = dict(item)
for date_field in date_fields:
value = item_dict[date_field]
if value is not None:
item_dict[date_field] = parse_datetime(value)
item.update(item_dict)
return items
def create(item):
""" Create an Item from the given dict """
......
from __future__ import unicode_literals, absolute_import
from datetime import datetime
import pytest
from data_layer.tests.factories import ItemFactory
......@@ -31,3 +33,21 @@ def test_list_items_filters_by_body():
assert len(items) == 1
[item] = items
assert item['body'] == 'one'
@pytest.mark.django_db
def test_date_fields_are_converted_to_datetimes():
stored_item = ItemFactory()
retrieved_items = transport.items.list()
[retrieved_item] = retrieved_items
date_fields = ('timestamp', 'created')
for date_field in date_fields:
stored_date = getattr(stored_item, date_field).replace(
microsecond=0 # MySQL discards microseconds
)
assert stored_date == retrieved_item[date_field]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment