From a5a0975c3f102ccf3ca1756282567e9daebfb24d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Dlouh=C3=BD?= Date: Fri, 23 Sep 2022 19:52:35 +0200 Subject: [PATCH] add simple API test --- categories/api/tests/.test_api.py.swp | Bin 0 -> 16384 bytes categories/api/tests/__init__.py | 0 categories/api/tests/test_api.py | 62 ++++++++++++++++++++++++++ example/rest_urls.py | 8 ++++ example/urls.py | 1 + requirements/test.txt | 4 +- tox.ini | 2 +- 7 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 categories/api/tests/.test_api.py.swp create mode 100644 categories/api/tests/__init__.py create mode 100644 categories/api/tests/test_api.py create mode 100644 example/rest_urls.py diff --git a/categories/api/tests/.test_api.py.swp b/categories/api/tests/.test_api.py.swp new file mode 100644 index 0000000000000000000000000000000000000000..4cb29756f6a66e1a49ee5d9334ec93f13c001d73 GIT binary patch literal 16384 zcmeHNONbmr7_Rt;@sUJSB+03rATx{Eo=rR$0|N;`F~r0KcXKd=wzsEdrgwX~$ExaG z#}JL+#Y@OV$R!>OdJ;s?iypifA16T(<0%Rv<`z*%5G8)qkE!mS-sx2o0$UB=bl3lX z_1E8D)pS=^_x#MU1BZ;=<_y7hFCkZcopxTYUnK8r*+K?XFlnyZByW0|SJBAJlGx-y zI3KWKbHIWwv-`o4?Yqr+kNR!O7G2S7FW7!Jn09PIy8&}4Z)Ohdf!h?63m*MiD4K&| zWy6}F6k6C10f#+XMyK{I&cN&{~hopAhlQq z9tPF}e?XsafcJsZz$3u*+X?v!xB!H}A>c7!3aA6WV?pKX+X(ppI0xwMCQ{(|$+~a% zX?>4Te=-P+fN!FNUAq7wL!v4H(yBK71PmX&pg4nwwkIg_@zskZT;WB@$%K?SWU{fkG`1;sm^%<|;HzMLDr{?! z4wn&?r_9JmUlhzvEl$t%+KkGI$4?+u$Fs%2?o!JMLSN=4lgS$`C+vry#R^D&AbONZ zfq1T3(L7$UA2763tXHs(SL1Gf;8B4S$+cHBPprtPBU@f6K+atVbm}-Ul5J{qBn|me zLMgGH$kqC%yqG`UR(Vv(UNv{M#8W#+oW<&6SBB0Kvd4xoeqyIa%_nJ8RVd~;9wcSQ4pa$0^`QO+r!l9Y4Hr!`~T zlR1mJxf$3P<%7WI)Lh_!-(4Qc-rOSi5EiKYm5SAys>8#hYMSTa-Pt} zEGaISPtDFAv3AYOSkD|(7uB?e(K4cFj^|Qem|ZFwnENOm3ZO8$L>Z@zS~5+;m%`H? z@~SCftyUZ5H;b=^4e1|QQg54f4Eas5CA|&V^3)zOVmY?cqo(6gn>AEqb!1>0Ft=~B z;b_9xN>Ums@g%MGY&46R#Vn?#JoEMGnikXj^IfH77quM$tsPS6n|PCCS4~xgi|p$NIS#vFzk#& z^q5PRWk2%9z9R?Z!G4=l*;z!kfQB$sEE&k^W3YMXFVbN_--tgcH=V#2%$+x7{sy`t zV4_fiY+u11$H4#gFO=-}}q*U%)lsBJd_4fH`0X zunG7H&-e1V|2%LS=mCd;oxlUYH9Xs20zL)a0$v3=z+u1yHUS#|y=eus0$KsBfL1^& zpcT*xXa&}=0`l=Jem_Cvq1=+!5+o`ZM!Lsqh|FR9MqnypVDqyij6|fMb z3h7b0kKPdE3Ym8Z${sD36^fbFf8~)YaQRXxEm}!cyv)LCv@Tfc;hDgh3TnMGdekM+ z+H3rqS;x&TSfa+i^-rib!4)scRuW3Hs;D*5{eL)Din)?Kdet-0sX8#M;8nOYZ-pi^ bCwnt*mnw)A?p5bAYH{@e(}n%G27dnr;jH<| literal 0 HcmV?d00001 diff --git a/categories/api/tests/__init__.py b/categories/api/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/categories/api/tests/test_api.py b/categories/api/tests/test_api.py new file mode 100644 index 0000000..93641c1 --- /dev/null +++ b/categories/api/tests/test_api.py @@ -0,0 +1,62 @@ +# import get_user_model +from django.contrib.auth import get_user_model +from django.core.cache import cache +from django.urls import reverse +from model_bakery import baker +from rest_framework import status +from rest_framework.test import APITestCase + +from categories.models import Category + +User = get_user_model() + + +class MeViewTests(APITestCase): + def setUp(self): + self.user = User.objects.create_superuser("test-user", "foo@bar.baz", "test-password") + self.client.force_authenticate(user=self.user) + + category = Category.tree.create(name="Foo category", slug="foo_category", active=True, order=0, parent=None) + baker.make( + "SimpleText", + primary_category=category, + ) + cache.clear() + + def test_list(self): + """ + Test list + """ + url = reverse("categories-list") + response = self.client.get(url) + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertListEqual( + response.json(), + [ + { + "name": "Foo category", + "slug": "foo_category", + "active": True, + "thumbnail": None, + "thumbnail_width": None, + "thumbnail_height": None, + "order": 0, + "alternate_title": "", + "alternate_url": "", + "description": None, + "meta_keywords": "", + "meta_extra": "", + "children": [], + "flatpage_count": 0, + "flatpage_count_cumulative": 0, + "other_cats_count": 0, + "other_cats_count_cumulative": 0, + "more_cats_count": 0, + "more_cats_count_cumulative": 0, + "simpletext_count": 1, + "simpletext_count_cumulative": 1, + "simpletext_sec_cat_count": 0, + "simpletext_sec_cat_count_cumulative": 0, + } + ], + ) diff --git a/example/rest_urls.py b/example/rest_urls.py new file mode 100644 index 0000000..245c418 --- /dev/null +++ b/example/rest_urls.py @@ -0,0 +1,8 @@ +from rest_framework.routers import DefaultRouter + +from categories.api.urls import router as category_router + +router = DefaultRouter() +router.registry.extend(category_router.registry) + +urlpatterns = router.urls diff --git a/example/urls.py b/example/urls.py index 615b8b7..ba9da05 100644 --- a/example/urls.py +++ b/example/urls.py @@ -28,4 +28,5 @@ urlpatterns = ( # {'document_root': ROOT_PATH + '/editor/media/editor/', # 'show_indexes':True}), re_path(r"^static/(?P.*)$", serve, {"document_root": os.path.join(ROOT_PATH, "example", "static")}), + path("api/", include("example.rest_urls"), name="api"), ) diff --git a/requirements/test.txt b/requirements/test.txt index 4f858b5..cfeac30 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,7 +1,9 @@ -r prod.txt -django<4.0.0 +django +django-rest-framework ghp-import linkify-it-py +model-bakery myst-parser pydata-sphinx-theme Sphinx>=4.3.0 diff --git a/tox.ini b/tox.ini index d4a1840..f51fa6f 100644 --- a/tox.ini +++ b/tox.ini @@ -32,7 +32,7 @@ deps= pillow ipdb codecov - -r{toxinidir}/requirements.txt + -r{toxinidir}/requirements/test.txt commands= coverage erase