# (c) cavaliba.com - test_housekeeping_daily

import shutil
import tempfile

from django.test import TestCase, override_settings

from app_home.models import CavalibaLog
from app_home.tasks import housekeeping_daily


class TestHousekeepingDaily(TestCase):
    def setUp(self):
        self.rootdir = tempfile.mkdtemp(prefix="cavaliba_test_filestore_")
        self.override = override_settings(CAVALIBA_FILESTORE=self.rootdir)
        self.override.enable()

    def tearDown(self):
        self.override.disable()
        shutil.rmtree(self.rootdir, ignore_errors=True)

    def test_runs_without_error(self):
        housekeeping_daily()

    def test_defaults_to_cron_username(self):
        housekeeping_daily()
        alog = CavalibaLog.objects.filter(app="housekeeping", action="done").last()
        self.assertEqual(alog.username, "cron")

    def test_uses_passed_username(self):
        housekeeping_daily(username="unittest")
        alog = CavalibaLog.objects.filter(app="housekeeping", action="done").last()
        self.assertEqual(alog.username, "unittest")
