From b006b93edeabb47149944085334b348570512d5d Mon Sep 17 00:00:00 2001 From: christian Date: Wed, 5 Aug 2020 20:40:19 +0200 Subject: [PATCH 1/4] Change test_settings, add tests for photograph/forms.py. --- .../tests/conftest_files/100x100_test_img.png | Bin 0 -> 1343 bytes .../tests/conftest_files/general_conftest.py | 47 ++++++++++++++++++ .../tests/conftest_files/test_mp3_file.mp3 | Bin 0 -> 60639 bytes solid_backend/photograph/tests/test_forms.py | 24 +++++++++ test_settings.py | 14 ++++-- 5 files changed, 80 insertions(+), 5 deletions(-) create mode 100644 solid_backend/photograph/tests/conftest_files/100x100_test_img.png create mode 100644 solid_backend/photograph/tests/conftest_files/test_mp3_file.mp3 create mode 100644 solid_backend/photograph/tests/test_forms.py diff --git a/solid_backend/photograph/tests/conftest_files/100x100_test_img.png b/solid_backend/photograph/tests/conftest_files/100x100_test_img.png new file mode 100644 index 0000000000000000000000000000000000000000..40a6b07223a9cc74635eacb78c30b9cf6d783fa8 GIT binary patch literal 1343 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 literal 0 HcmV?d00001 diff --git a/solid_backend/photograph/tests/test_forms.py b/solid_backend/photograph/tests/test_forms.py new file mode 100644 index 00000000..bcca554c --- /dev/null +++ b/solid_backend/photograph/tests/test_forms.py @@ -0,0 +1,24 @@ +import pytest + + +class TestPhotographModelForm: + @pytest.mark.django_db + def test_audio_file_duration(self, photograph_object): + assert photograph_object.audio_duration == 2.0 + + @pytest.mark.django_db + def test_scale_factor_calculation(self, photograph_object): + + assert photograph_object.img_original_scale == 5e-4 + + @pytest.mark.django_db + def test_delete_scale_factor( + self, valid_photograph_data, photograph_object, photograph_admin_form + ): + valid_photograph_data["pixel_number"] = 0 + form = photograph_admin_form(valid_photograph_data, instance=photograph_object) + form.is_valid() + print(form.errors) + instance = form.save() + + assert instance.img_original_scale == None diff --git a/test_settings.py b/test_settings.py index 1348dc63..19badb21 100644 --- a/test_settings.py +++ b/test_settings.py @@ -71,10 +71,14 @@ # ------------------------------------------------------------------------------ # See: https://docs.djangoproject.com/en/dev/ref/settings/#databases DATABASES = { - # Raises ImproperlyConfigured exception if DATABASE_URL not in os.environ - "default": env.db( - "DATABASE_URL", default="postgres://postgres@localhost:5432/postgres" - ), + "default": { + "ENGINE": "django.db.backends.postgresql_psycopg2", + "NAME": "local_db", + "USER": "localuser", + "PASSWORD": "localpass", + "HOST": "localhost", + "PORT": "", + } } DATABASES["default"]["ATOMIC_REQUESTS"] = True @@ -106,7 +110,7 @@ # MEDIA CONFIGURATION # ------------------------------------------------------------------------------ # See: https://docs.djangoproject.com/en/dev/ref/settings/#media-root -MEDIA_ROOT = "/media" +MEDIA_ROOT = "./media" # See: https://docs.djangoproject.com/en/dev/ref/settings/#media-url MEDIA_URL = "/media/" From 9e90781c41a4be96cbe2896fd9428b516e31717b Mon Sep 17 00:00:00 2001 From: christian Date: Wed, 5 Aug 2020 20:46:35 +0200 Subject: [PATCH 2/4] Fix travis issue. --- .travis.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5a1f4f17..f3cc0c71 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,8 +20,9 @@ jobs: - stage: "Unit tests and linting" name: "Unit tests with Python 3.7" before_script: - - psql -c "CREATE DATABASE test_db_app;" -U postgres - - psql -c "CREATE USER db_user WITH PASSWORD 'db_pass';" -U postgres + - psql -c "CREATE DATABASE local_db;" -U postgres + - psql -c "CREATE USER localuser WITH PASSWORD 'localpass';" -U postgres + - psql -c "ALTER USER localuser CREATEDB;" script: make ci after_success: codecov - name: "Formatting with black" From 7233203e63f5a480c5bfa34158fb596d27a41631 Mon Sep 17 00:00:00 2001 From: christian Date: Wed, 5 Aug 2020 20:59:59 +0200 Subject: [PATCH 3/4] Isort. --- .coveragerc | 2 +- solid_backend/photograph/forms.py | 4 +- .../tests/conftest_files/100x100_test_img.jpg | Bin 0 -> 3258 bytes .../tests/conftest_files/100x100_test_img.png | Bin 1343 -> 0 bytes .../tests/conftest_files/general_conftest.py | 14 +++-- solid_backend/photograph/tests/test_forms.py | 48 ++++++++++++++++-- 6 files changed, 58 insertions(+), 10 deletions(-) create mode 100644 solid_backend/photograph/tests/conftest_files/100x100_test_img.jpg delete mode 100644 solid_backend/photograph/tests/conftest_files/100x100_test_img.png diff --git a/.coveragerc b/.coveragerc index 90c8c7c4..04df1ec9 100644 --- a/.coveragerc +++ b/.coveragerc @@ -1,5 +1,5 @@ [run] include = contact/*, content/*, glossary/*, message/*, photograph/*, quiz/*, slideshow/* -omit = *migrations*, */tests/*, .*, *config*, manage.py, some/, dist/, sample_project/ +omit = *migrations*, */tests/*, .*, *config*, manage.py, some/, dist/, sample_project/*, cov_html/* plugins = django_coverage_plugin diff --git a/solid_backend/photograph/forms.py b/solid_backend/photograph/forms.py index e2ea8427..b9fb2f6d 100644 --- a/solid_backend/photograph/forms.py +++ b/solid_backend/photograph/forms.py @@ -1,8 +1,6 @@ from django import forms from mutagen import File -from .models import Photograph - class PhotographForm(forms.ModelForm): """ @@ -41,7 +39,7 @@ def save(self, commit=True): pixel_number = self.cleaned_data.get("pixel_number") instance = super(PhotographForm, self).save(commit=False) - + print(instance.audio) if length_value and pixel_number: instance.img_original_scale = length_value * length_unit / pixel_number diff --git a/solid_backend/photograph/tests/conftest_files/100x100_test_img.jpg b/solid_backend/photograph/tests/conftest_files/100x100_test_img.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f8be98d1162cab26d8bd3b609aa540b90c418faa GIT binary patch literal 3258 zcmeHJX>e0j6h8OuNnYBdeJP;^o3<%!nbJwplrHMjwzM@&8Pm`rsH0}-<}{@wtwl#? z0Fi>fK$PtdEvUHt5S60-0<7zdGa?EtIBF5s@du0GHq7(fmoAxNi`Ad@ym#k*@7#0F zJ>PjRxknvVzXsE?T5l~7!hj7gP)Eh}HS5}20KDEsAOU~?>4XP@XeExD#_)ZJ^9ZZy zS;Q_3V8j_6!HrnKxf@4&AE()DLA)172?N^N_*~~*?z6iKUCu(c6Fr@7XSuVq+~u^p zT;;`O<;BJ5P5R^e&>W~>RwN#kh9(J^!Hj4&RL_oOC*Y%yfGr7G6DA%+NP-{=yd;XEPABPQ#V8vL^8A$4WMx5m#?1@TZ8p23FxQ?{kZrT& zmE;#VT^^4oBe(3fQunQeMIJW|LUcNvY>=%+qt%^h%XH6L)T3aQXihB20>(^OGf{^i z1M}pGCUGkG%&;6Uh>}ikK!d|3z)GWzU*suXQc_x0UcI!Yw(bt^vK5U@EALvh`tDG; zxuvzO{lQpw&qKZI9)9HUO;2p@+p_h^r*=I3%+6iA_w3z&;MwP%Kls9nFTM8q8;1vv zy!qDK$KM%x_r3Q&`0%4oPk#3Ksnf$FXGYI`bN<`!zW?FJpDtdy{L7WAzy9|7ACwp6 zIWBQ#Q+Sz?7sGKZCsJO7>7~TY9G~eDQYst7z}nO-_XbI++CFgTm@d1>f58%rp3tW` zJfk@mDK(ARKO?sBUoo2?Hp%M@$SlE^$C{x6UanD^prJ;Y8*??7`v(4h-vCiZ)N{ zM>={iH%%x*xw*4x16*U}y@Ke~ z4k7ed3Tq$&0nH!iJ3t$h$=b$Rirkut$W;LRm#TU>2SD5baBZ8a{yCtk*Y;y?@&&-r z&Po3@{Q#v`P`_ZkQXEW^+ng~OYdXlKFe zMNyDsy(}B_27@sv#bit}Cm9T;G?O`1u~;l}@;qyrVogyjiq;RY=)>_kp4TZxgHf5a zsK>D%f-r zaB^>EX>4U6ba`-PAZ2)IW&i+q+U=HGlH4E+MgLhvmVhLL#Bwm0s_Y=k&jmlGduH;g zq$)pc%0LSc@;x%{uz&kH!WUdratuk$bICd4N+lJp=y*J?vTBNH)$7XX9HVD@xCa;} zK`X~ktLOX*yS^>B_Mq+A9{e0(KOLO|mqVF5Gdle-NZ9$X(-}x8`x$a^dkl5sqit8j z{&tHk*SC}TJ3JbaL8Y#kCCs~!MAR&21ajOJx35|;k5(UbK$GC{hy;Q>J>J#E_$bhm z$X74CSO4z46QAp8mv>s`QzLXf9U%Q&{3Y?j#&So*&jZGntB)d&(S3~lc)FT06wPNw z#c-)J*I?oX$z?6eD27|nw^a&?#~K^p^w{Et(x?!F$_SLGQ>8)sY8y3#n0RM|#>|an z*<6eZH<_H$EHv1pNC!2R#(NNfneSL=?OWDgQzD9f zYlXOYW-h{*)_?+<>=+;<>=+; z<>=+;e>=k8bo|Ts4!fc{Ss^dzbw2m!2&*}Z0X~st?1 z$8VeqE(<&}Vy08`#1Ue#(8fv|v!baHPZ38|O{aVz+gyS4I@6JAm% z4g_8t=VJuu-US*p$N4^XoW=>@e+I7fmcLR5WT(>l354hX`2A>Ss zlwHYBQ^@Cm_cQvYEHH2j^sITkHTQA)0Hmp_ Date: Mon, 10 Aug 2020 21:14:37 +0200 Subject: [PATCH 4/4] ADjust settings. --- sample_project/sample_project/settings.py | 6 ++++++ test_settings.py | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/sample_project/sample_project/settings.py b/sample_project/sample_project/settings.py index 1fe43a83..ae7ffbe6 100644 --- a/sample_project/sample_project/settings.py +++ b/sample_project/sample_project/settings.py @@ -129,6 +129,12 @@ # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/3.0/howto/static-files/ +# See: https://docs.djangoproject.com/en/dev/ref/settings/#media-root +MEDIA_ROOT = "./media" + +# See: https://docs.djangoproject.com/en/dev/ref/settings/#media-url +MEDIA_URL = "/media/" + STATIC_URL = "/static/" PROFILES_SERIALIZER_MODULE, PROFILES_SERIALIZER = ( diff --git a/test_settings.py b/test_settings.py index 19badb21..44d58f95 100644 --- a/test_settings.py +++ b/test_settings.py @@ -33,8 +33,9 @@ "solid_backend.message.apps.MessageConfig", "solid_backend.slideshow.apps.SlideshowConfig", "solid_backend.photograph.apps.PhotographConfig", - "django_cleanup.apps.CleanupConfig", # Should be placed last! "django_extensions", + "django_cleanup.apps.CleanupConfig", # Should be placed last! + ] MIDDLEWARE = [