Files
gpt-engineer/tests/steps/test_archive.py
Anton Azarov 60e0a7e1dd Remove delete_existing option; Introduce archive (#409)
* Remove `delete_existing` option; Introduce archive

* Update gpt_engineer/db.py

* Update gpt_engineer/main.py

* Update gpt_engineer/main.py

* Update gpt_engineer/steps.py

* Update gpt_engineer/steps.py

---------

Co-authored-by: Anton Osika <anton.osika@gmail.com>
2023-07-02 15:56:31 +02:00

45 lines
1.4 KiB
Python

import datetime
import os
from unittest.mock import MagicMock
from gpt_engineer.db import DB, DBs
from gpt_engineer.steps import archive
def freeze_at(monkeypatch, time):
datetime_mock = MagicMock(wraps=datetime.datetime)
datetime_mock.now.return_value = time
monkeypatch.setattr(datetime, "datetime", datetime_mock)
def setup_dbs(tmp_path, dir_names):
directories = [tmp_path / name for name in dir_names]
# Create DB objects
dbs = [DB(dir) for dir in directories]
# Create DBs instance
return DBs(*dbs)
def test_archive(tmp_path, monkeypatch):
dbs = setup_dbs(
tmp_path, ["memory", "logs", "preprompts", "input", "workspace", "archive"]
)
freeze_at(monkeypatch, datetime.datetime(2020, 12, 25, 17, 5, 55))
archive(None, dbs)
assert not os.path.exists(tmp_path / "memory")
assert not os.path.exists(tmp_path / "workspace")
assert os.path.isdir(tmp_path / "archive" / "20201225_170555")
dbs = setup_dbs(
tmp_path, ["memory", "logs", "preprompts", "input", "workspace", "archive"]
)
freeze_at(monkeypatch, datetime.datetime(2022, 8, 14, 8, 5, 12))
archive(None, dbs)
assert not os.path.exists(tmp_path / "memory")
assert not os.path.exists(tmp_path / "workspace")
assert os.path.isdir(tmp_path / "archive" / "20201225_170555")
assert os.path.isdir(tmp_path / "archive" / "20220814_080512")