mirror of
https://github.com/ManiMatter/decluttarr.git
synced 2026-04-18 13:54:01 +02:00
Added black as pre-commit and applied it.
This commit is contained in:
@@ -5,49 +5,148 @@ from src.utils.nest_functions import nested_set, add_keys_nested_dict, nested_ge
|
||||
# import asyncio
|
||||
|
||||
# Dictionary that is modified / queried as part of tests
|
||||
input_dict = { 1: {'name': 'Breaking Bad 1', 'data': {'episodes': 3, 'year': 1991, 'actors': ['Peter', 'Paul', 'Ppacey']}},
|
||||
2: {'name': 'Breaking Bad 2', 'data': {'episodes': 6, 'year': 1992, 'actors': ['Weter', 'Waul', 'Wpacey']}},
|
||||
3: {'name': 'Breaking Bad 3', 'data': {'episodes': 9, 'year': 1993, 'actors': ['Zeter', 'Zaul', 'Zpacey']}}}
|
||||
input_dict = {
|
||||
1: {
|
||||
"name": "Breaking Bad 1",
|
||||
"data": {"episodes": 3, "year": 1991, "actors": ["Peter", "Paul", "Ppacey"]},
|
||||
},
|
||||
2: {
|
||||
"name": "Breaking Bad 2",
|
||||
"data": {"episodes": 6, "year": 1992, "actors": ["Weter", "Waul", "Wpacey"]},
|
||||
},
|
||||
3: {
|
||||
"name": "Breaking Bad 3",
|
||||
"data": {"episodes": 9, "year": 1993, "actors": ["Zeter", "Zaul", "Zpacey"]},
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
# @pytest.mark.asyncio
|
||||
# async def test_nested_set():
|
||||
def test_nested_set():
|
||||
expected_output = { 1: {'name': 'Breaking Bad 1', 'data': {'episodes': 3, 'year': 1991, 'actors': ['Peter', 'Paul', 'Ppacey']}},
|
||||
2: {'name': 'Breaking Bad 2', 'data': {'episodes': 6, 'year': 1994, 'actors': ['Weter', 'Waul', 'Wpacey']}},
|
||||
3: {'name': 'Breaking Bad 3', 'data': {'episodes': 9, 'year': 1993, 'actors': ['Zeter', 'Zaul', 'Zpacey']}}}
|
||||
expected_output = {
|
||||
1: {
|
||||
"name": "Breaking Bad 1",
|
||||
"data": {
|
||||
"episodes": 3,
|
||||
"year": 1991,
|
||||
"actors": ["Peter", "Paul", "Ppacey"],
|
||||
},
|
||||
},
|
||||
2: {
|
||||
"name": "Breaking Bad 2",
|
||||
"data": {
|
||||
"episodes": 6,
|
||||
"year": 1994,
|
||||
"actors": ["Weter", "Waul", "Wpacey"],
|
||||
},
|
||||
},
|
||||
3: {
|
||||
"name": "Breaking Bad 3",
|
||||
"data": {
|
||||
"episodes": 9,
|
||||
"year": 1993,
|
||||
"actors": ["Zeter", "Zaul", "Zpacey"],
|
||||
},
|
||||
},
|
||||
}
|
||||
output = input_dict
|
||||
# await nested_set(output, [2, 'data' ,'year'], 1994)
|
||||
nested_set(output, [2, 'data' ,'year'], 1994)
|
||||
nested_set(output, [2, "data", "year"], 1994)
|
||||
assert expected_output == output
|
||||
|
||||
|
||||
def test_nested_set_conditions():
|
||||
input = { 1: [{'year': 2001, 'rating': 'high'}, {'year': 2002, 'rating': 'high'}, {'year': 2003, 'rating': 'high'}],
|
||||
2: [{'year': 2001, 'rating': 'high'}, {'year': 2002, 'rating': 'high'}, {'year': 2003, 'rating': 'high'}]}
|
||||
expected_output = { 1: [{'year': 2001, 'rating': 'high'}, {'year': 2002, 'rating': 'high'}, {'year': 2003, 'rating': 'high'}],
|
||||
2: [{'year': 2001, 'rating': 'high'}, {'year': 2002, 'rating': 'high'}, {'year': 2003, 'rating': 'LOW'}]}
|
||||
input = {
|
||||
1: [
|
||||
{"year": 2001, "rating": "high"},
|
||||
{"year": 2002, "rating": "high"},
|
||||
{"year": 2003, "rating": "high"},
|
||||
],
|
||||
2: [
|
||||
{"year": 2001, "rating": "high"},
|
||||
{"year": 2002, "rating": "high"},
|
||||
{"year": 2003, "rating": "high"},
|
||||
],
|
||||
}
|
||||
expected_output = {
|
||||
1: [
|
||||
{"year": 2001, "rating": "high"},
|
||||
{"year": 2002, "rating": "high"},
|
||||
{"year": 2003, "rating": "high"},
|
||||
],
|
||||
2: [
|
||||
{"year": 2001, "rating": "high"},
|
||||
{"year": 2002, "rating": "high"},
|
||||
{"year": 2003, "rating": "LOW"},
|
||||
],
|
||||
}
|
||||
output = input
|
||||
nested_set(output, [2, 'rating'], 'LOW', {'year': 2003})
|
||||
nested_set(output, [2, "rating"], "LOW", {"year": 2003})
|
||||
assert expected_output == output
|
||||
|
||||
|
||||
def test_nested_set_conditions_multiple():
|
||||
input = { 1: [{'rating': 'high', 'color': 1, 'stack': 1}, {'rating': 'high', 'color': 2, 'stack': 2}, {'rating': 'high', 'color': 2, 'stack': 1}]}
|
||||
expected_output = { 1: [{'rating': 'high', 'color': 1, 'stack': 1}, {'rating': 'high', 'color': 2, 'stack': 2}, {'rating': 'LOW', 'color': 2, 'stack': 1}]}
|
||||
input = {
|
||||
1: [
|
||||
{"rating": "high", "color": 1, "stack": 1},
|
||||
{"rating": "high", "color": 2, "stack": 2},
|
||||
{"rating": "high", "color": 2, "stack": 1},
|
||||
]
|
||||
}
|
||||
expected_output = {
|
||||
1: [
|
||||
{"rating": "high", "color": 1, "stack": 1},
|
||||
{"rating": "high", "color": 2, "stack": 2},
|
||||
{"rating": "LOW", "color": 2, "stack": 1},
|
||||
]
|
||||
}
|
||||
output = input
|
||||
nested_set(output, [1, 'rating'], 'LOW', {'color': 2, 'stack': 1})
|
||||
nested_set(output, [1, "rating"], "LOW", {"color": 2, "stack": 1})
|
||||
assert expected_output == output
|
||||
|
||||
|
||||
def test_add_keys_nested_dict():
|
||||
expected_output = { 1: {'name': 'Breaking Bad 1', 'data': {'episodes': 3, 'year': 1991, 'actors': ['Peter', 'Paul', 'Ppacey']}},
|
||||
2: {'name': 'Breaking Bad 2', 'data': {'episodes': 6, 'year': 1994, 'actors': ['Weter', 'Waul', 'Wpacey'], 'spaceship': True}},
|
||||
3: {'name': 'Breaking Bad 3', 'data': {'episodes': 9, 'year': 1993, 'actors': ['Zeter', 'Zaul', 'Zpacey']}}}
|
||||
expected_output = {
|
||||
1: {
|
||||
"name": "Breaking Bad 1",
|
||||
"data": {
|
||||
"episodes": 3,
|
||||
"year": 1991,
|
||||
"actors": ["Peter", "Paul", "Ppacey"],
|
||||
},
|
||||
},
|
||||
2: {
|
||||
"name": "Breaking Bad 2",
|
||||
"data": {
|
||||
"episodes": 6,
|
||||
"year": 1994,
|
||||
"actors": ["Weter", "Waul", "Wpacey"],
|
||||
"spaceship": True,
|
||||
},
|
||||
},
|
||||
3: {
|
||||
"name": "Breaking Bad 3",
|
||||
"data": {
|
||||
"episodes": 9,
|
||||
"year": 1993,
|
||||
"actors": ["Zeter", "Zaul", "Zpacey"],
|
||||
},
|
||||
},
|
||||
}
|
||||
output = input_dict
|
||||
add_keys_nested_dict(output, [2, 'data' ,'spaceship'], True)
|
||||
add_keys_nested_dict(output, [2, "data", "spaceship"], True)
|
||||
assert expected_output == output
|
||||
|
||||
|
||||
def test_nested_get():
|
||||
input = { 1: [{'name': 'A', 'color': 1, 'stack': 1}, {'name': 'B', 'color': 2, 'stack': 2}, {'name': 'C', 'color': 2, 'stack': 1}]}
|
||||
expected_output = ['C']
|
||||
output = nested_get(input[1], 'name', {'color': 2, 'stack': 1})
|
||||
input = {
|
||||
1: [
|
||||
{"name": "A", "color": 1, "stack": 1},
|
||||
{"name": "B", "color": 2, "stack": 2},
|
||||
{"name": "C", "color": 2, "stack": 1},
|
||||
]
|
||||
}
|
||||
expected_output = ["C"]
|
||||
output = nested_get(input[1], "name", {"color": 2, "stack": 1})
|
||||
assert expected_output == output
|
||||
|
||||
|
||||
Reference in New Issue
Block a user