Пример #1
0
 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)
Пример #2
0
 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)
Пример #3
0
 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
Пример #4
0
 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"
     )
Пример #5
0
 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
Пример #6
0
 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
     )
Пример #7
0
 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)
Пример #8
0
 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")
Пример #9
0
 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
Пример #10
0
 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={})
Пример #11
0
 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"