from chrysacase import ChrysalideTestCase
from pychrysalide.glibext import GenericWork


class TestWorks(ChrysalideTestCase):
    """TestCase for glibext.GenericWork"""

    def testBasicWorkImplementation(self):
        """Implement a basic work."""

        class BasicWork(GenericWork):
            def __init__(self, lst):
                super(BasicWork, self).__init__()
                self._lst = lst
            def _run(self):
                self._lst.append('done')

        test = []

        work = BasicWork(test)

        work.process()

        self.assertEqual(len(test), 1)
        self.assertEqual(test[0], 'done')