Beispiel #1
0
    def test_inheritance(self):
        class SimpleExtension(object):
            data = {'counter': 0}

            def extra_init(self):
                self.get_data()['counter'] += 1

            @classmethod
            def get_data(cls):
                return cls.data

        class CustomGrab(Grab, SimpleExtension):
            pass

        register_extensions(CustomGrab)

        SimpleExtension.get_data()['counter'] = 0
        g = CustomGrab()
        self.assertEqual(SimpleExtension.get_data()['counter'], 1)

        class VeryCustomGrab(CustomGrab):
            pass

        SimpleExtension.get_data()['counter'] = 0
        g = VeryCustomGrab()
        self.assertEqual(SimpleExtension.get_data()['counter'], 1)
Beispiel #2
0
    def test_inheritance(self):
        class SimpleExtension(object):
            data = {'counter': 0}

            def extra_init(self):
                self.get_data()['counter'] += 1

            @classmethod
            def get_data(cls):
                return cls.data

        class CustomGrab(Grab, SimpleExtension):
            pass

        register_extensions(CustomGrab)

        SimpleExtension.get_data()['counter'] = 0
        g = CustomGrab()
        self.assertEqual(SimpleExtension.get_data()['counter'], 1)

        class VeryCustomGrab(CustomGrab):
            pass

        SimpleExtension.get_data()['counter'] = 0
        g = VeryCustomGrab()
        self.assertEqual(SimpleExtension.get_data()['counter'], 1)
Beispiel #3
0
GLOBAL = {}

class ExtensionA(object):
    def extra_foo(self):
        GLOBAL['items'].append('a')

class ExtensionB(object):
    def extra_foo(self):
        GLOBAL['items'].append('b')

class Worker(ExtensionA,  ExtensionB):
    extension_points = ('foo',)

    def do_something(self):
        GLOBAL['items'].append('c')
        self.trigger_extensions('foo')


register_extensions(Worker)


class ExtensionTestCase(TestCase):
    def setUp(self):
        GLOBAL['items'] = []

    def test_extensions(self):
        worker = Worker()
        worker.do_something()
        self.assertEqual(set(GLOBAL['items']), set(['a', 'b', 'c']))
Beispiel #4
0
class ExtensionA(object):
    def extra_foo(self):
        GLOBAL['items'].append('a')


class ExtensionB(object):
    def extra_foo(self):
        GLOBAL['items'].append('b')


class Worker(ExtensionA, ExtensionB):
    extension_points = ('foo', )

    def do_something(self):
        GLOBAL['items'].append('c')
        self.trigger_extensions('foo')


register_extensions(Worker)


class ExtensionTestCase(TestCase):
    def setUp(self):
        GLOBAL['items'] = []

    def test_extensions(self):
        worker = Worker()
        worker.do_something()
        self.assertEqual(set(GLOBAL['items']), set(['a', 'b', 'c']))