コード例 #1
0
 def test_resource_object_constructor__with_relationships(self):
     ItemResponse = JsonApiResponse('item', ItemModel)
     item = ItemModel(name='pear', price=1.2, quantity=10)
     document = ItemResponse.resource_object(id='abc123',
                                             attributes=item,
                                             relationships={
                                                 'sold_at': {
                                                     'data': {
                                                         'type': 'store',
                                                         'id': 'def456'
                                                     }
                                                 }
                                             }).dict()
     assert document == {
         'id': 'abc123',
         'type': 'item',
         'attributes': {
             'name': 'pear',
             'price': 1.2,
             'quantity': 10,
         },
         'relationships': {
             'sold_at': {
                 'data': {
                     'id': 'def456',
                     'type': 'store',
                     'meta': None,
                 },
                 'links': None,
                 'meta': None,
             }
         }
     }
コード例 #2
0
 def test_resource_object_constructor__with_list_response(self):
     ItemResponse = JsonApiResponse('item', ItemModel, use_list=True)
     item = ItemModel(name='pear', price=1.2, quantity=10)
     document = ItemResponse.resource_object(id='abc123',
                                             attributes=item).dict()
     assert document == {
         'id': 'abc123',
         'type': 'item',
         'attributes': {
             'name': 'pear',
             'price': 1.2,
             'quantity': 10,
         },
         'relationships': None
     }
コード例 #3
0
 def test_response_constructed_with_resource_object(self):
     ItemResponse = JsonApiResponse('item', ItemModel)
     item = ItemModel(name='pear', price=1.2, quantity=10)
     data = ItemResponse.resource_object(id='abc123',
                                         attributes=item).dict()
     assert ItemResponse(data=data).dict() == {
         'data': {
             'id': 'abc123',
             'type': 'item',
             'attributes': {
                 'name': 'pear',
                 'price': 1.2,
                 'quantity': 10,
             },
         }
     }
コード例 #4
0
 def test_resource_object_constructor__with_invalid_links(self):
     ItemResponse = JsonApiResponse('item', ItemModel)
     item = ItemModel(name='pear', price=1.2, quantity=10)
     with raises(ValidationError) as e:
         ItemResponse.resource_object(
             id='abc123',
             attributes=item,
             links='/items/abc123',
         )
     assert e.value.errors() == [
         {
             'loc': ('links', ),
             'msg': 'value is not a valid dict',
             'type': 'type_error.dict'
         },
     ]
コード例 #5
0
 def test_resource_object_constructor__with_invalid_relationship(self):
     ItemResponse = JsonApiResponse('item', ItemModel)
     item = ItemModel(name='pear', price=1.2, quantity=10)
     with raises(ValidationError) as e:
         ItemResponse.resource_object(
             id='abc123',
             attributes=item,
             relationships={'sold_at': {
                 'meta': 'rofl'
             }})
     assert e.value.errors() == [
         {
             'loc': ('relationships', 'sold_at', 'meta'),
             'msg': 'value is not a valid dict',
             'type': 'type_error.dict'
         },
     ]