Пример #1
0
    def test_fails_on_unknown(self):
        class UnknownClass(object):
            pass

        with self.assertRaises(ValueError) as context:
            # It returns a generator, so we have to wrap it in a list to force evaluation.
            list(serialise.as_flat_key_value({'a': 1, 'b': UnknownClass()}))
Пример #2
0
    def test_flat_dict_flattens_without_underscore_suffix(self, dict_):
        # A (single) trailing underscore should be stripped from key names if present, as these are added
        # for python name conflicts.

        # If we append an underscore to every key, the result should be identical.
        self.assert_items_equal(
            dict_.items(),
            serialise.as_flat_key_value({k + '_': v
                                         for k, v in dict_.items()}))
Пример #3
0
 def test_as_key_value(self):
     self.assert_values_equal(
         serialise.as_flat_key_value({
             'a': 1,
             'b': compat.long_int(2),
             'c': 2.3,
             'd': {
                 'd_inner': {
                     'a': 42
                 }
             }
         }), [('a', 1), ('b', compat.long_int(2)), ('c', 2.3),
              ('d.d_inner.a', 42)])
Пример #4
0
    def test_key_value_simple_obj(self):
        class Test1(ptype.SimpleObject):
            def __init__(self, a, b, c, d=None):
                self.a = a
                self.b = b
                self.c = c
                self.d = d

        self.assert_values_equal(
            serialise.as_flat_key_value(
                Test1(a=1,
                      b=compat.long_int(2),
                      c=2.3,
                      d=Test1(a=1, b=2, c={'a': 42}))),
            [('a', 1), ('b', compat.long_int(2)), ('c', 2.3), ('d.a', 1),
             ('d.b', 2), ('d.c.a', 42)])
Пример #5
0
    def test_key_value_types(self):
        class Test1(ptype.SimpleObject):
            def __init__(self, a, b, c, d=None):
                self.a = a
                self.b = b
                self.c = c
                self.d = d

        uuid_ = uuid.uuid1()
        date_ = datetime.datetime.utcnow()
        self.assert_values_equal(
            [('a:0', 'a'), ('a:1', 'b'), ('a:2:a', 1), ('a:2:b', 2),
             ('b', compat.long_int(2)), ('c', date_.isoformat()),
             ('d:a', str(uuid_)), ('d:b', 'something/testpath.txt'),
             ('d:c:a', 42)],
            serialise.as_flat_key_value(Test1(
                a=['a', 'b', Test1(1, 2, None)],
                b=compat.long_int(2),
                c=date_,
                d=Test1(a=uuid_,
                        b=Path('/tmp/something/testpath.txt'),
                        c={'a': 42})),
                                        relative_to=Path('/tmp'),
                                        key_separator=':'))
Пример #6
0
 def test_flat_dict_flattens_identically(self, dict_):
     print(dict_)
     self.assert_items_equal(dict_.items(),
                             serialise.as_flat_key_value(dict_))