Пример #1
0
    def load(self, dir: Path = default_dir) -> Tuple[bool, str]:
        """Load the WoK from the dir folder

        :param dir: Default value = default_dir
        :return: True if success + message
        :rtype: boolean, string

        """
        if not Wok.check_dir(dir):
            return False, "Could not load (see previous error)"
        # Now dir exists and is a directory
        current_job_name = None
        try:
            current_job_file = [
                x for x in dir.iterdir()
                if not x.is_dir() and x.name == "current_job"
            ][0]
            current_job_name = current_job_file.read_text().strip()
        except IndexError:
            pass
        for job_file in [x for x in dir.iterdir() if x.is_dir()]:
            job = Job(job_file.name)
            for task_file in job_file.iterdir():
                task = Task(task_file.name)
                task.load(task_file.read_text().split("\n"))
                job.add_task(task)
            self.jobs.append(job)
            if job.name == current_job_name:
                self.current_job_idx = len(self.jobs) - 1
        return True, "Loaded successfully"
Пример #2
0
class TestTask(unittest.TestCase):
    def setUp(self):
        self.task = Task("tested_task")

    def test_init(self):
        self.assertEqual(self.task.name, "tested_task")
        self.assertEqual(self.task.datetimes, [])
        self.assertFalse(self.task.is_running())

    def test_start(self):
        now = datetime.now()
        res = self.task.start(dt=now)
        self.assertTrue(res)
        self.assertEqual(self.task.current_datetime, now)
        self.assertTrue(self.task.is_running())

    def test_start_twice(self):
        now = datetime.now()
        res = self.task.start(dt=now)
        self.assertTrue(res)
        self.assertTrue(self.task.is_running())
        res, _ = self.task.start(dt=now)
        self.assertFalse(res)

    def test_end(self):
        res, _ = self.task.end()
        self.assertFalse(res)
        self.assertFalse(self.task.is_running())

    def test_start_end_save(self):
        start = datetime(2019, 1, 10, 11, 11)
        end = datetime(2019, 1, 10, 11, 22)
        self.task.start(dt=start)
        self.task.end(dt=end)
        self.assertEqual(self.task.datetimes, [(start, end)])
        self.assertEqual(self.task.current_datetime, None)
        out = self.task.save()
        self.assertEqual(
            out, "2019-01-10T11:11:00.000000->2019-01-10T11:22:00.000000")
        start2 = datetime(2019, 1, 10, 11, 23)
        self.task.start(dt=start2)
        self.assertEqual(self.task.datetimes, [(start, end)])
        self.assertEqual(self.task.current_datetime, start2)
        out = self.task.save()
        self.assertEqual(
            out,
            "2019-01-10T11:11:00.000000->2019-01-10T11:22:00.000000\nC:2019-01-10T11:23:00.000000",
        )

    def test_load(self):
        start = datetime(2019, 1, 10, 11, 11)
        end = datetime(2019, 1, 10, 11, 22)
        self.task.load(
            ["2019-01-10T11:11:00.000000->2019-01-10T11:22:00.000000"])
        self.assertEqual(self.task.datetimes, [(start, end)])
        self.assertEqual(self.task.current_datetime, None)