Compare commits

...

14 Commits

Author SHA1 Message Date
arian 63f66c0336 chore(deps): bump python dependencies
Build and Test Debian Package / lint (push) Successful in 18s
Build and Test Debian Package / build (push) Successful in 28s
Build and Test Debian Package / test (push) Successful in 32s
Signed-off-by: Arian Nasr <arian@2ari.ca>
2026-06-21 04:26:17 -04:00
arian d4465d905b Merge branch 'actions'
Build and Test Debian Package / lint (push) Successful in 14s
Build and Test Debian Package / build (push) Successful in 25s
Build and Test Debian Package / test (push) Successful in 13s
Signed-off-by: Arian Nasr <arian@2ari.ca>
2026-06-15 06:11:31 -04:00
arian c3cda25c10 Merge branch 'e2e-testing' into actions
Build and Test Debian Package / lint (push) Successful in 13s
Build and Test Debian Package / build (push) Successful in 24s
Build and Test Debian Package / test (push) Successful in 13s
Signed-off-by: Arian Nasr <arian@2ari.ca>
2026-06-15 04:04:37 -04:00
arian 5734ac2f49 refactor(tests): remove unused import from test_api.py
Build and Test Debian Package / build (push) Successful in 25s
Build and Test Debian Package / test (push) Successful in 30s
Signed-off-by: Arian Nasr <arian@2ari.ca>
2026-06-15 04:02:01 -04:00
arian a6d74fc36f feat(ci): add linting job with Ruff to workflow
Build and Test Debian Package / lint (push) Failing after 1m38s
Build and Test Debian Package / build (push) Successful in 26s
Build and Test Debian Package / test (push) Successful in 13s
Signed-off-by: Arian Nasr <arian@2ari.ca>
2026-06-15 03:55:52 -04:00
arian 74d63cb4d7 Merge branch 'e2e-testing'
Build and Test Debian Package / build (push) Successful in 26s
Build and Test Debian Package / test (push) Successful in 14s
Signed-off-by: Arian Nasr <arian@2ari.ca>
2026-06-14 13:41:29 -04:00
arian de9097aa8a refactor(e2e): update base image to debian:13-slim
Build and Test Debian Package / build (push) Successful in 29s
Build and Test Debian Package / test (push) Successful in 3m20s
Signed-off-by: Arian Nasr <arian@2ari.ca>
2026-06-14 01:20:34 -04:00
arian a8804cd581 chore(deps): bump python dependencies
Build and Test Debian Package / build (push) Successful in 29s
Build and Test Debian Package / test (push) Successful in 15s
Signed-off-by: Arian Nasr <arian@2ari.ca>
2026-06-14 01:01:37 -04:00
arian 93010caee4 Merge branch 'e2e-testing'
Build and Test Debian Package / build (push) Successful in 28s
Build and Test Debian Package / test (push) Successful in 14s
Signed-off-by: Arian Nasr <arian@2ari.ca>
2026-06-05 05:47:33 -04:00
arian ded42ccd03 chore(deps): bump python dependencies
Build and Test Debian Package / build (push) Successful in 33s
Build and Test Debian Package / test (push) Successful in 52s
2026-06-04 19:36:30 -04:00
arian 9255f9b052 refactor(tests): remove a test
Build and Test Debian Package / build (push) Successful in 28s
Build and Test Debian Package / test (push) Successful in 30s
Signed-off-by: Arian Nasr <arian@2ari.ca>
2026-06-01 03:37:18 -04:00
arian 6e22dcdda5 fix(tests): change edge case file extension
Build and Test Debian Package / build (push) Successful in 27s
Build and Test Debian Package / test (push) Failing after 32s
Signed-off-by: Arian Nasr <arian@2ari.ca>
2026-06-01 03:34:41 -04:00
arian ef1e42bcbb feat(tests): additional tests for uploads
Build and Test Debian Package / build (push) Successful in 28s
Build and Test Debian Package / test (push) Failing after 31s
Signed-off-by: Arian Nasr <arian@2ari.ca>
2026-06-01 03:31:26 -04:00
arian 0912c338e3 chore(debian): v0.3.0 changelog added
Build and Test Debian Package / build (push) Successful in 7m11s
Build and Test Debian Package / test (push) Successful in 3m50s
Signed-off-by: Arian Nasr <arian@2ari.ca>
2026-05-31 09:03:35 -04:00
6 changed files with 70 additions and 5 deletions
+16
View File
@@ -8,6 +8,22 @@ on:
- 'v*'
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install ruff
# Update output format to enable automatic inline annotations.
- name: Run Ruff
run: ruff check --output-format=github .
build:
runs-on: ubuntu-latest
outputs:
+2 -2
View File
@@ -2,7 +2,7 @@
# Arian Nasr
# May 31, 2026
FROM debian:stable
FROM debian:13-slim
# Prevent interactive prompts
ENV DEBIAN_FRONTEND=noninteractive
@@ -33,4 +33,4 @@ RUN chmod +x /e2e/test-entrypoint.sh
WORKDIR /e2e
ENTRYPOINT ["/e2e/test-entrypoint.sh"]
ENTRYPOINT ["/e2e/test-entrypoint.sh"]
+17
View File
@@ -1,3 +1,20 @@
navidrome-uploader (0.3.0) unstable; urgency=medium
* E2E Testing:
- Add Dockerfile and entrypoint script for testing .deb packages
- Implement initial API functional tests with pytest configuration
- Update CI workflow to run E2E tests automatically after package build
* Packaging:
- Change architecture from 'all' to 'amd64'
* CI/Build:
- Implement automated Gitea workflow for .deb building
* Refactoring:
- Remove unused templates
* Maintenance:
- Update Dropzone.js upstream source
-- Arian Nasr <arian@2ari.ca> Sun, 31 May 2026 08:43:00 -0400
navidrome-uploader (0.2.0) unstable; urgency=medium
* Packaging:
+1 -1
View File
@@ -1,3 +1,3 @@
Werkzeug==3.1.8
pytest==9.0.3
pytest==9.1.1
requests==2.34.2
+33 -1
View File
@@ -1,4 +1,3 @@
import pytest
import requests
import io
import os
@@ -18,5 +17,38 @@ def test_api_upload_non_audio_file(base_url, upload_folder):
assert "not allowed" in response.json().get("error", "")
assert not os.path.exists(expected_filename)
if os.path.exists(expected_filename):
os.remove(expected_filename)
def test_api_upload_mp3_file(base_url, upload_folder):
files = {'file': ('test.mp3', io.BytesIO(b'fake mp3 content'))}
expected_filename = os.path.join(upload_folder, secure_filename('test.mp3'))
response = requests.post(f'{base_url}/', files=files)
assert response.status_code == 200
assert "uploaded successfully" in response.json().get("message", "")
assert os.path.exists(expected_filename)
if os.path.exists(expected_filename):
os.remove(expected_filename)
def test_api_upload_flac_file(base_url, upload_folder):
files = {'file': ('test.flac', io.BytesIO(b'fake flac content'))}
expected_filename = os.path.join(upload_folder, secure_filename('test.flac'))
response = requests.post(f'{base_url}/', files=files)
assert response.status_code == 200
assert "uploaded successfully" in response.json().get("message", "")
assert os.path.exists(expected_filename)
if os.path.exists(expected_filename):
os.remove(expected_filename)
def test_api_upload_m4a_file(base_url, upload_folder):
files = {'file': ('test.m4a', io.BytesIO(b'fake m4a content'))}
expected_filename = os.path.join(upload_folder, secure_filename('test.m4a'))
response = requests.post(f'{base_url}/', files=files)
assert response.status_code == 400
assert "not allowed" in response.json().get("error", "")
assert not os.path.exists(expected_filename)
if os.path.exists(expected_filename):
os.remove(expected_filename)
+1 -1
View File
@@ -6,5 +6,5 @@ Jinja2==3.1.6
MarkupSafe==3.0.3
Werkzeug==3.1.8
gunicorn==26.0.0
pip==26.1.1
pip==26.1.2
packaging==26.2