1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
"""Tests of miscellaneous stuff."""
from __future__ import annotations
import sys
from typing import List, cast
import pytest
import coverage
from coverage import env
from tests.coveragetest import CoverageTest
class SetupPyTest(CoverageTest):
"""Tests of setup.py"""
run_in_temp_dir = False
def setUp(self) -> None:
super().setUp()
# Force the most restrictive interpretation.
self.set_environ('LC_ALL', 'C')
def test_metadata(self) -> None:
status, output = self.run_command_status(
"python setup.py --description --version --url --author",
)
assert status == 0
out = output.splitlines()
assert "measurement" in out[0]
assert coverage.__version__ == out[1]
assert "github.com/nedbat/coveragepy" in out[2]
assert "Ned Batchelder" in out[3]
@pytest.mark.skipif(
env.PYVERSION[3:5] == ("alpha", 0),
reason="don't expect classifiers until labelled builds",
)
def test_more_metadata(self) -> None:
# Let's be sure we pick up our own setup.py
# CoverageTest restores the original sys.path for us.
sys.path.insert(0, '')
from setup import setup_args
classifiers = cast(List[str], setup_args['classifiers'])
assert len(classifiers) > 7
assert classifiers[-1].startswith("Development Status ::")
assert "Programming Language :: Python :: %d" % sys.version_info[:1] in classifiers
assert "Programming Language :: Python :: %d.%d" % sys.version_info[:2] in classifiers
long_description = cast(str, setup_args['long_description']).splitlines()
assert len(long_description) > 7
assert long_description[0].strip() != ""
assert long_description[-1].strip() != ""
|