import shutil
import tempfile
from waeup.sirp.testing import FunctionalLayer, FunctionalTestCase
from waeup.sirp.accesscodes.workflow import (
    invalidate_action, disable_used_action, disable_unused_action,
    reenable_action,
    )

class WorkflowActionsTests(FunctionalTestCase):
    # Tests for helpers like get_access_code, disable_accesscode, ...

    layer = FunctionalLayer

    def setUp(self):
        super(WorkflowActionsTests, self).setUp()
        self.workdir = tempfile.mkdtemp()

    def tearDown(self):
        shutil.rmtree(self.workdir)
        super(WorkflowActionsTests, self).tearDown()
        return

    def test_actions_wo_parents(self):
        # We can pass contexts without parent to actions
        context = object() # Some fake context without parent
        self.assertTrue(invalidate_action(None, context) is None)
        self.assertTrue(disable_used_action(None, context) is None)
        self.assertTrue(disable_unused_action(None, context) is None)
        self.assertTrue(reenable_action(None, context) is None)
        return
