def test_dump_load_post(self, tmpdir, expected_post): tmpdir = Path(tmpdir) postsdir = (tmpdir / "posts").mkdir() filepath = (postsdir / "test_post.md").touch() expected_post.filepath = filepath codec = PostCodec(postsdir=postsdir) codec.dump(expected_post) test_post = codec.load(filepath) assert test_post == expected_post assert codec.is_post(filepath) assert codec.is_publishable(filepath)
def test_file_formats(self, tmpdir, expected_post): tmpdir = Path(tmpdir) postsdir = (tmpdir / "posts").mkdir() codec = PostCodec(postsdir=postsdir) for content_format in codec.CONTENT_FORMATS: for ext in content_format.value: filepath = postsdir / f"test_post{ext}" expected_post.filepath = filepath codec.dump(expected_post) test_post = codec.load(filepath) err_msg = f"Error with '{ext}' file extension: test_post != EXPECTED_POST\n" for field_a, field_b in zip(test_post, expected_post): err_msg += f"test_post.{field_a[0]} = {field_a[1]};" err_msg += f" EXPECTED_POST.{field_b[0]} = {field_b[1]};\n" assert test_post == expected_post, err_msg assert codec.is_post(filepath) assert codec.is_publishable(filepath)