import tempfile import unittest from commitlist import CommitList class TestCommitList(unittest.TestCase): def test_create_new(self): with tempfile.TemporaryDirectory() as tempdir: commit_list_path = f"{tempdir}/commitlist.csv" commit_list = CommitList.create_new( commit_list_path, "v1.5.0", "6000dca5df" ) self.assertEqual(len(commit_list.commits), 33) self.assertEqual(commit_list.commits[0].commit_hash, "7335f079abb") self.assertTrue( commit_list.commits[0].title.startswith("[pt][quant] qmul and qadd") ) self.assertEqual(commit_list.commits[-1].commit_hash, "6000dca5df6") self.assertTrue( commit_list.commits[-1].title.startswith( "[nomnigraph] Copy device option when customize " ) ) def test_read_write(self): with tempfile.TemporaryDirectory() as tempdir: commit_list_path = f"{tempdir}/commitlist.csv" initial = CommitList.create_new(commit_list_path, "v1.5.0", "7543e7e558") initial.write_to_disk() expected = CommitList.from_existing(commit_list_path) expected.commits[-2].category = "foobar" expected.write_to_disk() commit_list = CommitList.from_existing(commit_list_path) for commit, expected_commit in zip(commit_list.commits, expected.commits): self.assertEqual(commit, expected_commit) def test_update_to(self): with tempfile.TemporaryDirectory() as tempdir: commit_list_path = f"{tempdir}/commitlist.csv" initial = CommitList.create_new(commit_list_path, "v1.5.0", "7543e7e558") initial.commits[-2].category = "foobar" self.assertEqual(len(initial.commits), 2143) initial.write_to_disk() commit_list = CommitList.from_existing(commit_list_path) commit_list.update_to("5702a28b26") self.assertEqual(len(commit_list.commits), 2143 + 4) self.assertEqual(commit_list.commits[-5], initial.commits[-1]) if __name__ == "__main__": unittest.main()