def test_to_rfc822(self, expected_rfc822_string, input_dict):
        metadata_1 = Metadata(**input_dict)
        generated_rfc822_string = metadata_1.to_rfc822()

        assert (Metadata.from_rfc822(generated_rfc822_string).to_dict() ==
                Metadata.from_rfc822(expected_rfc822_string).to_dict())
        assert TestMetaData._compare_rfc822_strings(expected_rfc822_string,
                                                    generated_rfc822_string)
    def test_from_rfc822(self, metadata_dict, metadata_rfc822):
        metadata_1 = Metadata(**metadata_dict)
        metadata_2 = Metadata.from_rfc822(metadata_rfc822)

        assert metadata_1 == metadata_2
    def _compare_rfc822_strings(cls, rfc822_1, rfc822_2):

        rfc822_1_dict = Metadata.from_rfc822(rfc822_1).to_dict()
        rfc822_2_dict = Metadata.from_rfc822(rfc822_2).to_dict()

        return rfc822_1_dict == rfc822_2_dict
    def test_single_line_description_in_rfc822(self):
        metdata_1 = Metadata.from_rfc822(VALID_PACKAGE_1_0_SINGLE_LINE_DESC)

        description = metdata_1._meta_dict["description"]

        assert len(description.splitlines()) == 1
    def test_repeated_description_in_rfc822(self):
        metadata_1 = Metadata.from_rfc822(VALID_PACKAGE_1_0_REPEATED_DESC)
        expected_description = ("# This is the long description\n\n" +
                                "This will overwrite the Description field\n")

        assert metadata_1._meta_dict["description"] == expected_description