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']
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())
def test_default_create(self): """ Default create operation raises keyerror """ resource = IModelResource() with self.assertRaises(KeyError): resource.create_model('foobar')
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)
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']