Skip to content

Commit

Permalink
tests for relate filter URLs
Browse files Browse the repository at this point in the history
  • Loading branch information
sheppard committed Jan 10, 2016
1 parent 8595058 commit e81766c
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 3 deletions.
1 change: 0 additions & 1 deletion patterns/identify/views.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from django.http import Http404
from wq.db.rest.views import ModelViewSet
from rest_framework.response import Response


class IdentifiedModelViewSet(ModelViewSet):
Expand Down
Empty file.
33 changes: 31 additions & 2 deletions tests/test_relate.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,23 @@
from wq.db.patterns.models import RelationshipType, Relationship


def create_reltype():
parent_ct = get_ct(RelatedModel)
child_ct = get_ct(AnotherRelatedModel)

RelationshipType.objects.get_or_create(
name="Parent Of",
inverse_name="Child Of",
from_type=parent_ct,
to_type=child_ct,
)


class RelateBaseTestCase(APITestCase):
def setUp(self):
self.parent_ct = get_ct(RelatedModel)
self.child_ct = get_ct(AnotherRelatedModel)

self.reltype = RelationshipType.objects.create(
self.reltype = RelationshipType.objects.get(
name="Parent Of",
inverse_name="Child Of",
from_type=self.parent_ct,
Expand Down Expand Up @@ -212,3 +223,21 @@ def test_relate_put(self):

invrel = response.data["inverserelationships"][0]
self.assertEqual(invrel['item_id'], parent2.pk)

def test_relate_filter_by_parent(self):
response = self.client.get(
'/relatedmodels/%s/anotherrelatedmodels.json' % self.parent.pk
)
self.assertIn("list", response.data)
self.assertEqual(len(response.data['list']), 1)
self.assertEqual(response.data['list'][0]['id'], self.child.pk)

def test_relate_target_to_children(self):
response = self.client.get(
'/anotherrelatedmodels-by-relatedmodels.json'
)
self.assertIn("list", response.data)
self.assertEqual(len(response.data['list']), 1)
self.assertEqual(response.data['list'][0]['id'], self.parent.pk)
self.assertIn("target", response.data)
self.assertEqual(response.data['target'], 'anotherrelatedmodels')
9 changes: 9 additions & 0 deletions tests/test_rest.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ def setUp(self):
parent = Parent.objects.create(name="Test", pk=1)
parent.child_set.create(name="Test 1")
parent.child_set.create(name="Test 2")
parent2 = Parent.objects.create(name="Test 2", pk=2)
parent2.child_set.create(name="Test 1")
itype = ItemType.objects.create(name="Test", pk=1)
itype.item_set.create(name="Test 1")
itype.item_set.create(name="Test 2")
Expand Down Expand Up @@ -104,6 +106,13 @@ def test_rest_filter_by_parent(self):
self.assertIn("list", response.data)
self.assertEqual(len(response.data['list']), 2)

def test_rest_target_to_children(self):
response = self.client.get('/childs-by-parents.json')
self.assertIn("list", response.data)
self.assertEqual(len(response.data['list']), 2)
self.assertIn("target", response.data)
self.assertEqual(response.data['target'], 'childs')

def test_rest_detail_user_serializer(self):
response = self.client.get('/usermanagedmodels/1.json')
self.assertIn('user', response.data)
Expand Down
3 changes: 3 additions & 0 deletions tests/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
from wq.db.contrib.chart.urls import make_urls
from tests.chart_app import views

from tests.test_relate import create_reltype
create_reltype()

chart_urls = make_urls({
'timeseries': views.TimeSeriesView,
'scatter': views.ScatterView,
Expand Down

0 comments on commit e81766c

Please sign in to comment.