File: test_versions.py

package info (click to toggle)
python-consolekit 1.7.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,152 kB
  • sloc: python: 2,835; makefile: 8
file content (66 lines) | stat: -rw-r--r-- 2,070 bytes parent folder | download
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
61
62
63
64
65
66
# stdlib
import sys

# this package
from consolekit import click_command
from consolekit.options import version_option
from consolekit.testing import CliRunner
from consolekit.versions import get_formatted_versions, get_version_callback


def test_get_formatted_versions():
	dependencies = ["click", "deprecation-alias", "domdf-python-tools", "mistletoe", "typing-extensions"]

	sl = get_formatted_versions(dependencies)
	for line, dep in zip(sl, dependencies):
		assert line.startswith(f"{dep}:")
	assert sl[-2].startswith("Python: 3.")

	sl = get_formatted_versions(dependencies, show_platform=False)
	for line, dep in zip(sl, [*dependencies]):
		assert line.startswith(f"{dep}:")
	assert sl[-1].startswith("Python: 3.")

	sl = get_formatted_versions(dependencies, show_python=False)
	assert len(sl) == len(dependencies) + 1

	sl = get_formatted_versions(dependencies, show_python=False, show_platform=False)
	assert len(sl) == len(dependencies)

	sl = get_formatted_versions({
			"click": "pkg1",
			"deprecation-alias": "pkg2",
			"domdf-python-tools": "pkg3",
			"mistletoe": "pkg4",
			"typing-extensions": "pkg5"
			})
	for line, name in zip(sl, ["pkg1", "pkg2", "pkg3", "pkg4", "pkg5"]):
		assert line.startswith(f"{name}:")
	assert sl[-2].startswith("Python: 3.")


def test_version_callback(cli_runner: CliRunner):

	@version_option(
			get_version_callback(
					"1.2.3",
					"my-tool",
					["click", "deprecation-alias", "domdf-python-tools", "mistletoe", "typing-extensions"]
					)
			)
	@click_command()
	def main() -> None:
		sys.exit(1)

	result = cli_runner.invoke(main, args="--version")
	assert result.stdout.rstrip() == "my-tool version 1.2.3"
	assert result.exit_code == 0

	result = cli_runner.invoke(main, args=["--version", "--version"])
	assert result.stdout.startswith("my-tool version 1.2.3, Python 3.")
	assert result.exit_code == 0

	result = cli_runner.invoke(main, args=["--version", "--version", "--version"])
	print(result.stdout)
	assert result.stdout.startswith("my-tool\n  Version: 1.2.3\n  click: ")
	assert result.exit_code == 0