Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds doctest examples for the hash tutorial #2821

Merged
merged 7 commits into from
Jul 4, 2023
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions doctests/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ Examples are standalone python scripts, committed to the *doctests* directory. T
```requirements.txt``` and ```dev_requirements.txt``` from this repository have been installed, as per below.

```bash
pip install requirements.txt
pip install dev_requirements.txt
pip install -r requirements.txt
pip install -r dev_requirements.txt
```

Note - the CI process, runs the basic ```black``` and ```isort``` linters against the examples. Assuming
Expand Down
91 changes: 91 additions & 0 deletions doctests/dt_hash.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
# EXAMPLE: hash_tutorial
# HIDE_START
import redis

r = redis.Redis(decode_responses=True)
# HIDE_END
# STEP_START set_get_all
res1 = r.hset(
"bike:1",
mapping={
"model": "Deimos",
"brand": "Ergonom",
"type": "Enduro bikes",
"price": 4972,
},
)
print(res1) # 4

res2 = r.hget("bike:1", "model")
print(res2) # 'Deimos'

res3 = r.hget("bike:1", "price")
print(res3) # '4972'

res4 = r.hgetall("bike:1")
print(
elena-kolevska marked this conversation as resolved.
Show resolved Hide resolved
res4
) # {'model': 'Deimos', 'brand': 'Ergonom', 'type': 'Enduro bikes', 'price': '4972'}

# STEP_END

# REMOVE_START
assert res1 == 4
assert res2 == "Deimos"
assert res3 == "4972"
assert res4 == {
"model": "Deimos",
"brand": "Ergonom",
"type": "Enduro bikes",
"price": "4972",
}
# REMOVE_END

# STEP_START hmget
res5 = r.hmget("bike:1", ["model", "price"])
print(res5) # ['Deimos', '4972']
# STEP_END

# REMOVE_START
assert res5 == ["Deimos", "4972"]
# REMOVE_END

# STEP_START hincrby
res6 = r.hincrby("bike:1", "price", 100)
print(res6) # 5072
res7 = r.hincrby("bike:1", "price", -100)
print(res7) # 4972
# STEP_END

# REMOVE_START
assert res6 == 5072
assert res7 == 4972
# REMOVE_END


# STEP_START incrby_get_mget
res11 = r.hincrby("bike:1:stats", "rides", 1)
print(res11) # 1
res12 = r.hincrby("bike:1:stats", "rides", 1)
print(res12) # 2
res13 = r.hincrby("bike:1:stats", "rides", 1)
print(res13) # 3
res14 = r.hincrby("bike:1:stats", "crashes", 1)
print(res14) # 1
res15 = r.hincrby("bike:1:stats", "owners", 1)
print(res15) # 1
res16 = r.hget("bike:1:stats", "rides")
print(res16) # 3
res17 = r.hmget("bike:1:stats", ["crashes", "owners"])
print(res17) # ['1', '1']
# STEP_END

# REMOVE_START
assert res11 == 1
assert res12 == 2
assert res13 == 3
assert res14 == 1
assert res15 == 1
assert res16 == "3"
assert res17 == ["1", "1"]
# REMOVE_END