def __init__(self, interactor_factory, renderer):
     """Initialise an instance of DeleteGameHandler.
     :param interactor_factory: The factory object to use for constructing interactors
     :param renderer: The object to use to render output html
     """
     super().__init__(interactor_factory, renderer)
     self.__get_game = lambda args: Game.from_dict({"id": args.get("id", "")})
Example #2
0
    def test_from_dict(self):
        """Test that mapping a game object from a dictionary is correct."""

        gd = {
            "id": "id",
            "datepurchased": "1/1/1990",
            "genre": "genre",
            "title": "Title",
            "numcopies": 1,
            "numboxed": 2,
            "nummanuals": 3,
            "platform": "Platform",
            "notes": "Notes"
        }

        g = Game.from_dict(gd)

        expected_mappings = {
            "id": g.id,
            "datepurchased": g.date_purchased,
            "genre": g.genre,
            "title": g.title,
            "numcopies": g.num_copies,
            "numboxed": g.num_boxed,
            "nummanuals": g.num_manuals,
            "platform": g.platform,
            "notes": g.notes
        }

        for k, v in expected_mappings.items():
            self.assertEqual(gd[k], v)
 def __execute_interactor(self, params):
     try:
         interactor = self.interactor_factory.create("UpdateGameInteractor")
         game = Game.from_dict(params)
         interactor.execute(game=game, user_id=self.session.get_value("user_id"))
         return True
     except PersistenceException:
         return False
 def get_page(self, params):
     """Handles requests to save a game
     :param params: A dictionary. For details on what keys the dictionary should contain, see
     Game.from_dict()."""
     super().get_page(params)
     
     if not self.validate_params(params, ["title", "platform"]):
         return ""
     interactor = self.interactor_factory.create("AddGameInteractor")
     interactor.execute(game=Game.from_dict(params), user_id=self.session.get_value("user_id"))
 def setUp(self):
     """setUp function for all unit tests in this class"""
     renderer = Mock(TemplateRenderer)
     interactor_factory = Mock(InteractorFactory)
     self.__interactor = Mock(AddGameInteractor)
     interactor_factory.create = Mock(return_value=self.__interactor)
     self.__target = SaveGameHandler(interactor_factory, renderer)
     session = Mock(Session)
     session.get_value = Mock(return_value="1234")
     self.__target.session = session
     self.__missing_param_returns_empty_string = get_missing_param_assertion(self.__target)
     self.__empty_param_returns_empty_string = get_empty_param_assertion(self.__target)
     self.__required_params = ["title", "platform"]
     self.__get_page = lambda: self.__target.get_page(params=self.__get_args())
     self.__get_game = lambda: Game.from_dict(self.__get_args())
 def test_calls_interactor_execute(self):
     """Test that calling UpdateGameHandler.get_page causes UpdateGameInteractor.execute to be called"""
     self.__target.get_page(params=self.__get_params())
     self.__interactor.execute.assert_called_with(game=Game.from_dict(self.__get_params()), user_id="1234")
 def test_calls_interactor_execute(self):
     """Test that calling DeleteGameHandler.get_page causes DeleteGameInteractor.execute to be called"""
     self.__get_page(self.__get_args())
     self.__interactor.execute.assert_called_with(Game.from_dict({"id": "id"}), "1234")