Add delete function

This commit is contained in:
Andros Fenollosa 2022-12-14 09:48:24 +01:00
parent ea8807cd36
commit d278077471
4 changed files with 133 additions and 13 deletions

View File

@ -109,14 +109,7 @@ You can be specific by using the `id`.
```python ```python
fiable_db.delete(id=4) fiable_db.delete(id=4)
# {"id": 4, "rev": 6, "table": "default", "data": None} # {"id": 4, "rev": 6, "table": "default", "data": {}}
```
And you can delete by performing a search for their values:
```python
fiable_db.delete(data={"name": "Javier"})
# {"id": 4, "rev": 6, "table": "default", "data": None}
``` ```
### Step 5: Find one ### Step 5: Find one

View File

@ -187,7 +187,7 @@ def update(
return None return None
def delete(id: int, data: dict, table: str = "") -> Type_Delete_Return: def delete(id: int, table: str = "default") -> Type_Delete_Return:
"""Delete data from the database """Delete data from the database
Args: Args:
id (int): The id of the data to delete id (int): The id of the data to delete
@ -196,7 +196,7 @@ def delete(id: int, data: dict, table: str = "") -> Type_Delete_Return:
Returns: Returns:
dict[int, int, dict]: The data deleted dict[int, int, dict]: The data deleted
""" """
print("Function not implemented yet") return update(id=id, new_data={}, table=table, force=True)
def find_one( def find_one(

126
test/test_delete.py Normal file
View File

@ -0,0 +1,126 @@
from fiable_db import start, add, delete, get_database
def test_delete_simple():
"""Test delete in the default table."""
start()
add(
[
{"name": "Noelia", "age": 34, "height": 165},
{"name": "Juan", "age": 41, "height": 187},
{"name": "Valentina", "age": 12, "height": 142},
]
)
delete(1)
assert get_database() == [
{
"id": 1,
"rev": 1,
"table": "default",
"data": {"name": "Noelia", "age": 34, "height": 165},
},
{
"id": 2,
"rev": 1,
"table": "default",
"data": {"name": "Juan", "age": 41, "height": 187},
},
{
"id": 3,
"rev": 1,
"table": "default",
"data": {"name": "Valentina", "age": 12, "height": 142},
},
{"id": 1, "rev": 2, "table": "default", "data": {}},
]
def test_delete_multiple():
"""Test delete two rows"""
start()
add(
[
{"name": "Noelia", "age": 34, "height": 165},
{"name": "Juan", "age": 41, "height": 187},
{"name": "Valentina", "age": 12, "height": 142},
]
)
delete(2)
delete(3)
assert get_database() == [
{
"id": 1,
"rev": 1,
"table": "default",
"data": {"name": "Noelia", "age": 34, "height": 165},
},
{
"id": 2,
"rev": 1,
"table": "default",
"data": {"name": "Juan", "age": 41, "height": 187},
},
{
"id": 3,
"rev": 1,
"table": "default",
"data": {"name": "Valentina", "age": 12, "height": 142},
},
{"id": 2, "rev": 2, "table": "default", "data": {}},
{"id": 3, "rev": 2, "table": "default", "data": {}},
]
def test_delete_with_table():
"""Test delete two rows"""
start()
add(
[
{"name": "Noelia", "age": 34, "height": 165},
{"name": "Juan", "age": 41, "height": 187},
{"name": "Valentina", "age": 12, "height": 142},
],
table="people",
)
add(
[
{"name": "Mortadelo", "age": 22, "height": 184},
{"name": "Filemon", "age": 25, "height": 185},
],
)
delete(2, table="people")
delete(1)
assert get_database() == [
{
"id": 1,
"rev": 1,
"table": "people",
"data": {"name": "Noelia", "age": 34, "height": 165},
},
{
"id": 2,
"rev": 1,
"table": "people",
"data": {"name": "Juan", "age": 41, "height": 187},
},
{
"id": 3,
"rev": 1,
"table": "people",
"data": {"name": "Valentina", "age": 12, "height": 142},
},
{
"id": 1,
"rev": 1,
"table": "default",
"data": {"name": "Mortadelo", "age": 22, "height": 184},
},
{
"id": 2,
"rev": 1,
"table": "default",
"data": {"name": "Filemon", "age": 25, "height": 185},
},
{"id": 2, "rev": 2, "table": "people", "data": {}},
{"id": 1, "rev": 2, "table": "default", "data": {}},
]

View File

@ -1,5 +1,6 @@
* Tasks * Tasks
** IN PROGRESS Test delete ** TODO Test Find one
** TODO Function delete ** TODO Function Find one
** TODO Test Find All
** TODO Function Find All