feat: include user and origin_server info in library archive (#37626)
This commit is contained in:
@@ -27,6 +27,7 @@ import shutil
|
||||
from django.core.files.base import ContentFile
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.core.serializers.json import DjangoJSONEncoder
|
||||
from django.conf import settings
|
||||
from celery import shared_task
|
||||
from celery.utils.log import get_task_logger
|
||||
from celery_utils.logged_task import LoggedTask
|
||||
@@ -557,7 +558,9 @@ def backup_library(self, user_id: int, library_key_str: str) -> None:
|
||||
timestamp = datetime.now().strftime("%Y-%m-%d-%H%M%S")
|
||||
filename = f'{sanitized_lib_key}-{timestamp}.zip'
|
||||
file_path = os.path.join(root_dir, filename)
|
||||
create_lib_zip_file(lp_key=str(library_key), path=file_path)
|
||||
user = User.objects.get(id=user_id)
|
||||
origin_server = getattr(settings, 'CMS_BASE', None)
|
||||
create_lib_zip_file(lp_key=str(library_key), path=file_path, user=user, origin_server=origin_server)
|
||||
set_custom_attribute("exporting_completed", str(library_key))
|
||||
|
||||
with open(file_path, 'rb') as zipfile:
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
Unit tests for content libraries Celery tasks
|
||||
"""
|
||||
|
||||
from django.test import override_settings
|
||||
from ..models import ContentLibrary
|
||||
from .base import ContentLibrariesRestApiTest
|
||||
|
||||
@@ -28,6 +29,7 @@ class ContentLibraryBackupTaskTest(ContentLibrariesRestApiTest):
|
||||
result = backup_library.delay(self.user.id, str(self.lib1.library_key))
|
||||
assert result.task_id is not None
|
||||
|
||||
@override_settings(CMS_BASE="test.com")
|
||||
def test_backup_task_success(self):
|
||||
result = backup_library.delay(self.user.id, str(self.lib1.library_key))
|
||||
assert result.state == 'SUCCESS'
|
||||
@@ -35,6 +37,11 @@ class ContentLibraryBackupTaskTest(ContentLibrariesRestApiTest):
|
||||
artifact = UserTaskArtifact.objects.filter(status__task_id=result.task_id, name='Output').first()
|
||||
assert artifact is not None
|
||||
assert artifact.file.name.endswith('.zip')
|
||||
# test artifact content
|
||||
with artifact.file.open('rb') as f:
|
||||
content = f.read()
|
||||
assert b'created_by_email = "bob@example.com"' in content
|
||||
assert b'origin_server = "test.com"' in content
|
||||
|
||||
def test_backup_task_failure(self):
|
||||
result = backup_library.delay(self.user.id, self.wrong_task_id)
|
||||
|
||||
@@ -61,7 +61,7 @@ numpy<2.0.0
|
||||
# Date: 2023-09-18
|
||||
# pinning this version to avoid updates while the library is being developed
|
||||
# Issue for unpinning: https://github.com/openedx/edx-platform/issues/35269
|
||||
openedx-learning==0.30.0
|
||||
openedx-learning==0.30.1
|
||||
|
||||
# Date: 2023-11-29
|
||||
# Open AI version 1.0.0 dropped support for openai.ChatCompletion which is currently in use in enterprise.
|
||||
|
||||
@@ -842,7 +842,7 @@ openedx-filters==2.1.0
|
||||
# ora2
|
||||
openedx-forum==0.3.8
|
||||
# via -r requirements/edx/kernel.in
|
||||
openedx-learning==0.30.0
|
||||
openedx-learning==0.30.1
|
||||
# via
|
||||
# -c requirements/constraints.txt
|
||||
# -r requirements/edx/kernel.in
|
||||
|
||||
@@ -1404,7 +1404,7 @@ openedx-forum==0.3.8
|
||||
# via
|
||||
# -r requirements/edx/doc.txt
|
||||
# -r requirements/edx/testing.txt
|
||||
openedx-learning==0.30.0
|
||||
openedx-learning==0.30.1
|
||||
# via
|
||||
# -c requirements/constraints.txt
|
||||
# -r requirements/edx/doc.txt
|
||||
|
||||
@@ -1020,7 +1020,7 @@ openedx-filters==2.1.0
|
||||
# ora2
|
||||
openedx-forum==0.3.8
|
||||
# via -r requirements/edx/base.txt
|
||||
openedx-learning==0.30.0
|
||||
openedx-learning==0.30.1
|
||||
# via
|
||||
# -c requirements/constraints.txt
|
||||
# -r requirements/edx/base.txt
|
||||
|
||||
@@ -1066,7 +1066,7 @@ openedx-filters==2.1.0
|
||||
# ora2
|
||||
openedx-forum==0.3.8
|
||||
# via -r requirements/edx/base.txt
|
||||
openedx-learning==0.30.0
|
||||
openedx-learning==0.30.1
|
||||
# via
|
||||
# -c requirements/constraints.txt
|
||||
# -r requirements/edx/base.txt
|
||||
|
||||
Reference in New Issue
Block a user