def test_list_no_colour(tmpdir): tmpdir.join("default").mkdir() db = Database([tmpdir.join("default")], tmpdir.join("cache.sqlite3")) list_ = next(db.lists()) assert list_.colour is None
def test_list_colour(tmpdir): tmpdir.join("default").mkdir() with tmpdir.join("default").join("color").open("w") as f: f.write("#8ab6d2") db = Database([tmpdir.join("default")], tmpdir.join("cache.sqlite3")) list_ = next(db.lists()) assert list_.colour == "#8ab6d2"
def test_list_no_colour(tmpdir): tmpdir.join('default').mkdir() db = Database([tmpdir.join('default')], tmpdir.join('cache.sqlite3')) list_ = next(db.lists()) assert list_.color_raw is None assert list_.color_rgb is None assert list_.color_ansi is None
def test_list_colour(tmpdir): tmpdir.join('default').mkdir() with tmpdir.join('default').join('color').open('w') as f: f.write('#8ab6d2') db = Database([tmpdir.join('default')], tmpdir.join('cache.sqlite3')) list_ = next(db.lists()) assert list_.colour == '#8ab6d2'
def test_list_colour_cache_invalidation(tmpdir, sleep): tmpdir.join("default").mkdir() with tmpdir.join("default").join("color").open("w") as f: f.write("#8ab6d2") db = Database([tmpdir.join("default")], tmpdir.join("cache.sqlite3")) list_ = next(db.lists()) assert list_.colour == "#8ab6d2" sleep() with tmpdir.join("default").join("color").open("w") as f: f.write("#f874fd") db = Database([tmpdir.join("default")], tmpdir.join("cache.sqlite3")) list_ = next(db.lists()) assert list_.colour == "#f874fd"
def test_list_displayname(tmpdir): tmpdir.join("default").mkdir() with tmpdir.join("default").join("displayname").open("w") as f: f.write("personal") db = Database([tmpdir.join("default")], tmpdir.join("cache.sqlite3")) list_ = next(db.lists()) assert list_.name == "personal" assert str(list_) == "personal"
def test_list_displayname(tmpdir): tmpdir.join('default').mkdir() with tmpdir.join('default').join('displayname').open('w') as f: f.write('personal') db = Database([tmpdir.join('default')], tmpdir.join('cache.sqlite3')) list_ = next(db.lists()) assert list_.name == 'personal' assert str(list_) == 'personal'
def test_list_colour_cache_invalidation(tmpdir, sleep): tmpdir.join('default').mkdir() with tmpdir.join('default').join('color').open('w') as f: f.write('#8ab6d2') db = Database([tmpdir.join('default')], tmpdir.join('cache.sqlite3')) list_ = next(db.lists()) assert list_.colour == '#8ab6d2' sleep() with tmpdir.join('default').join('color').open('w') as f: f.write('#f874fd') db = Database([tmpdir.join('default')], tmpdir.join('cache.sqlite3')) list_ = next(db.lists()) assert list_.colour == '#f874fd'
def test_list_colour(tmpdir): tmpdir.join('default').mkdir() with tmpdir.join('default').join('color').open('w') as f: f.write('#8ab6d2') db = Database([tmpdir.join('default')], tmpdir.join('cache.sqlite3')) list_ = next(db.lists()) assert list_.color_raw == '#8ab6d2' assert list_.color_rgb == (138, 182, 210) assert list_.color_ansi == '\x1b[38;2;138;182;210m'
def test_change_paths(tmpdir, create): old_todos = set("abcdefghijk") for x in old_todos: create("{}.ics".format(x), "SUMMARY:{}\n".format(x), x) tmpdir.mkdir("3") db = Database([tmpdir.join(x) for x in old_todos], tmpdir.join("cache.sqlite")) assert {t.summary for t in db.todos()} == old_todos db.paths = [str(tmpdir.join("3"))] db.update_cache() assert len(list(db.lists())) == 1 assert not list(db.todos())
def test_change_paths(tmpdir, create): old_todos = set('abcdefghijk') for x in old_todos: create('{}.ics'.format(x), 'SUMMARY:{}\n'.format(x), x) tmpdir.mkdir('3') db = Database([tmpdir.join(x) for x in old_todos], tmpdir.join('cache.sqlite')) assert {t.summary for t in db.todos()} == old_todos db.paths = [str(tmpdir.join('3'))] db.update_cache() assert len(list(db.lists())) == 1 assert not list(db.todos())
def test_due_aware(tmpdir, runner, create, now_for_tz): db = Database([tmpdir.join('default')], tmpdir.join('cache.sqlite')) l = next(db.lists()) for tz in ['CET', 'HST']: for i in [1, 23, 25, 48]: todo = FileTodo() todo.due = now_for_tz(tz) + timedelta(hours=i) todo.summary = '{}'.format(i) db.save(todo, l) todos = list(db.todos(due=24)) assert len(todos) == 4 assert todos[0].summary == "23" assert todos[1].summary == "23" assert todos[2].summary == "1" assert todos[3].summary == "1"
def test_due_aware(tmpdir, runner, create, now_for_tz): db = Database([tmpdir.join("default")], tmpdir.join("cache.sqlite")) list_ = next(db.lists()) for tz in ["CET", "HST"]: for i in [1, 23, 25, 48]: todo = Todo(new=True) todo.due = now_for_tz(tz) + timedelta(hours=i) todo.summary = "{}".format(i) todo.list = list_ db.save(todo) todos = list(db.todos(due=24)) assert len(todos) == 4 assert todos[0].summary == "23" assert todos[1].summary == "23" assert todos[2].summary == "1" assert todos[3].summary == "1"
def test_due_aware(tmpdir, runner, create): now = datetime.now() db = Database([tmpdir.join('default')], tmpdir.join('cache.sqlite')) l = next(db.lists()) for tz in ['CET', 'HST']: for i in [1, 23, 25, 48]: todo = FileTodo() todo.due = (now + timedelta(hours=i)).replace(tzinfo=tzlocal()) \ .astimezone(pytz.timezone(tz)) todo.summary = '{}'.format(i) db.save(todo, l) todos = list(db.todos(due=24)) assert len(todos) == 4 assert todos[0].summary == "23" assert todos[1].summary == "23" assert todos[2].summary == "1" assert todos[3].summary == "1"