add Tags, Properties and Categories
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
91cd5c57b3
commit
7e1b92a162
10 changed files with 414 additions and 1 deletions
54
backend/toolshed/tests/test_api.py
Normal file
54
backend/toolshed/tests/test_api.py
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
from django.test import TestCase, Client
|
||||
from authentication.tests import UserTestCase, SignatureAuthClient
|
||||
from toolshed.models import Category, Tag, Property
|
||||
|
||||
anonymous_client = Client()
|
||||
client = SignatureAuthClient()
|
||||
|
||||
|
||||
class CombinedApiTestCase(UserTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.cat1 = Category.objects.create(name='cat1')
|
||||
self.cat2 = Category.objects.create(name='cat2')
|
||||
self.cat3 = Category.objects.create(name='cat3')
|
||||
self.tag1 = Tag.objects.create(name='tag1')
|
||||
self.tag2 = Tag.objects.create(name='tag2')
|
||||
self.tag3 = Tag.objects.create(name='tag3')
|
||||
self.prop1 = Property.objects.create(name='prop1')
|
||||
self.prop2 = Property.objects.create(name='prop2')
|
||||
self.prop3 = Property.objects.create(name='prop3')
|
||||
|
||||
|
||||
def test_domains_anonymous(self):
|
||||
response = anonymous_client.get('/api/domains/')
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.json(), ['example.com'])
|
||||
|
||||
def test_domains_authenticated(self):
|
||||
response = client.get('/api/domains/', self.local_user1)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.json(), ['example.com'])
|
||||
|
||||
def test_combined_api_anonymous(self):
|
||||
response = anonymous_client.get('/api/info/')
|
||||
self.assertEqual(response.status_code, 403)
|
||||
|
||||
def test_combined_api(self):
|
||||
response = client.get('/api/info/', self.local_user1)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.json()['policies'], ['private', 'friends', 'internal', 'public'])
|
||||
self.assertEqual(response.json()['categories'], ['cat1', 'cat2', 'cat3'])
|
||||
self.assertEqual(response.json()['tags'], ['tag1', 'tag2', 'tag3'])
|
||||
self.assertEqual(response.json()['properties'], ['prop1', 'prop2', 'prop3'])
|
||||
|
||||
def test_policy_api_anonymous(self):
|
||||
response = anonymous_client.get('/api/availability_policies/')
|
||||
self.assertEqual(response.status_code, 403)
|
||||
|
||||
def test_policy_api(self):
|
||||
response = client.get('/api/availability_policies/', self.local_user1)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.json(), ['private', 'friends', 'internal', 'public'])
|
||||
|
||||
53
backend/toolshed/tests/test_category.py
Normal file
53
backend/toolshed/tests/test_category.py
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
from authentication.tests import UserTestCase, SignatureAuthClient
|
||||
from toolshed.models import Category
|
||||
|
||||
client = SignatureAuthClient()
|
||||
|
||||
|
||||
class CategoryTestCase(UserTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.cat1 = Category.objects.create(name='cat1')
|
||||
self.cat1.save()
|
||||
self.cat2 = Category.objects.create(name='cat2')
|
||||
self.cat2.save()
|
||||
self.cat3 = Category.objects.create(name='cat3')
|
||||
self.cat3.save()
|
||||
|
||||
def test_get_categories(self):
|
||||
subcat1 = Category.objects.create(name='subcat1', parent=self.cat1)
|
||||
subcat1.save()
|
||||
subcat2 = Category.objects.create(name='subcat2', parent=self.cat1)
|
||||
subcat2.save()
|
||||
subcat3 = Category.objects.create(name='subcat3', parent=subcat1)
|
||||
subcat3.save()
|
||||
self.assertEqual(self.cat1.children.count(), 2)
|
||||
self.assertEqual(self.cat1.children.first(), subcat1)
|
||||
self.assertEqual(self.cat1.children.last(), subcat2)
|
||||
self.assertEqual(subcat1.parent, self.cat1)
|
||||
self.assertEqual(subcat2.parent, self.cat1)
|
||||
self.assertEqual(subcat3.parent, subcat1)
|
||||
self.assertEqual(str(subcat1), 'cat1/subcat1')
|
||||
self.assertEqual(str(subcat2), 'cat1/subcat2')
|
||||
self.assertEqual(str(subcat3), 'cat1/subcat1/subcat3')
|
||||
|
||||
|
||||
class CategoryApiTestCase(UserTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.cat1 = Category.objects.create(name='cat1')
|
||||
self.cat1.save()
|
||||
self.cat2 = Category.objects.create(name='cat2')
|
||||
self.cat2.save()
|
||||
self.cat3 = Category.objects.create(name='cat3')
|
||||
self.cat3.save()
|
||||
|
||||
def test_get_categories(self):
|
||||
reply = client.get('/api/categories/', self.local_user1)
|
||||
self.assertEqual(reply.status_code, 200)
|
||||
self.assertEqual(len(reply.json()), 3)
|
||||
self.assertEqual(reply.json()[0], 'cat1')
|
||||
self.assertEqual(reply.json()[1], 'cat2')
|
||||
self.assertEqual(reply.json()[2], 'cat3')
|
||||
55
backend/toolshed/tests/test_property.py
Normal file
55
backend/toolshed/tests/test_property.py
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
from authentication.tests import UserTestCase, SignatureAuthClient
|
||||
from toolshed.models import Property, Category
|
||||
|
||||
client = SignatureAuthClient()
|
||||
|
||||
|
||||
class PropertyTestCase(UserTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.cat1 = Category.objects.create(name='cat1')
|
||||
self.cat1.save()
|
||||
self.prop1 = Property.objects.create(name='prop1')
|
||||
self.prop1.save()
|
||||
self.prop2 = Property.objects.create(name='prop2', description='prop2 description', category=self.cat1)
|
||||
self.prop2.save()
|
||||
self.prop3 = Property.objects.create(name='prop3', description='prop3 description', category=self.cat1)
|
||||
self.prop3.save()
|
||||
|
||||
def test_properties(self):
|
||||
self.assertEqual(len(Property.objects.all()), 3)
|
||||
self.assertEqual(self.prop1.name, 'prop1')
|
||||
self.assertEqual(self.prop1.description, None)
|
||||
self.assertEqual(self.prop1.category, None)
|
||||
self.assertEqual(self.prop2.name, 'prop2')
|
||||
self.assertEqual(self.prop2.description, 'prop2 description')
|
||||
self.assertEqual(self.prop2.category, self.cat1)
|
||||
self.assertEqual(self.prop3.name, 'prop3')
|
||||
self.assertEqual(self.prop3.description, 'prop3 description')
|
||||
self.assertEqual(self.prop3.category, self.cat1)
|
||||
self.assertEqual(str(self.prop1), 'prop1')
|
||||
self.assertEqual(str(self.prop2), 'prop2')
|
||||
self.assertEqual(str(self.prop3), 'prop3')
|
||||
self.assertEqual(self.cat1.properties.count(), 2)
|
||||
self.assertEqual(self.cat1.properties.first(), self.prop2)
|
||||
self.assertEqual(self.cat1.properties.last(), self.prop3)
|
||||
|
||||
|
||||
class PropertyApiTestCase(UserTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.cat1 = Category.objects.create(name='cat1')
|
||||
self.cat1.save()
|
||||
self.cat2 = Category.objects.create(name='cat2')
|
||||
self.cat2.save()
|
||||
self.cat3 = Category.objects.create(name='cat3')
|
||||
self.cat3.save()
|
||||
|
||||
def test_get_properties(self):
|
||||
reply = client.get('/api/properties/', self.local_user1)
|
||||
self.assertEqual(reply.status_code, 200)
|
||||
self.assertEqual(len(reply.json()), 0)
|
||||
prop1 = Property.objects.create(name='prop1')
|
||||
prop1.save()
|
||||
58
backend/toolshed/tests/test_tag.py
Normal file
58
backend/toolshed/tests/test_tag.py
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
from authentication.tests import UserTestCase, SignatureAuthClient
|
||||
from toolshed.models import Tag, Category
|
||||
|
||||
client = SignatureAuthClient()
|
||||
|
||||
|
||||
class TagTestCase(UserTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.cat1 = Category.objects.create(name='cat1')
|
||||
self.cat1.save()
|
||||
self.tag1 = Tag.objects.create(name='tag1', description='tag1 description', category=self.cat1)
|
||||
self.tag1.save()
|
||||
self.tag2 = Tag.objects.create(name='tag2', description='tag2 description', category=self.cat1)
|
||||
self.tag2.save()
|
||||
self.tag3 = Tag.objects.create(name='tag3')
|
||||
self.tag3.save()
|
||||
|
||||
def test_tags(self):
|
||||
self.assertEqual(len(Tag.objects.all()), 3)
|
||||
self.assertEqual(self.tag1.name, 'tag1')
|
||||
self.assertEqual(self.tag1.description, 'tag1 description')
|
||||
self.assertEqual(self.tag1.category, self.cat1)
|
||||
self.assertEqual(self.tag2.name, 'tag2')
|
||||
self.assertEqual(self.tag2.description, 'tag2 description')
|
||||
self.assertEqual(self.tag2.category, self.cat1)
|
||||
self.assertEqual(self.tag3.name, 'tag3')
|
||||
self.assertEqual(self.tag3.description, None)
|
||||
self.assertEqual(self.tag3.category, None)
|
||||
self.assertEqual(str(self.tag1), 'tag1')
|
||||
self.assertEqual(str(self.tag2), 'tag2')
|
||||
self.assertEqual(str(self.tag3), 'tag3')
|
||||
self.assertEqual(self.cat1.tags.count(), 2)
|
||||
self.assertEqual(self.cat1.tags.first(), self.tag1)
|
||||
self.assertEqual(self.cat1.tags.last(), self.tag2)
|
||||
|
||||
|
||||
class TagApiTestCase(UserTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.cat1 = Category.objects.create(name='cat1')
|
||||
self.cat1.save()
|
||||
self.tag1 = Tag.objects.create(name='tag1', description='tag1 description', category=self.cat1)
|
||||
self.tag1.save()
|
||||
self.tag2 = Tag.objects.create(name='tag2', description='tag2 description', category=self.cat1)
|
||||
self.tag2.save()
|
||||
self.tag3 = Tag.objects.create(name='tag3')
|
||||
self.tag3.save()
|
||||
|
||||
def test_get_tags(self):
|
||||
reply = client.get('/api/tags/', self.local_user1)
|
||||
self.assertEqual(reply.status_code, 200)
|
||||
self.assertEqual(len(reply.json()), 3)
|
||||
self.assertEqual(reply.json()[0], 'tag1')
|
||||
self.assertEqual(reply.json()[1], 'tag2')
|
||||
self.assertEqual(reply.json()[2], 'tag3')
|
||||
Loading…
Add table
Add a link
Reference in a new issue