Beispiel #1
0
    def test_metadata_text_generation(self, full_usage):
        # Order of the header lines is NOT tested (order in payload - is)
        expected_headers = dedent("""\
            Metadata-Version: 2.1
            Name: package-name
            Version: 1.2.3
            Platform: SomeOS
            Platform: SomeOtherOS
            Supported-Platform: some-architecture-128
            Supported-Platform: my-mips-21
            Summary: this is a test
            Description-Content-Type: text/plain
            Keywords: test,unittests,package,wheelfile
            License: May be distributed only if this test succeeds
            Home-page: http://example.com/package-name/1.2.3
            Download-URL: http://example.com/package-name/1.2.3/download
            Author: MrMino
            Author-email: [email protected]
            Maintainer: NotMrMino
            Maintainer-email: [email protected]
            Classifier: Topic :: Software Development :: Testing
            Classifier: Framework :: Pytest
            Requires-Dist: wheelfile[metadata]~=1.0
            Requires-Dist: paramiko
            Requires-Python: ~=3.6
            Requires-External: vim
            Requires-External: zsh
            Project-URL: Details: http://example.com/package-name/
            Provides-Extra: metadata
            Provides-Dist: wheel_packaging
            Obsoletes-Dist: wheel
        """).splitlines()
        expected_payload = dedent("""\


            Some

            Long

            Description
        """).splitlines()

        lines = str(MetaData(**full_usage)).splitlines()
        header_end_idx = lines.index('')
        headers = lines[:header_end_idx]
        payload = lines[header_end_idx:]
        assert set(headers) == set(expected_headers)
        assert payload == expected_payload
Beispiel #2
0
 def test_keywords_is_not_multiple_use(self):
     assert not MetaData.field_is_multiple_use('keywords')
Beispiel #3
0
 def test_plural_fields_except_keywords_show_up_as_multiple_use(
         self, field):
     assert MetaData.field_is_multiple_use(field)
Beispiel #4
0
 def test_to_and_fro_str_objects_are_equal(self, metadata):
     assert metadata == MetaData.from_str(str(metadata))
Beispiel #5
0
 def test_basic_from_str(self, metadata):
     assert str(MetaData.from_str(str(metadata))) == str(metadata)
Beispiel #6
0
 def test_basic_eq(self):
     args = {'name': 'x', 'version': '1'}
     assert MetaData(**args) == MetaData(**args)
Beispiel #7
0
 def metadata(self):
     return MetaData(name='my-package', version='1.2.3')
Beispiel #8
0
 def test_only_name_and_version_is_required(self):
     md = MetaData(name='my-package', version='1.2.3')
     assert md.name == 'my-package' and str(md.version) == '1.2.3'
Beispiel #9
0
 def test_keywords_param_accepts_list(self):
     metadata = MetaData(name='name',
                         version='1.2.3',
                         keywords=['a', 'b', 'c'])
     assert metadata.keywords == ['a', 'b', 'c']
Beispiel #10
0
 def test_keywords_param_accepts_comma_separated_str(self):
     metadata = MetaData(name='name', version='1.2.3', keywords='a,b,c')
     assert metadata.keywords == ['a', 'b', 'c']
Beispiel #11
0
 def test_full_usage_from_str_eqs_by_obj(self, full_usage):
     md = MetaData(**full_usage)
     fs = MetaData.from_str(str(md))
     assert fs == md
Beispiel #12
0
 def test_full_usage_from_str_eqs_by_str(self, full_usage):
     md = MetaData(**full_usage)
     fs = MetaData.from_str(str(md))
     assert str(fs) == str(md)
Beispiel #13
0
 def test_params_are_memorized(self, full_usage):
     md = MetaData(**full_usage)
     for field, value in full_usage.items():
         assert getattr(md, field) == value