mirror of
https://github.com/simonw/sqlite-utils.git
synced 2026-07-24 01:44:31 +02:00
Tests for --common-limit, --no-most, --no-least, refs #544
This commit is contained in:
parent
9f23e68cf0
commit
2eca17d46e
1 changed files with 60 additions and 0 deletions
|
|
@ -24,6 +24,28 @@ def db_to_analyze(fresh_db):
|
|||
return fresh_db
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def big_db_to_analyze_path(tmpdir):
|
||||
path = str(tmpdir / "test.db")
|
||||
db = Database(path)
|
||||
categories = {
|
||||
"A": 40,
|
||||
"B": 30,
|
||||
"C": 20,
|
||||
"D": 10,
|
||||
}
|
||||
to_insert = []
|
||||
for category, count in categories.items():
|
||||
for _ in range(count):
|
||||
to_insert.append(
|
||||
{
|
||||
"category": category,
|
||||
}
|
||||
)
|
||||
db["stuff"].insert_all(to_insert)
|
||||
return path
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"column,extra_kwargs,expected",
|
||||
[
|
||||
|
|
@ -197,3 +219,41 @@ def test_analyze_table_save(db_to_analyze_path):
|
|||
"least_common": None,
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"no_most,no_least",
|
||||
(
|
||||
(False, False),
|
||||
(True, False),
|
||||
(False, True),
|
||||
(True, True),
|
||||
),
|
||||
)
|
||||
def test_analyze_table_save_no_most_no_least_options(
|
||||
no_most, no_least, big_db_to_analyze_path
|
||||
):
|
||||
args = ["analyze-tables", big_db_to_analyze_path, "--save", "--common-limit", "2"]
|
||||
if no_most:
|
||||
args.append("--no-most")
|
||||
if no_least:
|
||||
args.append("--no-least")
|
||||
result = CliRunner().invoke(cli.cli, args)
|
||||
assert result.exit_code == 0
|
||||
rows = list(Database(big_db_to_analyze_path)["_analyze_tables_"].rows)
|
||||
expected = {
|
||||
"table": "stuff",
|
||||
"column": "category",
|
||||
"total_rows": 100,
|
||||
"num_null": 0,
|
||||
"num_blank": 0,
|
||||
"num_distinct": 4,
|
||||
"most_common": None,
|
||||
"least_common": None,
|
||||
}
|
||||
if not no_most:
|
||||
expected["most_common"] = '[["A", 40], ["B", 30]]'
|
||||
if not no_least:
|
||||
expected["least_common"] = '[["D", 10], ["C", 20]]'
|
||||
|
||||
assert rows == [expected]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue