add StorageLocation model
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
0d394d531b
commit
93335b2776
8 changed files with 179 additions and 8 deletions
|
|
@ -1,4 +1,4 @@
|
|||
from toolshed.models import Category, Tag, Property, InventoryItem, ItemProperty
|
||||
from toolshed.models import Category, Tag, Property, InventoryItem, ItemProperty, StorageLocation
|
||||
|
||||
|
||||
class CategoryTestMixin:
|
||||
|
|
@ -13,8 +13,10 @@ class CategoryTestMixin:
|
|||
|
||||
class TagTestMixin:
|
||||
def prepare_tags(self):
|
||||
self.f['tag1'] = Tag.objects.create(name='tag1', description='tag1 description', category=self.f['cat1'], origin='test')
|
||||
self.f['tag2'] = Tag.objects.create(name='tag2', description='tag2 description', category=self.f['cat1'], origin='test')
|
||||
self.f['tag1'] = Tag.objects.create(name='tag1', description='tag1 description', category=self.f['cat1'],
|
||||
origin='test')
|
||||
self.f['tag2'] = Tag.objects.create(name='tag2', description='tag2 description', category=self.f['cat1'],
|
||||
origin='test')
|
||||
self.f['tag3'] = Tag.objects.create(name='tag3', origin='test')
|
||||
|
||||
|
||||
|
|
@ -41,3 +43,13 @@ class InventoryTestMixin(CategoryTestMixin, TagTestMixin, PropertyTestMixin):
|
|||
self.f['item2'].tags.add(self.f['tag2'], through_defaults={})
|
||||
ItemProperty.objects.create(inventory_item=self.f['item2'], property=self.f['prop1'], value='value1').save()
|
||||
ItemProperty.objects.create(inventory_item=self.f['item2'], property=self.f['prop2'], value='value2').save()
|
||||
|
||||
|
||||
class LocationTestMixin:
|
||||
def prepare_locations(self):
|
||||
self.f['loc1'] = StorageLocation.objects.create(name='loc1', owner=self.f['local_user1'])
|
||||
self.f['loc2'] = StorageLocation.objects.create(name='loc2', owner=self.f['local_user1'],
|
||||
category=self.f['cat1'])
|
||||
self.f['loc3'] = StorageLocation.objects.create(name='loc3', owner=self.f['local_user1'], parent=self.f['loc1'])
|
||||
self.f['loc4'] = StorageLocation.objects.create(name='loc4', owner=self.f['local_user1'], parent=self.f['loc1'],
|
||||
category=self.f['cat1'])
|
||||
|
|
|
|||
|
|
@ -210,6 +210,17 @@ class FriendRequestIncomingTestCase(UserTestMixin, ToolshedTestCase):
|
|||
})
|
||||
self.assertEqual(reply.status_code, 400)
|
||||
|
||||
def test_post_request_missing_key_none(self):
|
||||
befriender = self.f['ext_user1']
|
||||
befriendee = self.f['local_user1']
|
||||
reply = client.post('/api/friendrequests/', befriender, {
|
||||
'befriender': str(befriender),
|
||||
'befriendee': str(befriendee),
|
||||
'befriender_key': None,
|
||||
'secret': 'secret2'
|
||||
})
|
||||
self.assertEqual(reply.status_code, 400)
|
||||
|
||||
def test_post_request_breaking_key(self):
|
||||
befriender = self.f['ext_user1']
|
||||
befriendee = self.f['local_user1']
|
||||
|
|
|
|||
71
backend/toolshed/tests/test_locations.py
Normal file
71
backend/toolshed/tests/test_locations.py
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
from authentication.tests import SignatureAuthClient, UserTestMixin, ToolshedTestCase
|
||||
from files.tests import FilesTestMixin
|
||||
from toolshed.models import InventoryItem, Category
|
||||
from toolshed.tests import InventoryTestMixin, LocationTestMixin
|
||||
|
||||
client = SignatureAuthClient()
|
||||
|
||||
|
||||
class LocationApiTestCase(UserTestMixin, InventoryTestMixin, LocationTestMixin, ToolshedTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.prepare_users()
|
||||
self.prepare_categories()
|
||||
self.prepare_tags()
|
||||
self.prepare_properties()
|
||||
self.prepare_locations()
|
||||
self.prepare_inventory()
|
||||
|
||||
def test_locations(self):
|
||||
self.assertEqual("loc1", str(self.f['loc1']))
|
||||
self.assertEqual("loc1", self.f['loc1'].name)
|
||||
self.assertEqual("loc2", str(self.f['loc2']))
|
||||
self.assertEqual("loc2", self.f['loc2'].name)
|
||||
self.assertEqual("loc1/loc3", str(self.f['loc3']))
|
||||
self.assertEqual("loc3", self.f['loc3'].name)
|
||||
self.assertEqual(self.f['loc1'], self.f['loc3'].parent)
|
||||
self.assertEqual("loc1/loc4", str(self.f['loc4']))
|
||||
self.assertEqual("loc4", self.f['loc4'].name)
|
||||
self.assertEqual(self.f['loc1'], self.f['loc4'].parent)
|
||||
|
||||
def test_get_inventory(self):
|
||||
reply = client.get('/api/inventory_items/', self.f['local_user1'])
|
||||
self.assertEqual(reply.status_code, 200)
|
||||
self.assertEqual(len(reply.json()), 2)
|
||||
self.assertEqual(reply.json()[0]['name'], 'test1')
|
||||
self.assertEqual(reply.json()[0]['description'], 'test')
|
||||
self.assertEqual(reply.json()[0]['owned_quantity'], 1)
|
||||
self.assertEqual(reply.json()[0]['tags'], [])
|
||||
self.assertEqual(reply.json()[0]['properties'], [])
|
||||
self.assertEqual(reply.json()[0]['category'], 'cat1')
|
||||
self.assertEqual(reply.json()[0]['availability_policy'], 'friends')
|
||||
self.assertEqual(reply.json()[1]['name'], 'test2')
|
||||
self.assertEqual(reply.json()[1]['description'], 'test2')
|
||||
self.assertEqual(reply.json()[1]['owned_quantity'], 1)
|
||||
self.assertEqual(reply.json()[1]['tags'], ['tag1', 'tag2'])
|
||||
self.assertEqual(reply.json()[1]['properties'],
|
||||
[{'name': 'prop1', 'value': 'value1'}, {'name': 'prop2', 'value': 'value2'}])
|
||||
self.assertEqual(reply.json()[1]['category'], 'cat1')
|
||||
self.assertEqual(reply.json()[1]['availability_policy'], 'friends')
|
||||
|
||||
def test_get_inventory_item(self):
|
||||
reply = client.get('/api/storage_locations/', self.f['local_user1'])
|
||||
self.assertEqual(reply.status_code, 200)
|
||||
self.assertEqual(len(reply.json()), 4)
|
||||
self.assertEqual(reply.json()[0]['name'], 'loc1')
|
||||
self.assertEqual(reply.json()[0]['description'], None)
|
||||
self.assertEqual(reply.json()[0]['category'], None)
|
||||
self.assertEqual(reply.json()[0]['path'], 'loc1')
|
||||
self.assertEqual(reply.json()[1]['name'], 'loc2')
|
||||
self.assertEqual(reply.json()[1]['description'], None)
|
||||
self.assertEqual(reply.json()[1]['category'], 'cat1')
|
||||
self.assertEqual(reply.json()[1]['path'], 'loc2')
|
||||
self.assertEqual(reply.json()[2]['name'], 'loc3')
|
||||
self.assertEqual(reply.json()[2]['description'], None)
|
||||
self.assertEqual(reply.json()[2]['category'], None)
|
||||
self.assertEqual(reply.json()[2]['path'], 'loc1/loc3')
|
||||
self.assertEqual(reply.json()[3]['name'], 'loc4')
|
||||
self.assertEqual(reply.json()[3]['description'], None)
|
||||
self.assertEqual(reply.json()[3]['category'], 'cat1')
|
||||
self.assertEqual(reply.json()[3]['path'], 'loc1/loc4')
|
||||
Loading…
Add table
Add a link
Reference in a new issue