A PyQT GUI application for converting InfoLease report outputs into Excel files. Handles parsing and summarizing. Learns where files are meant to be store and compiles monthly and yearly summaries.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
InfoLeaseExtract/venv/Lib/site-packages/pandas/tests/util/test_show_versions.py

103 lines
2.6 KiB

import json
import os
import re
import pytest
from pandas.util._print_versions import (
_get_dependency_info,
_get_sys_info,
)
import pandas as pd
@pytest.mark.filterwarnings(
# openpyxl
"ignore:defusedxml.lxml is no longer supported:DeprecationWarning"
)
@pytest.mark.filterwarnings(
# html5lib
"ignore:Using or importing the ABCs from:DeprecationWarning"
)
@pytest.mark.filterwarnings(
# fastparquet
"ignore:pandas.core.index is deprecated:FutureWarning"
)
@pytest.mark.filterwarnings(
# pandas_datareader
"ignore:pandas.util.testing is deprecated:FutureWarning"
)
@pytest.mark.filterwarnings(
# https://github.com/pandas-dev/pandas/issues/35252
"ignore:Distutils:UserWarning"
)
def test_show_versions(tmpdir):
# GH39701
as_json = os.path.join(tmpdir, "test_output.json")
pd.show_versions(as_json=as_json)
with open(as_json) as fd:
# check if file output is valid JSON, will raise an exception if not
result = json.load(fd)
# Basic check that each version element is found in output
expected = {
"system": _get_sys_info(),
"dependencies": _get_dependency_info(),
}
assert result == expected
def test_show_versions_console_json(capsys):
# GH39701
pd.show_versions(as_json=True)
stdout = capsys.readouterr().out
# check valid json is printed to the console if as_json is True
result = json.loads(stdout)
# Basic check that each version element is found in output
expected = {
"system": _get_sys_info(),
"dependencies": _get_dependency_info(),
}
assert result == expected
def test_show_versions_console(capsys):
# gh-32041
# gh-32041
pd.show_versions(as_json=False)
result = capsys.readouterr().out
# check header
assert "INSTALLED VERSIONS" in result
# check full commit hash
assert re.search(r"commit\s*:\s[0-9a-f]{40}\n", result)
# check required dependency
# 2020-12-09 npdev has "dirty" in the tag
# 2022-05-25 npdev released with RC wo/ "dirty".
# Just ensure we match [0-9]+\..* since npdev version is variable
assert re.search(r"numpy\s*:\s[0-9]+\..*\n", result)
# check optional dependency
assert re.search(r"pyarrow\s*:\s([0-9\.]+|None)\n", result)
def test_json_output_match(capsys, tmpdir):
# GH39701
pd.show_versions(as_json=True)
result_console = capsys.readouterr().out
out_path = os.path.join(tmpdir, "test_json.json")
pd.show_versions(as_json=out_path)
with open(out_path) as out_fd:
result_file = out_fd.read()
assert result_console == result_file