示例#1
0
文件: test_db.py 项目: Pand9/taskport
 def test_find(self, db):
     db.add(Task(Command("cmd"), Name("name1"), Tags(["tag1", "tag2"])))
     db.add(Task(Command("cmd"), Name("name2"), Tags(["tag2", "tag3"])))
     assert len(db.find("tag1")) == 1
     assert len(db.find("tag2")) == 2
     assert len(db.find("tag3")) == 1
     assert len(db.find("tag4")) == 0
示例#2
0
 def test_task_definition(self):
     task = Task(Command("echo tete a tete"))
     assert """0 0 * * * /bin/bash -c "echo tete a tete; echo 'taskport""" in task.as_cron()
     task = Task(cmd=Command("echo heh"),
                 name=Name("yolo"),
                 tags=Tags(["tag1", "tag2"]),
                 when=When.daily(13, 24))
     assert '''24 13 * * * /bin/bash -c "echo heh; echo 'taskport name: yolo, tags: tag1,tag2'"''' == task.as_cron()
示例#3
0
 def test_install(self):
     d = CronDevice(CronInfo())
     n = "/tmp/test.taskport.device.install.guard"
     if os.path.isfile(n):
         os.remove(n)
     assert not os.path.isfile(n)
     d.install([
         Task(name=Name("me"),
              cmd=Command(f"echo qq > {n}"),
              when=When("* * * * *"),
              tags=Tags(["tag1, tag2"]))
     ])
     time.sleep(60)
     d.install([])
     assert os.path.isfile(n)
     os.remove(n)
     time.sleep(62)
     assert not os.path.isfile(n)
示例#4
0
文件: test_db.py 项目: Pand9/taskport
 def test_add_second(self, db):
     assert db.add(Task(Command("cmd"), Name("name"))) is True
     assert db.add(Task(Command("cmd"), Name("name"))) is False
示例#5
0
文件: test_db.py 项目: Pand9/taskport
 def test_delete(self, db):
     db.add(Task(Command("cmd"), Name("name1")))
     db.add(Task(Command("cmd"), Name("name2")))
     db.delete(Name("name1"))
     assert db.get(Name("name1")) is None
     assert db.get(Name("name2"))
示例#6
0
文件: test_db.py 项目: Pand9/taskport
 def test_get(self, db):
     db.add(Task(Command("cmd"), Name("name1")))
     db.add(Task(Command("cmd"), Name("name2")))
     assert db.get(Name("dummy")) is None
     assert db.get(Name("name1")) == Task(Command("cmd"), Name("name1"))
     assert db.get(Name("name2")) == Task(Command("cmd"), Name("name2"))
示例#7
0
文件: test_db.py 项目: Pand9/taskport
 def test_add(self, db):
     db.add(Task(Command("cmd"), Name("name")))
     assert db.all() == [Task(Command("cmd"), Name("name"))]
示例#8
0
 def all(self) -> List[Task]:
     vals = self._eng.execute(self._tasks.select())
     return [Task.from_db_object(v) for v in vals]
示例#9
0
 def find(self, tag: str) -> List[Task]:
     vals = self._eng.execute(self._tasks.select().where(
         self._tasks.c.tags.like('%,' + tag + ",%")))
     return [Task.from_db_object(v) for v in vals]
示例#10
0
 def get(self, name: Name) -> Optional[Task]:
     vals = list(
         self._eng.execute(
             self._tasks.select().where(self._tasks.c.name == str(name))))
     return Task.from_db_object(vals[0]) if vals else None
示例#11
0
 def add(self, task: Task) -> bool:
     if self.get(task.name):
         return False
     self._eng.execute(self._tasks.insert(task.as_db_object()))
     return True