示例#1
0
 def test_404(self, get_model):
     """ If model is not found, raise 404 """
     resource = IModelResource()
     request = DummyRequest()
     request.method = 'GET'
     resource.request = request
     get_model.return_value = None
     with self.assertRaises(HTTPNotFound):
         resource['foobar']
示例#2
0
 def test_put_create(self, get_model, create_model):
     """ Put request can create a new model """
     resource = IModelResource()
     request = DummyRequest()
     request.method = 'PUT'
     resource.request = request
     get_model.return_value = None
     ret = resource['foobar']
     self.assertTrue(isinstance(ret, IModelResource))
     self.assertEqual(ret.__parent__, resource)
     self.assertEqual(ret.__name__, 'foobar')
     get_model.assert_called_with('foobar')
     create_model.assert_called_with('foobar')
     self.assertEqual(ret.model, create_model())
示例#3
0
 def test_default_create(self):
     """ Default create operation raises keyerror """
     resource = IModelResource()
     with self.assertRaises(KeyError):
         resource.create_model('foobar')
示例#4
0
 def test_default_db(self):
     """ The default sqlalchemy database is request.db """
     request = MagicMock()
     resource = IModelResource()
     resource.request = request
     self.assertEqual(resource.db, request.db)
示例#5
0
 def test_no_subpaths(self):
     """ If resource already contains model, further paths raise KeyError """
     resource = IModelResource()
     resource.model = MagicMock()
     with self.assertRaises(KeyError):
         resource['foobar']