Ejemplo n.º 1
0
    def test_data_provider(self):
        """ Context will pull missing attributes from the data
        provider and cache them within its own data.
        """
        class AbcProvider(Provider):

            def __init__(self, a, b, c):
                self._a = a
                self._b = b
                self._c = c

            @Provider.data_point
            def a(self, context):
                return self._a

            @Provider.data_point
            def ab(self, context):
                return context.a + self._b

            @Provider.data_point
            def abc(self, context):
                return context.ab + self._c

        c = Context(data_provider=AbcProvider('A', 'b', 'C'))

        self.assertEqual(c.abc, 'AbC')

        c._data_provider = None
        self.assertEqual(c.a, 'A')
        self.assertEqual(c.ab, 'Ab')
        self.assertEqual(c.abc, 'AbC')
        del c['ab']
        self.assertNotIn('ab', c)
        self.assertEqual(len(c), 2)
Ejemplo n.º 2
0
    def test_data_provider(self):
        """ Context will pull missing attributes from the data
        provider and cache them within its own data.
        """
        class AbcProvider(Provider):
            def __init__(self, a, b, c):
                self._a = a
                self._b = b
                self._c = c

            @Provider.data_point
            def a(self, context):
                return self._a

            @Provider.data_point
            def ab(self, context):
                return context.a + self._b

            @Provider.data_point
            def abc(self, context):
                return context.ab + self._c

        c = Context(data_provider=AbcProvider('A', 'b', 'C'))

        self.assertEqual(c.abc, 'AbC')

        c._data_provider = None
        self.assertEqual(c.a, 'A')
        self.assertEqual(c.ab, 'Ab')
        self.assertEqual(c.abc, 'AbC')
        del c['ab']
        self.assertNotIn('ab', c)
        self.assertEqual(len(c), 2)