From 27e20e580da5cca3265075abdee8fe4227dd3d9f Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Tue, 11 Apr 2023 15:24:50 +0000 Subject: automatic import of python-django-fakeredis --- .gitignore | 1 + python-django-fakeredis.spec | 342 +++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 344 insertions(+) create mode 100644 python-django-fakeredis.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..33306c2 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/django-fakeredis-0.1.2.tar.gz diff --git a/python-django-fakeredis.spec b/python-django-fakeredis.spec new file mode 100644 index 0000000..cc8425a --- /dev/null +++ b/python-django-fakeredis.spec @@ -0,0 +1,342 @@ +%global _empty_manifest_terminate_build 0 +Name: python-django-fakeredis +Version: 0.1.2 +Release: 1 +Summary: Easier to use fakeredis in Django. +License: Apache Software License +URL: https://github.com/o3o3o/django-fakeredis +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/76/4a/01fdaec3b03dde52128de835c2ae17f1a130e922d118ed544c9e39ce8bfc/django-fakeredis-0.1.2.tar.gz +BuildArch: noarch + +Requires: python3-fakeredis +Requires: python3-redis +Requires: python3-django-redis + +%description +[![CircleCI](https://circleci.com/gh/o3o3o/django-fakeredis.svg?style=svg)](https://circleci.com/gh/o3o3o/django-fakeredis) + +Easier use [fakeredis](https://pypi.org/project/fakeredis) in Django. + + +### Install + +``` +pip install django-fakeredis +``` + +## Why use it? + +I have experienced many times to find bugs which is caused by mutiple fakeredis instances in tests. +We just want to use fakerredis like redis with one redis-server and different connections and can debug with MONITOR command in redis + +### Features: + +* One fakeredis server with mutiple connections for tests like the way of using redis. +* Combine override settings to Local-memory and fake [get_redis_connection](https://github.com/niwinz/django-redis), [django's cache](https://docs.djangoproject.com/en/2.2/topics/cache/) +* To disable the fake action with passing env: "NOFAKE_REDIS=1" + `NOFAKE_REDIS=1 python manage.py test` + +Before you use `django_fakeredis`, your tests code maybe like that: + +```python +server = fakeredis.FakeServer() +@override_settings(CACHES={"default": {"BACKEND": "django.core.cache.backends.dummy.DummyCache" }}) +@patch('foo.get_redis_connection', fakeredis.FakeRedis(server=server) +def test_sth(): + .... +``` + +Now your can just: +```python +@FakeRedis("yourpath.get_redis_connection") +def test_sth(): + ... +``` + + + +### Usage +```python + +from django_fakeredis import FakeRedis +@FakeRedis("yourpath.get_redis_connection") +def test_foo(): + ... +``` + + +```python +from django_fakeredis import FakeRedis +with FakeRedis("yourpath.get_redis_connection"): + foo() +``` + +```python +from django_fakeredis import FakeRedis +with FakeRedis("yourpath.cache"): + foo() +``` + +#### NOTE + +1. If you want to mock `django.core.cache.cache` with fakeredis, django-fakeredis do nothing but just override CACHE settings into [Local-Memory](https://docs.djangoproject.com/en/2.2/topics/cache/#local-memory-caching) for using the internal cast. So there are two mocked redis instance for django.cache and get_redis_connection . + +If you want to use more redis commands, such as: sets, list..., you may need use [django_redis]((https://github.com/niwinz/django-redis)), and cast the result by hand. + +django.cache: +``` +from django.core.cache import cache +cache.set("key", 2) +assert cache.get("key") == 2 +``` + +you have to cast by hand, when using fakeredis or django_redis directly, you have to cast by hand: + +``` +import fakeredis +con = fakeredis.FakeStrictRedis() +con.set("key", 2) +assert con.get("key").decode('utf8') == "2" +``` + +2. if you have a problem that mock is not worked, you may should to see [where to patch](https://docs.python.org/3/library/unittest.mock.html#where-to-patch) + + + + +%package -n python3-django-fakeredis +Summary: Easier to use fakeredis in Django. +Provides: python-django-fakeredis +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-django-fakeredis +[![CircleCI](https://circleci.com/gh/o3o3o/django-fakeredis.svg?style=svg)](https://circleci.com/gh/o3o3o/django-fakeredis) + +Easier use [fakeredis](https://pypi.org/project/fakeredis) in Django. + + +### Install + +``` +pip install django-fakeredis +``` + +## Why use it? + +I have experienced many times to find bugs which is caused by mutiple fakeredis instances in tests. +We just want to use fakerredis like redis with one redis-server and different connections and can debug with MONITOR command in redis + +### Features: + +* One fakeredis server with mutiple connections for tests like the way of using redis. +* Combine override settings to Local-memory and fake [get_redis_connection](https://github.com/niwinz/django-redis), [django's cache](https://docs.djangoproject.com/en/2.2/topics/cache/) +* To disable the fake action with passing env: "NOFAKE_REDIS=1" + `NOFAKE_REDIS=1 python manage.py test` + +Before you use `django_fakeredis`, your tests code maybe like that: + +```python +server = fakeredis.FakeServer() +@override_settings(CACHES={"default": {"BACKEND": "django.core.cache.backends.dummy.DummyCache" }}) +@patch('foo.get_redis_connection', fakeredis.FakeRedis(server=server) +def test_sth(): + .... +``` + +Now your can just: +```python +@FakeRedis("yourpath.get_redis_connection") +def test_sth(): + ... +``` + + + +### Usage +```python + +from django_fakeredis import FakeRedis +@FakeRedis("yourpath.get_redis_connection") +def test_foo(): + ... +``` + + +```python +from django_fakeredis import FakeRedis +with FakeRedis("yourpath.get_redis_connection"): + foo() +``` + +```python +from django_fakeredis import FakeRedis +with FakeRedis("yourpath.cache"): + foo() +``` + +#### NOTE + +1. If you want to mock `django.core.cache.cache` with fakeredis, django-fakeredis do nothing but just override CACHE settings into [Local-Memory](https://docs.djangoproject.com/en/2.2/topics/cache/#local-memory-caching) for using the internal cast. So there are two mocked redis instance for django.cache and get_redis_connection . + +If you want to use more redis commands, such as: sets, list..., you may need use [django_redis]((https://github.com/niwinz/django-redis)), and cast the result by hand. + +django.cache: +``` +from django.core.cache import cache +cache.set("key", 2) +assert cache.get("key") == 2 +``` + +you have to cast by hand, when using fakeredis or django_redis directly, you have to cast by hand: + +``` +import fakeredis +con = fakeredis.FakeStrictRedis() +con.set("key", 2) +assert con.get("key").decode('utf8') == "2" +``` + +2. if you have a problem that mock is not worked, you may should to see [where to patch](https://docs.python.org/3/library/unittest.mock.html#where-to-patch) + + + + +%package help +Summary: Development documents and examples for django-fakeredis +Provides: python3-django-fakeredis-doc +%description help +[![CircleCI](https://circleci.com/gh/o3o3o/django-fakeredis.svg?style=svg)](https://circleci.com/gh/o3o3o/django-fakeredis) + +Easier use [fakeredis](https://pypi.org/project/fakeredis) in Django. + + +### Install + +``` +pip install django-fakeredis +``` + +## Why use it? + +I have experienced many times to find bugs which is caused by mutiple fakeredis instances in tests. +We just want to use fakerredis like redis with one redis-server and different connections and can debug with MONITOR command in redis + +### Features: + +* One fakeredis server with mutiple connections for tests like the way of using redis. +* Combine override settings to Local-memory and fake [get_redis_connection](https://github.com/niwinz/django-redis), [django's cache](https://docs.djangoproject.com/en/2.2/topics/cache/) +* To disable the fake action with passing env: "NOFAKE_REDIS=1" + `NOFAKE_REDIS=1 python manage.py test` + +Before you use `django_fakeredis`, your tests code maybe like that: + +```python +server = fakeredis.FakeServer() +@override_settings(CACHES={"default": {"BACKEND": "django.core.cache.backends.dummy.DummyCache" }}) +@patch('foo.get_redis_connection', fakeredis.FakeRedis(server=server) +def test_sth(): + .... +``` + +Now your can just: +```python +@FakeRedis("yourpath.get_redis_connection") +def test_sth(): + ... +``` + + + +### Usage +```python + +from django_fakeredis import FakeRedis +@FakeRedis("yourpath.get_redis_connection") +def test_foo(): + ... +``` + + +```python +from django_fakeredis import FakeRedis +with FakeRedis("yourpath.get_redis_connection"): + foo() +``` + +```python +from django_fakeredis import FakeRedis +with FakeRedis("yourpath.cache"): + foo() +``` + +#### NOTE + +1. If you want to mock `django.core.cache.cache` with fakeredis, django-fakeredis do nothing but just override CACHE settings into [Local-Memory](https://docs.djangoproject.com/en/2.2/topics/cache/#local-memory-caching) for using the internal cast. So there are two mocked redis instance for django.cache and get_redis_connection . + +If you want to use more redis commands, such as: sets, list..., you may need use [django_redis]((https://github.com/niwinz/django-redis)), and cast the result by hand. + +django.cache: +``` +from django.core.cache import cache +cache.set("key", 2) +assert cache.get("key") == 2 +``` + +you have to cast by hand, when using fakeredis or django_redis directly, you have to cast by hand: + +``` +import fakeredis +con = fakeredis.FakeStrictRedis() +con.set("key", 2) +assert con.get("key").decode('utf8') == "2" +``` + +2. if you have a problem that mock is not worked, you may should to see [where to patch](https://docs.python.org/3/library/unittest.mock.html#where-to-patch) + + + + +%prep +%autosetup -n django-fakeredis-0.1.2 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-django-fakeredis -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot - 0.1.2-1 +- Package Spec generated diff --git a/sources b/sources new file mode 100644 index 0000000..a12f5a2 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +e77350b283b8b1a1a0af1a24e47f07b3 django-fakeredis-0.1.2.tar.gz -- cgit v1.2.3