summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-django-fakeredis.spec342
-rw-r--r--sources1
3 files changed, 344 insertions, 0 deletions
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 <Python_Bot@openeuler.org> - 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