From a6c61a2b43be7247e2dc70ba2a40ad59b01cdb94 Mon Sep 17 00:00:00 2001
From: Mark Skipper <marks@aptivate.org>
Date: Wed, 1 Jul 2015 23:12:01 +0100
Subject: [PATCH] Add test for create api

---
 .../website/transport/data_layer_transport.py |  8 +++---
 .../transport/tests/item_create_tests.py      | 26 +++++++++++++------
 2 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/django/website/transport/data_layer_transport.py b/django/website/transport/data_layer_transport.py
index 9d3def0d..113ed645 100644
--- a/django/website/transport/data_layer_transport.py
+++ b/django/website/transport/data_layer_transport.py
@@ -1,6 +1,5 @@
 from rest_framework.test import APIRequestFactory
 
-from data_layer.handlers import Message
 from rest_api.views import ItemList
 
 
@@ -9,5 +8,8 @@ def get_messages(**kwargs):  # TODO rename get_items
     view = ItemList.as_view()
     return view(request).data
 
-def create_message(message):  # TODO rename create_item
-    Message.create(message)
+
+def create_message(item):  # TODO rename create_item
+    view = ItemList.as_view()
+    request = APIRequestFactory().post('/items', item)
+    return view(request)
diff --git a/django/website/transport/tests/item_create_tests.py b/django/website/transport/tests/item_create_tests.py
index 604356fe..aec0155c 100644
--- a/django/website/transport/tests/item_create_tests.py
+++ b/django/website/transport/tests/item_create_tests.py
@@ -1,12 +1,22 @@
+from __future__ import unicode_literals, absolute_import
 import pytest
 
+from transport import data_layer_transport as dl
+from django.utils import timezone
+from data_layer.models import Item
 
-@pytest.mark.xfail
+
+@pytest.mark.django_db
 def test_create_message_creates_item():
-    # now = timezone.now().replace(
-    #     microsecond=0  # MySQL discards microseconds
-    # )
-    # item = {'body': "Text", 'timestamp': now}
-    # dl.create_message(item)
-    # create.assert_called_with(message)
-    assert False
+    now = timezone.now().replace(
+        microsecond=0  # MySQL discards microseconds
+    )
+    item = {'body': "Text", 'timestamp': now}
+    old_count = Item.objects.count()
+
+    response = dl.create_message(item)
+
+    assert response.status_code == 201
+    assert 'id' in response.data
+    new_count = Item.objects.count()
+    assert new_count > old_count
-- 
GitLab