Skip to content

if no results, expecting an empty list #38

@wasperen2

Description

@wasperen2

Describe the bug
When doing a .select(ids=[...]), for an _id that does not exist, one would expect an empty list rather than None

To Reproduce

import uuid
from typing import Optional

from pydantic import Field
from pydantic_redis import Store, RedisConfig, Model


class SomeModel(Model):
    _primary_key_field = "id"
    id: str = Field(
        default_factory=lambda: uuid.uuid4().hex,
    )
    name: str = Field()


store = Store(
    name="none should return a list too",
    redis_config=RedisConfig(host='localhost', port=6379, db=6)
)

store.register_model(SomeModel)

parent = SomeModel(name="bong bing")

SomeModel.insert(parent)

models_received = SomeModel.select(ids=["some none existing id"])
print(models_received)
assert isinstance(models_received, list)

Expected behavior
One would expect this assertion to pass. Instead, we get:

    assert isinstance(models_received, list)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError
None

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions