コード例 #1
0
    def test_empty_args(self):
        # None for None
        info = object_util.resolve_info(None, None)
        expected = None

        self.assertEqual(info, expected)

        # No changes for dict
        info = object_util.resolve_info(None, self.info_by_id["2"])
        expected = {
            "base": 3,
            "lobby_id": 2,
            "lobby_name": "Lobby 2",
            "rooms": None,
            "some": 222
        }

        self.assertEqual(info, expected)

        # None if id given
        info = object_util.resolve_info(None, "3")
        expected = None

        self.assertEqual(info, expected)

        # Converting list to dict is possible without info_by_id
        info = object_util.resolve_info(None, self.info_by_id["3"],
                                        self.property_names)
        expected = {
            "lobby_id": 3,
            "lobby_name": "Lobby 3",
            "rooms": [6, 7, 8],
            # "some": None,
            "base": "4"
        }

        self.assertEqual(info, expected)

        # No converting without property_names
        info = object_util.resolve_info(None, self.info_by_id["3"])
        expected = {}

        self.assertEqual(info, expected)
コード例 #2
0
    def test_array_to_object_with_inheritance(self):
        info = object_util.resolve_info(self.info_by_id, self.info_by_id["3"],
                                        self.property_names)
        # ("some": 222 - inherited from "2")
        expected = {
            "lobby_id": 3,
            "lobby_name": "Lobby 3",
            "rooms": [6, 7, 8],
            # "some": 222,
            "base": "4"
        }

        self.assertEqual(info, expected)
コード例 #3
0
    def test_inheritance_by_value(self):
        info = object_util.resolve_info(self.info_by_id, self.info_by_id["2"],
                                        self.property_names)
        info2 = self.info_by_id["2"]
        expected = {
            "base": 3,
            "lobby_id": 2,
            "lobby_name": "Lobby 2",
            "rooms": [6, 7, 8],
            "some": 222
        }

        self.assertEqual(info, expected)
        # (resolve_info don't cache)
        self.assertNotEqual(info, info2)
        self.assertIsNot(info, info2)
コード例 #4
0
    def test_nested_inheritance_and_aliases(self):
        info = object_util.resolve_info(self.info_by_id, "5",
                                        self.property_names)

        # Resolved cached
        info1 = self.info_by_id["1"]
        info2 = self.info_by_id["2"]
        info3 = self.info_by_id["3"]
        # Result cached
        info4 = self.info_by_id["4"]
        info5 = self.info_by_id["5"]
        expected5 = {
            "base": 3,
            "lobby_id": 2,
            "lobby_name": "Lobby 2",
            "rooms": [6, 7, 8],
            "some": 222
        }
        expected2 = {
            "base": 3,
            "lobby_id": 2,
            "lobby_name": "Lobby 2",
            "rooms": [6, 7, 8],
            "some": 222
        }
        expected3 = {
            "base": "4",
            "lobby_id": 3,
            "lobby_name": "Lobby 3",
            "rooms": [6, 7, 8],
            # "some": 222
        }

        self.assertEqual(info, expected5)
        # self.assertEqual(info1, expected1)
        self.assertEqual(info2, expected2)
        self.assertEqual(info3, expected3)
        self.assertEqual(info2, info5)
        self.assertIs(info1, info4)
コード例 #5
0
ファイル: core.py プロジェクト: markelov-alex/py-sockets
 def resolve_info(self, info):
     return object_util.resolve_info(self._info_by_id, info,
                                     self._property_names)