Exemplo n.º 1
0
    def test_set_with_json_object(self):
        self._container.container = {Container(), Container(), Container()}
        actual = dumpd(self._container)

        self.assertIsInstance(actual[Container.CONTAINER_FIELD_NAME], list)

        expected = [dumpd(item) for item in self._container.container]
        self.assertListEqual(expected, actual[Container.CONTAINER_FIELD_NAME])
Exemplo n.º 2
0
    def test_dict_with_not_serializable_object(self):
        self._container.container = {
            "key1": NotSerializableObject(),
            "key2": NotSerializableObject()
        }

        with self.assertRaises(TypeError):
            dumpd(self._container)
Exemplo n.º 3
0
    def test_dict_with_json_object_without_fields(self):
        self._container.container = {
            "key1": JSONObjectWithoutFields(),
            "key2": JSONObjectWithoutFields()
        }

        with self.assertRaises(ConfigurationError):
            dumpd(self._container)
Exemplo n.º 4
0
    def test_dict_with_json_object(self):
        self._container.container = {
            "key1": Container(),
            "key2": Container()
        }
        actual = dumpd(self._container)

        for key, value in actual[Container.CONTAINER_FIELD_NAME].items():
            self.assertIsInstance(value, dict)

        expected = {
            key: dumpd(self._container.container[key]) for key in self._container.container.keys()
        }
        self.assertDictEqual(expected, actual[Container.CONTAINER_FIELD_NAME])
Exemplo n.º 5
0
    def test_list_with_dict(self):
        self._container.container = [{"key1": "", "key2": None}, {"key1": 1, "key2": 1.123}]
        actual = dumpd(self._container)

        self.assertIsInstance(actual[Container.CONTAINER_FIELD_NAME], list)
        for index, item in enumerate(actual[Container.CONTAINER_FIELD_NAME]):
            self.assertDictEqual(item, self._container.container[index])
Exemplo n.º 6
0
    def test_date(self):
        date = datetime.date.today()
        self._container.container = date
        actual = dumpd(self._container)

        expected = date.strftime(JSONEncoder.DATE_FORMAT)
        self.assertEqual(expected, actual[Container.CONTAINER_FIELD_NAME])
Exemplo n.º 7
0
    def test_with_naive_datetime(self):
        dt = datetime.datetime.now()
        self._container.container = dt
        actual = dumpd(self._container)

        expected = dt.strftime(JSONEncoder.DATETIME_FORMAT)
        self.assertEqual(expected, actual[Container.CONTAINER_FIELD_NAME])
Exemplo n.º 8
0
    def _datetime_timezone_helper(self, timezone_name, utc_offset):
        dt = datetime.datetime.now(tz.gettz(timezone_name))
        self._container.container = dt
        actual = dumpd(self._container)

        expected = dt.strftime(JSONEncoder.DATETIME_TZ_FORMAT)
        self.assertEqual(expected, actual[Container.CONTAINER_FIELD_NAME])
        self.assertTrue(actual[Container.CONTAINER_FIELD_NAME].endswith(utc_offset))
Exemplo n.º 9
0
    def test_list_with_set(self):
        self._container.container = [set([]), {1, 2, 3}]
        actual = dumpd(self._container)

        self.assertIsInstance(actual[Container.CONTAINER_FIELD_NAME], list)

        expected = [list(item) for item in self._container.container]
        self.assertListEqual(expected, actual[Container.CONTAINER_FIELD_NAME])
Exemplo n.º 10
0
    def test_tuple_with_bool(self):
        self._container.container = (False, False, False)
        actual = dumpd(self._container)

        self.assertIsInstance(actual[Container.CONTAINER_FIELD_NAME], list)

        expected = list(self._container.container)
        self.assertListEqual(expected, actual[Container.CONTAINER_FIELD_NAME])
Exemplo n.º 11
0
    def test_inheritance(self):
        self._container.container = ExtendedCar()
        actual = dumpd(self._container)

        self.assertIsInstance(actual[Container.CONTAINER_FIELD_NAME], dict)
        self.assertIn(ExtendedCar.FIELD_MAX_SPEED_NAME, actual[Container.CONTAINER_FIELD_NAME].keys())
        self.assertIn(ExtendedCar.FIELD_MODEL_NAME_NAME, actual[Container.CONTAINER_FIELD_NAME].keys())
        self.assertIn(ExtendedCar.FIELD_HORSEPOWER_NAME, actual[Container.CONTAINER_FIELD_NAME].keys())
Exemplo n.º 12
0
    def test_set_with_float(self):
        self._container.container = {1.1, 2.1337, 3.42, 12.9999}
        actual = dumpd(self._container)

        self.assertIsInstance(actual[Container.CONTAINER_FIELD_NAME], list)

        expected = list(self._container.container)
        self.assertListEqual(expected, actual[Container.CONTAINER_FIELD_NAME])
Exemplo n.º 13
0
    def test_set_with_str(self):
        self._container.container = {"some string", "string", "another string", "ayyyyyy"}
        actual = dumpd(self._container)

        self.assertIsInstance(actual[Container.CONTAINER_FIELD_NAME], list)

        expected = list(self._container.container)
        self.assertListEqual(expected, actual[Container.CONTAINER_FIELD_NAME])
Exemplo n.º 14
0
    def test_empty_set(self):
        self._container.container = set([])
        actual = dumpd(self._container)

        self.assertIsInstance(actual[Container.CONTAINER_FIELD_NAME], list)

        expected = list(self._container.container)
        self.assertListEqual(expected, actual[Container.CONTAINER_FIELD_NAME])
Exemplo n.º 15
0
    def test_tuple_with_float(self):
        self._container.container = (1.123, 2.123, 3.1337)
        actual = dumpd(self._container)

        self.assertIsInstance(actual[Container.CONTAINER_FIELD_NAME], list)

        expected = list(self._container.container)
        self.assertListEqual(expected, actual[Container.CONTAINER_FIELD_NAME])
Exemplo n.º 16
0
    def test_set_with_date(self):
        self._container.container = {datetime.date.today()}
        actual = dumpd(self._container)

        self.assertIsInstance(actual[Container.CONTAINER_FIELD_NAME], list)

        expected = [item.strftime(JSONEncoder.DATE_FORMAT) for item in self._container.container]
        self.assertListEqual(expected, actual[Container.CONTAINER_FIELD_NAME])
Exemplo n.º 17
0
    def test_tuple_with_naive_datetime(self):
        self._container.container = [datetime.datetime.now(), datetime.datetime.now() - datetime.timedelta(hours=3)]
        actual = dumpd(self._container)

        self.assertIsInstance(actual[Container.CONTAINER_FIELD_NAME], list)

        expected = [item.strftime(JSONEncoder.DATETIME_FORMAT) for item in self._container.container]
        self.assertListEqual(expected, actual[Container.CONTAINER_FIELD_NAME])
Exemplo n.º 18
0
    def test_set_with_int(self):
        self._container.container = {1, 2, 3, 4, 5, 6}
        actual = dumpd(self._container)

        self.assertIsInstance(actual[Container.CONTAINER_FIELD_NAME], list)

        expected = list(self._container.container)
        self.assertListEqual(expected, actual[Container.CONTAINER_FIELD_NAME])
Exemplo n.º 19
0
    def test_tuple_with_set(self):
        self._container.container = (
            set([]),
            {1, 2, 3, 4, 5},
            {Container(), Container(), Container()},
            {"some string", "another string"}
        )
        actual = dumpd(self._container)

        self.assertIsInstance(actual[Container.CONTAINER_FIELD_NAME], list)

        expected = [list(item) for item in self._container.container]
        for lst in expected:
            for i, item in enumerate(lst):
                if isinstance(item, Container):
                    lst[i] = dumpd(lst[i])

        self.assertListEqual(expected, actual[Container.CONTAINER_FIELD_NAME])
Exemplo n.º 20
0
    def _datetime_timezone_iterable_helper(self, utc_offset):
        actual = dumpd(self._container)

        self.assertIsInstance(actual[Container.CONTAINER_FIELD_NAME], list)

        expected = [item.strftime(JSONEncoder.DATETIME_TZ_FORMAT) for item in self._container.container]
        self.assertListEqual(expected, actual[Container.CONTAINER_FIELD_NAME])

        for item in actual[Container.CONTAINER_FIELD_NAME]:
            self.assertTrue(item.endswith(utc_offset))
Exemplo n.º 21
0
    def test_dict_with_bool(self):
        self._container.container = {
            "key1": True
        }
        actual = dumpd(self._container)

        for key, value in actual[Container.CONTAINER_FIELD_NAME].items():
            self.assertIsInstance(value, bool)

        self.assertDictEqual(self._container.container, actual[Container.CONTAINER_FIELD_NAME])
Exemplo n.º 22
0
    def test_dict_with_list(self):
        self._container.container = {
            "key1": [],
            "key2": ["some string", "another string"]
        }
        actual = dumpd(self._container)

        for key, value in actual[Container.CONTAINER_FIELD_NAME].items():
            self.assertIsInstance(value, list)

        self.assertDictEqual(self._container.container, actual[Container.CONTAINER_FIELD_NAME])
Exemplo n.º 23
0
    def test_dict_with_float(self):
        self._container.container = {
            "key1": 1.1337,
            "key2": 42.4444
        }
        actual = dumpd(self._container)

        for key, value in actual[Container.CONTAINER_FIELD_NAME].items():
            self.assertIsInstance(value, float)

        self.assertDictEqual(self._container.container, actual[Container.CONTAINER_FIELD_NAME])
Exemplo n.º 24
0
    def test_dict_with_none(self):
        self._container.container = {
            "key1": None,
            "key2": None
        }
        actual = dumpd(self._container)

        for key, value in actual[Container.CONTAINER_FIELD_NAME].items():
            self.assertEqual(value, None)

        self.assertDictEqual(self._container.container, actual[Container.CONTAINER_FIELD_NAME])
Exemplo n.º 25
0
    def test_list_with_list(self):
        self._container.container = [
            [],
            [1, 2, 3],
            [1.111, 2.12356],
            ["some string"],
            [None, None, None],
            [Container(), Container()],
        ]
        actual = dumpd(self._container)

        self.assertIsInstance(actual[Container.CONTAINER_FIELD_NAME], list)

        expected = [item for item in self._container.container]
        for lst in expected:
            for i, item in enumerate(lst):
                if isinstance(item, Container):
                    lst[i] = dumpd(lst[i])

        self.assertListEqual(expected, actual[Container.CONTAINER_FIELD_NAME])
Exemplo n.º 26
0
    def test_tuple_with_list(self):
        self._container.container = (
            [],
            [1, 2, 3, 4],
            ["some string", "another string", "and yet another string"]
        )
        actual = dumpd(self._container)

        self.assertIsInstance(actual[Container.CONTAINER_FIELD_NAME], list)

        expected = list(self._container.container)
        self.assertListEqual(expected, actual[Container.CONTAINER_FIELD_NAME])
Exemplo n.º 27
0
    def test_tuple_with_tuple(self):
        self._container.container = (
            tuple([]),
            tuple([1, 2, 3, 4]),
            tuple(["some string", "another string"])
        )
        actual = dumpd(self._container)

        self.assertIsInstance(actual[Container.CONTAINER_FIELD_NAME], list)

        expected = [list(item) for item in self._container.container]
        self.assertListEqual(expected, actual[Container.CONTAINER_FIELD_NAME])
Exemplo n.º 28
0
    def test_tuple_with_dict(self):
        self._container.container = (
            {},
            {"key1": "some string", "key2": "another string"},
            {"key1": 1, "key2": 2, "key3": 3}
        )
        actual = dumpd(self._container)

        self.assertIsInstance(actual[Container.CONTAINER_FIELD_NAME], list)

        expected = list(self._container.container)
        self.assertListEqual(expected, actual[Container.CONTAINER_FIELD_NAME])
Exemplo n.º 29
0
    def test_set_with_tuple(self):
        self._container.container = {
            (),
            (1, 2, 3),
            ("a string", "str", "some string", "another string")
        }
        actual = dumpd(self._container)

        self.assertIsInstance(actual[Container.CONTAINER_FIELD_NAME], list)

        expected = [list(item) for item in self._container.container]
        self.assertListEqual(expected, actual[Container.CONTAINER_FIELD_NAME])
Exemplo n.º 30
0
    def test_dict_with_set(self):
        self._container.container = {
            "key1": set([]),
            "key2": {1.1337, 42.0}
        }
        actual = dumpd(self._container)

        for key, value in actual[Container.CONTAINER_FIELD_NAME].items():
            self.assertIsInstance(value, list)

        expected = {key: list(self._container.container[key]) for key in self._container.container.keys()}
        self.assertDictEqual(expected, actual[Container.CONTAINER_FIELD_NAME])