Skip to content

Add a testing option to use fakeredis #55

Open

Description

@moritz89

When writing unit tests it would be useful to have an option to use fakeredis instead of a real redis server. Are there any accepted methods that I am missing or would it make sense to integrate it directly into this library?

One approach is described by python-rq but I am not sure how to best integrate it.

For context, I am using Flask-base and would like to test the registration aspect, which creates a queue event but fails since there is no running redis server.

Activity

  1. jezdez commented on Mar 26, 2018

    @jezdez
    Contributor

    There is a class attribute called connection_class that is used in the RQ._connect method to create the Redis client. Since fakeredis supports the from_url API it should be enough to subclass the RQ class and overwrite connection_class with the dotted path to the fakeredis client class.

  2. moritz89 commented on Mar 26, 2018

    @moritz89
    ContributorAuthor
  3. jezdez commented on Mar 26, 2018

    @jezdez
    Contributor

    Would make sense to add a testing section to the docs. Mind opening a PR?

  4. moritz89 commented on Mar 27, 2018

    @moritz89
    ContributorAuthor

    Check that 👍🏼

  5. moritz89 commented on Mar 29, 2018

    @moritz89
    ContributorAuthor

    It was actually much simpler than that, just set RQ_CONNECTION_CLASS = 'fakeredis.FakeStrictRedis' when setting the config variables. The relevant sections are:

    class Config:
        APP_NAME = os.environ.get('APP_NAME')
        RQ_CONNECTION_CLASS = 'fakeredis.FakeStrictRedis'
    
    rq = RQ()
    
    def create_app(config_name):
        app = Flask(__name__)
        app.config.from_object(config[config_name])
        rq.init_app(app)
    

    Where and how would it make sense to add the documentation? I would add a section in https://github.com/rq/Flask-RQ2/blob/master/docs/index.rst

  6. jezdez commented on Sep 19, 2018

    @jezdez
    Contributor

    @moritz89 Yeah, adding something to docs/index.rst makes sense to me, as a "Testing" section?

  7. moritz89 commented on Sep 19, 2018

    @moritz89
    ContributorAuthor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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