Example #1
0
    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)
Example #2
0
    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)