def test_router_subresource_post_list_fail(db_session): """Test posting a bad subresource list via a router fails.""" router = ModelResourceRouter(session=db_session, context={}) tracks = [ { "track_id": "ERROR", "name": "Test Track Seven", "media_type": { "media_type_id": "2" }, "genre": { "genre_id": "10" }, "composer": "Nick Repole", "milliseconds": "206009", "bytes": "3305166", "unit_price": "0.99", }, { "track_id": "4001", "name": "Test Track Eight", "media_type": { "media_type_id": "2" }, "genre": { "genre_id": "10" }, "composer": "Nick Repole", "milliseconds": "206009", "bytes": "3305166", "unit_price": "0.99", }, ] with raises(UnprocessableEntityError): router.post(path="/albums/1/tracks", data=tracks)
def test_router_post_collection(self): """Test that posting a resource list via a router works.""" router = ModelResourceRouter(session=self.db_session, context={}) tracks = [ { "track_id": "4000", "name": "Test Track Seven", "media_type": { "media_type_id": "2" }, "genre": { "genre_id": "10" }, "composer": "Nick Repole", "milliseconds": "206009", "bytes": "3305166", "unit_price": "0.99", }, { "track_id": "4001", "name": "Test Track Eight", "media_type": { "media_type_id": "2" }, "genre": { "genre_id": "10" }, "composer": "Nick Repole", "milliseconds": "206009", "bytes": "3305166", "unit_price": "0.99", } ] result = router.post("/tracks", data=tracks) self.assertTrue(result is None)
def test_router_subresource_post_list(db_session): """Test that posting a subresource list via a router works.""" router = ModelResourceRouter(session=db_session, context={}) tracks = [ { "track_id": "4000", "name": "Test Track Seven", "media_type": { "media_type_id": "2" }, "genre": { "genre_id": "10" }, "composer": "Nick Repole", "milliseconds": "206009", "bytes": "3305166", "unit_price": "0.99", }, { "track_id": "4001", "name": "Test Track Eight", "media_type": { "media_type_id": "2" }, "genre": { "genre_id": "10" }, "composer": "Nick Repole", "milliseconds": "206009", "bytes": "3305166", "unit_price": "0.99", }, ] result = router.post("/albums/1/tracks", data=tracks) assert len(result) == 12
def test_router_subresource_post_only_child(self): """Test posting a subresource only child via router works.""" router = ModelResourceRouter(session=self.db_session, context={}) artist = {"name": "Nick Repole"} result = router.post("/albums/1/artist", data=artist) self.assertTrue( result["name"] == "Nick Repole" )
def test_router_post(db_session): """Test that posting a resource via a router works.""" router = ModelResourceRouter(session=db_session, context={}) tracks = [{ "track_id": "4000", "name": "Test Track Seven", "media_type": { "media_type_id": "2" }, "genre": { "genre_id": "10" }, "composer": "Nick Repole", "milliseconds": "206009", "bytes": "3305166", "unit_price": "0.99", }] result = router.post("/tracks", data=tracks[0]) assert result["track_id"] == 4000
def test_router_subresource_post(self): """Test that posting a subresource via a router works.""" router = ModelResourceRouter(session=self.db_session, context={}) tracks = [ { "track_id": "4000", "name": "Test Track Seven", "media_type": { "media_type_id": "2" }, "genre": { "genre_id": "10" }, "composer": "Nick Repole", "milliseconds": "206009", "bytes": "3305166", "unit_price": "0.99", } ] result = router.post("/albums/1/tracks", data=tracks[0]) self.assertTrue( len(result) == 11 )
def test_router_subresource_post_attr(self): """Test that posting a subresource attr via a router works.""" router = ModelResourceRouter(session=self.db_session, context={}) result = router.post("/albums/1/tracks/14/bytes", data=1) self.assertTrue(result == 1)
def test_router_subresource_post_attr_fail(db_session): """Test posting a bad subresource attr via a router fails.""" router = ModelResourceRouter(session=db_session, context={}) with raises(UnprocessableEntityError): router.post(path="/albums/1/tracks/14/bytes", data="BAD")
def test_router_subresource_post_attr(db_session): """Test that posting a subresource attr via a router works.""" router = ModelResourceRouter(session=db_session, context={}) result = router.post("/albums/1/tracks/14/bytes", data=1) assert result == 1
def test_router_subresource_post_ident_fail(db_session): """Test posting to an already identified resource fails.""" router = ModelResourceRouter(session=db_session, context={}) with raises(MethodNotAllowedError): router.post(path="/albums/1/tracks/14", data={})
def test_router_subresource_post_only_child(db_session): """Test posting a subresource only child via router works.""" router = ModelResourceRouter(session=db_session, context={}) artist = {"name": "Nick Repole"} result = router.post("/albums/1/artist", data=artist) assert result["name"] == "Nick Repole"