From 1ed00734ae0a21d08bc0b487d0d14f02bed548eb Mon Sep 17 00:00:00 2001 From: Jordi Loyzaga Date: Sat, 27 Apr 2024 02:47:17 -0600 Subject: [PATCH 01/12] Testing test CI DB --- .drone.yml | 7 ++++++- scripts/setup.sh | 2 ++ scripts/{run_tests.sh => test.sh} | 0 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100755 scripts/setup.sh rename scripts/{run_tests.sh => test.sh} (100%) diff --git a/.drone.yml b/.drone.yml index bdb1c83..f0b9b36 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,12 +1,17 @@ kind: pipeline name: default +type: docker + +workspace: + path: / steps: - name: unittest image: python commands: - pip install -r requirements_test.txt - - ./scripts/run_tests.sh + - ./scripts/setup.sh + - ./scripts/tests.sh settings: username: diff --git a/scripts/setup.sh b/scripts/setup.sh new file mode 100755 index 0000000..9fb1e20 --- /dev/null +++ b/scripts/setup.sh @@ -0,0 +1,2 @@ +cd lockbox +python manage.py migrate_schemas \ No newline at end of file diff --git a/scripts/run_tests.sh b/scripts/test.sh similarity index 100% rename from scripts/run_tests.sh rename to scripts/test.sh -- 2.40.1 From 606c3e85b731789e7e29e3b14d7b261fdea2dc75 Mon Sep 17 00:00:00 2001 From: Jordi Loyzaga Date: Sat, 27 Apr 2024 02:48:13 -0600 Subject: [PATCH 02/12] whoops --- scripts/setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/setup.sh b/scripts/setup.sh index 9fb1e20..a9bfd8d 100755 --- a/scripts/setup.sh +++ b/scripts/setup.sh @@ -1,2 +1,2 @@ cd lockbox -python manage.py migrate_schemas \ No newline at end of file +python manage.py migrate \ No newline at end of file -- 2.40.1 From 0968305419975e5db17dbef8326d0432dfea872e Mon Sep 17 00:00:00 2001 From: Jordi Loyzaga Date: Sat, 27 Apr 2024 03:06:44 -0600 Subject: [PATCH 03/12] testing DB CI operations, testing lint pipeline --- .drone.yml | 5 +++-- lockbox/lockbox/settings.py | 30 +++++++++++++++--------------- lockbox/storage/serializers.py | 3 ++- lockbox/storage/views_api.py | 3 ++- lockbox/user/tests/test_user.py | 6 +++++- pyproject.toml | 1 + scripts/CI/lint.sh | 2 ++ scripts/{ => CI}/setup.sh | 0 scripts/CI/test.sh | 2 ++ scripts/test.sh | 2 -- 10 files changed, 32 insertions(+), 22 deletions(-) create mode 100644 scripts/CI/lint.sh rename scripts/{ => CI}/setup.sh (100%) create mode 100755 scripts/CI/test.sh delete mode 100755 scripts/test.sh diff --git a/.drone.yml b/.drone.yml index f0b9b36..da08f40 100644 --- a/.drone.yml +++ b/.drone.yml @@ -10,8 +10,9 @@ steps: image: python commands: - pip install -r requirements_test.txt - - ./scripts/setup.sh - - ./scripts/tests.sh + - ./scripts/CI/setup.sh + - ./scripts/CI/test.sh + - ./scripts/CI/lint.sh settings: username: diff --git a/lockbox/lockbox/settings.py b/lockbox/lockbox/settings.py index 53f85a0..dd62e96 100644 --- a/lockbox/lockbox/settings.py +++ b/lockbox/lockbox/settings.py @@ -11,10 +11,19 @@ load_dotenv() # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent +# Configs loaded from env or defaults SECRET_KEY = get_config("SECRET_KEY") DEBUG = get_config("DEBUG") - ALLOWED_HOSTS = get_config("ALLOWED_HOSTS") +DB_SQLITE_ABSOLUTE_PATH = get_config("DB_SQLITE_ABSOLUTE_PATH") + +DATABASES = { + "default": { + "ENGINE": "django.db.backends.sqlite3", + "NAME": BASE_DIR / "db.sqlite3", + }, +} + # Application definition @@ -64,19 +73,6 @@ TEMPLATES = [ WSGI_APPLICATION = 'lockbox.wsgi.application' - -# Database - -DB_SQLITE_ABSOLUTE_PATH = get_config("DB_SQLITE_ABSOLUTE_PATH") - -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': BASE_DIR / 'db.sqlite3', - }, -} - - # Password validation # https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators @@ -110,7 +106,11 @@ STATICFILES_DIRS = [ ] STATIC_ROOT = BASE_DIR / "staticfiles" STATIC_URL = 'static/' -STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage" +STORAGES = { + "staticfiles": { + "BACKEND": "whitenoise.storage.CompressedManifestStaticFilesStorage", + }, +} # Storage MEDIA_ROOT = BASE_DIR / "media" diff --git a/lockbox/storage/serializers.py b/lockbox/storage/serializers.py index 96601b0..5445205 100644 --- a/lockbox/storage/serializers.py +++ b/lockbox/storage/serializers.py @@ -23,6 +23,7 @@ class FileChunkSerializer(serializers.ModelSerializer): file = File.objects.get(lid=data["file"]) if data["size"] > file.max_size_chunk_bytes: - detail = f"'size' param is larger than max chunk size for file, {data["size"]} > {file.max_size_chunk_bytes}" + detail = f"'size' param is larger than max chunk size for file:\ + {data["size"]} > {file.max_size_chunk_bytes}" raise serializers.ValidationError(detail) return data diff --git a/lockbox/storage/views_api.py b/lockbox/storage/views_api.py index c1246cf..cc2a3dd 100644 --- a/lockbox/storage/views_api.py +++ b/lockbox/storage/views_api.py @@ -1,7 +1,8 @@ from common.constants import ( UPLOAD_STATUS_TYPES, ) -from common.utils import get_config + +# from common.utils import get_config from rest_framework import status from rest_framework.decorators import action from rest_framework.response import Response diff --git a/lockbox/user/tests/test_user.py b/lockbox/user/tests/test_user.py index d51d2f1..e7a9a41 100644 --- a/lockbox/user/tests/test_user.py +++ b/lockbox/user/tests/test_user.py @@ -1,5 +1,7 @@ import pytest +from user.models import LockboxUser + @pytest.mark.django_db() class TestUser: @@ -7,4 +9,6 @@ class TestUser: Test user related functions are working correctly. """ def test_stub(self): - assert True + user = LockboxUser.objects.create(alias="TestUser", username="meow") + loaded_user = LockboxUser.objects.filter(alias="TestUser").first() + assert user.lid == loaded_user.lid diff --git a/pyproject.toml b/pyproject.toml index 830bed4..a80347d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -58,6 +58,7 @@ exclude = [ ".pyenv*", ".git", ".venv", + "manage.py", ] force-exclude = true diff --git a/scripts/CI/lint.sh b/scripts/CI/lint.sh new file mode 100644 index 0000000..36dd2cf --- /dev/null +++ b/scripts/CI/lint.sh @@ -0,0 +1,2 @@ +cd lockbox +ruff check --config=./pyproject.toml \ No newline at end of file diff --git a/scripts/setup.sh b/scripts/CI/setup.sh similarity index 100% rename from scripts/setup.sh rename to scripts/CI/setup.sh diff --git a/scripts/CI/test.sh b/scripts/CI/test.sh new file mode 100755 index 0000000..e42fe9e --- /dev/null +++ b/scripts/CI/test.sh @@ -0,0 +1,2 @@ +cd lockbox +pytest --cov=. --cov-report term-missing --reuse-db \ No newline at end of file diff --git a/scripts/test.sh b/scripts/test.sh deleted file mode 100755 index 05819f3..0000000 --- a/scripts/test.sh +++ /dev/null @@ -1,2 +0,0 @@ -cd lockbox -pytest --cov=. --cov-report term-missing \ No newline at end of file -- 2.40.1 From 731a1aa22fe492623e2e36886aa11f0b73f36831 Mon Sep 17 00:00:00 2001 From: Jordi Loyzaga Date: Sat, 27 Apr 2024 03:09:11 -0600 Subject: [PATCH 04/12] Separated CI steps --- .drone.yml | 16 +++++++++++++++- scripts/CI/lint.sh | 0 2 files changed, 15 insertions(+), 1 deletion(-) mode change 100644 => 100755 scripts/CI/lint.sh diff --git a/.drone.yml b/.drone.yml index da08f40..57e8cef 100644 --- a/.drone.yml +++ b/.drone.yml @@ -12,10 +12,24 @@ steps: - pip install -r requirements_test.txt - ./scripts/CI/setup.sh - ./scripts/CI/test.sh + + settings: + username: + from_secret: gitea_username + password: + from_secret: gitea_password + +- name: static analysis + image: python + commands: + - pip install -r requirements_test.txt + - ./scripts/CI/setup.sh - ./scripts/CI/lint.sh settings: username: from_secret: gitea_username password: - from_secret: gitea_password \ No newline at end of file + from_secret: gitea_password + + diff --git a/scripts/CI/lint.sh b/scripts/CI/lint.sh old mode 100644 new mode 100755 -- 2.40.1 From 07fc6e86e0643c6fe85dbea51331c3f8df3aa5ce Mon Sep 17 00:00:00 2001 From: Jordi Loyzaga Date: Sat, 27 Apr 2024 03:17:13 -0600 Subject: [PATCH 05/12] Testing drone pipeline --- .drone.yml | 45 +++++++++++++++++++-------------------------- 1 file changed, 19 insertions(+), 26 deletions(-) diff --git a/.drone.yml b/.drone.yml index 57e8cef..841ceef 100644 --- a/.drone.yml +++ b/.drone.yml @@ -2,34 +2,27 @@ kind: pipeline name: default type: docker -workspace: - path: / +pipeline: + setup: + image: python + commands: + - pip install -r requirements_test.txt + - ./scripts/CI/setup.sh -steps: -- name: unittest - image: python - commands: - - pip install -r requirements_test.txt - - ./scripts/CI/setup.sh - - ./scripts/CI/test.sh + unittest: + image: python + commands: + - ./scripts/CI/test.sh - settings: - username: - from_secret: gitea_username - password: - from_secret: gitea_password + static analysis: + image: python + commands: + - ./scripts/CI/lint.sh -- name: static analysis - image: python - commands: - - pip install -r requirements_test.txt - - ./scripts/CI/setup.sh - - ./scripts/CI/lint.sh - - settings: - username: - from_secret: gitea_username - password: - from_secret: gitea_password +settings: + username: + from_secret: gitea_username + password: + from_secret: gitea_password -- 2.40.1 From 63f60248b3f680af789abe005d99d0c5390cdd93 Mon Sep 17 00:00:00 2001 From: Jordi Loyzaga Date: Sat, 27 Apr 2024 03:20:19 -0600 Subject: [PATCH 06/12] testing parallel pipeline --- .drone.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.drone.yml b/.drone.yml index 841ceef..696ad8c 100644 --- a/.drone.yml +++ b/.drone.yml @@ -3,20 +3,20 @@ name: default type: docker pipeline: - setup: + unittest: image: python + group: test commands: - pip install -r requirements_test.txt - ./scripts/CI/setup.sh - - unittest: - image: python - commands: - ./scripts/CI/test.sh static analysis: image: python + group: test commands: + - pip install -r requirements_test.txt + - ./scripts/CI/setup.sh - ./scripts/CI/lint.sh settings: -- 2.40.1 From f34257db00cf410f298ef0a50c88e2fb20b90a7d Mon Sep 17 00:00:00 2001 From: Jordi Loyzaga Date: Sat, 27 Apr 2024 03:24:22 -0600 Subject: [PATCH 07/12] retesting CI --- .drone.yml | 3 +-- scripts/CI/lint.sh | 1 + scripts/CI/setup.sh | 1 + scripts/CI/test.sh | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index 696ad8c..783ff6d 100644 --- a/.drone.yml +++ b/.drone.yml @@ -11,12 +11,11 @@ pipeline: - ./scripts/CI/setup.sh - ./scripts/CI/test.sh - static analysis: + lint: image: python group: test commands: - pip install -r requirements_test.txt - - ./scripts/CI/setup.sh - ./scripts/CI/lint.sh settings: diff --git a/scripts/CI/lint.sh b/scripts/CI/lint.sh index 36dd2cf..4a64eb2 100755 --- a/scripts/CI/lint.sh +++ b/scripts/CI/lint.sh @@ -1,2 +1,3 @@ cd lockbox +echo "Starting ruff check...\n\n\n" ruff check --config=./pyproject.toml \ No newline at end of file diff --git a/scripts/CI/setup.sh b/scripts/CI/setup.sh index a9bfd8d..0e6178d 100755 --- a/scripts/CI/setup.sh +++ b/scripts/CI/setup.sh @@ -1,2 +1,3 @@ cd lockbox +echo "Starting setup...\n\n\n" python manage.py migrate \ No newline at end of file diff --git a/scripts/CI/test.sh b/scripts/CI/test.sh index e42fe9e..2d17696 100755 --- a/scripts/CI/test.sh +++ b/scripts/CI/test.sh @@ -1,2 +1,3 @@ cd lockbox +printf "Starting pytest run...\n\n\n" pytest --cov=. --cov-report term-missing --reuse-db \ No newline at end of file -- 2.40.1 From 924ee144f6cab2a76e5ee465974696c2100a9522 Mon Sep 17 00:00:00 2001 From: Jordi Loyzaga Date: Sat, 27 Apr 2024 03:33:16 -0600 Subject: [PATCH 08/12] testing parallel again --- scripts/CI/lint.sh | 4 ++-- scripts/CI/setup.sh | 2 +- scripts/CI/test.sh | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/CI/lint.sh b/scripts/CI/lint.sh index 4a64eb2..e7bf5fb 100755 --- a/scripts/CI/lint.sh +++ b/scripts/CI/lint.sh @@ -1,3 +1,3 @@ cd lockbox -echo "Starting ruff check...\n\n\n" -ruff check --config=./pyproject.toml \ No newline at end of file +printf "\n\n|| Starting ruff check ||\n\n" +ruff check --config=../pyproject.toml \ No newline at end of file diff --git a/scripts/CI/setup.sh b/scripts/CI/setup.sh index 0e6178d..68193d5 100755 --- a/scripts/CI/setup.sh +++ b/scripts/CI/setup.sh @@ -1,3 +1,3 @@ cd lockbox -echo "Starting setup...\n\n\n" +printf "\n\n|| Starting setup ||\n\n" python manage.py migrate \ No newline at end of file diff --git a/scripts/CI/test.sh b/scripts/CI/test.sh index 2d17696..b36b368 100755 --- a/scripts/CI/test.sh +++ b/scripts/CI/test.sh @@ -1,3 +1,3 @@ cd lockbox -printf "Starting pytest run...\n\n\n" +printf "\n\n|| Starting pytest run ||\n\n" pytest --cov=. --cov-report term-missing --reuse-db \ No newline at end of file -- 2.40.1 From a49930b3acf2d4f1ee8fce16cc3a6b952ea3f8f1 Mon Sep 17 00:00:00 2001 From: Jordi Loyzaga Date: Sat, 27 Apr 2024 03:43:26 -0600 Subject: [PATCH 09/12] weird --- .drone.yml | 6 +++--- scripts/CI/lint.sh | 3 --- scripts/drone/lint.sh | 2 ++ scripts/{CI => drone}/setup.sh | 0 scripts/{CI => drone}/test.sh | 0 5 files changed, 5 insertions(+), 6 deletions(-) delete mode 100755 scripts/CI/lint.sh create mode 100755 scripts/drone/lint.sh rename scripts/{CI => drone}/setup.sh (100%) rename scripts/{CI => drone}/test.sh (100%) diff --git a/.drone.yml b/.drone.yml index 783ff6d..3eff971 100644 --- a/.drone.yml +++ b/.drone.yml @@ -8,15 +8,15 @@ pipeline: group: test commands: - pip install -r requirements_test.txt - - ./scripts/CI/setup.sh - - ./scripts/CI/test.sh + - ./scripts/drone/setup.sh + - ./scripts/drone/test.sh lint: image: python group: test commands: - pip install -r requirements_test.txt - - ./scripts/CI/lint.sh + - ./scripts/drone/lint.sh settings: username: diff --git a/scripts/CI/lint.sh b/scripts/CI/lint.sh deleted file mode 100755 index e7bf5fb..0000000 --- a/scripts/CI/lint.sh +++ /dev/null @@ -1,3 +0,0 @@ -cd lockbox -printf "\n\n|| Starting ruff check ||\n\n" -ruff check --config=../pyproject.toml \ No newline at end of file diff --git a/scripts/drone/lint.sh b/scripts/drone/lint.sh new file mode 100755 index 0000000..82c0f43 --- /dev/null +++ b/scripts/drone/lint.sh @@ -0,0 +1,2 @@ +printf "\n\n|| Starting ruff check ||\n\n" +ruff check --config=./pyproject.toml \ No newline at end of file diff --git a/scripts/CI/setup.sh b/scripts/drone/setup.sh similarity index 100% rename from scripts/CI/setup.sh rename to scripts/drone/setup.sh diff --git a/scripts/CI/test.sh b/scripts/drone/test.sh similarity index 100% rename from scripts/CI/test.sh rename to scripts/drone/test.sh -- 2.40.1 From dcbc0fe415071cc78507dba2b4aa8164b2924a09 Mon Sep 17 00:00:00 2001 From: Jordi Loyzaga Date: Sat, 27 Apr 2024 03:47:18 -0600 Subject: [PATCH 11/12] please work --- .drone.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index 3eff971..a80d382 100644 --- a/.drone.yml +++ b/.drone.yml @@ -5,7 +5,6 @@ type: docker pipeline: unittest: image: python - group: test commands: - pip install -r requirements_test.txt - ./scripts/drone/setup.sh @@ -13,7 +12,6 @@ pipeline: lint: image: python - group: test commands: - pip install -r requirements_test.txt - ./scripts/drone/lint.sh -- 2.40.1 From f5c56162cda4078df6ac1333ee640a42337d93d3 Mon Sep 17 00:00:00 2001 From: Jordi Loyzaga Date: Sat, 27 Apr 2024 03:49:42 -0600 Subject: [PATCH 12/12] come tf on --- .drone.yml | 10 +++++++--- lockbox/storage/views_api.py | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.drone.yml b/.drone.yml index a80d382..1826bef 100644 --- a/.drone.yml +++ b/.drone.yml @@ -2,19 +2,23 @@ kind: pipeline name: default type: docker -pipeline: - unittest: +steps: + - name: unitest image: python commands: - pip install -r requirements_test.txt - ./scripts/drone/setup.sh - ./scripts/drone/test.sh + depends_on: + - clone - lint: + - name: lint image: python commands: - pip install -r requirements_test.txt - ./scripts/drone/lint.sh + depends_on: + - clone settings: username: diff --git a/lockbox/storage/views_api.py b/lockbox/storage/views_api.py index cc2a3dd..9de0d9b 100644 --- a/lockbox/storage/views_api.py +++ b/lockbox/storage/views_api.py @@ -7,8 +7,8 @@ from rest_framework import status from rest_framework.decorators import action from rest_framework.response import Response from rest_framework.viewsets import ModelViewSet -from user.models import LockboxUser +# from user.models import LockboxUser from storage.models import File, FileChunk from storage.serializers import FileChunkSerializer, FileSerializer -- 2.40.1