From 0be1228c0ab7f900eabfb9633716cbc2f1db4a02 Mon Sep 17 00:00:00 2001 From: Travis Briggs Date: Sat, 3 May 2025 17:38:29 -0700 Subject: [PATCH] The release.eno file goes in the local dir, not object stoarge --- rainfall/site.py | 8 +++++--- rainfall/site_test.py | 22 +++++++++++++++++++--- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/rainfall/site.py b/rainfall/site.py index dac0805..3f86953 100644 --- a/rainfall/site.py +++ b/rainfall/site.py @@ -105,9 +105,11 @@ def generate_eno_files(data_dir_path, site_id): cover_alt_text='no alt text given' if release.artwork else None, description=release.description) - eno_path = os.path.join(release_path(data_dir_path, release), 'release.eno') - f = io.BytesIO(release_eno.encode('utf-8')) - object_storage.put_object(eno_path, f, 'text/plain') + path = release_path(data_dir_path, release) + os.makedirs(path, exist_ok=True) + eno_path = os.path.join(path, 'release.eno') + with open(eno_path, 'w', encoding='utf-8') as f: + f.write(release_eno) def cleanup_site(data_dir_path, preview_dir_path, site_id): diff --git a/rainfall/site_test.py b/rainfall/site_test.py index fd120aa..d953df7 100644 --- a/rainfall/site_test.py +++ b/rainfall/site_test.py @@ -11,9 +11,10 @@ from rainfall.db import db from rainfall.models import File, User from rainfall.site import (build_dir, cache_dir, catalog_dir, delete_file, - generate_site, get_zip_file, public_dir, - release_path, rename_release_dir, rename_site_dir, - secure_filename, site_exists, site_path) + generate_eno_files, generate_site, get_zip_file, + public_dir, release_path, rename_release_dir, + rename_site_dir, secure_filename, site_exists, + site_path) @pytest.fixture @@ -261,3 +262,18 @@ def test_rename_site_dir_new_exists(self, app, releases_user): with pytest.raises(FileExistsError): rename_site_dir(app.config['DATA_DIR'], site, old_name) + + def test_generate_eno_files(self, app, releases_user): + with app.app_context(): + db.session.add(releases_user) + site = releases_user.sites[0] + + generate_eno_files(app.config['DATA_DIR'], str(site.id)) + + # Empty release, no eno file. + assert not os.path.exists( + f'{app.config["DATA_DIR"]}/06543f11-12b6-71ea-8000-e026c63c22e2/Cool Site 1/Site 0 Release 1/release.eno' + ) + assert os.path.exists( + f'{app.config["DATA_DIR"]}/06543f11-12b6-71ea-8000-e026c63c22e2/Cool Site 1/Site 0 Release 2/release.eno' + )