Skip to content

Commit 2ff2ac9

Browse files
committed
adding filters to pull in test_mode resources
1 parent 9af6840 commit 2ff2ac9

File tree

7 files changed

+42
-9
lines changed

7 files changed

+42
-9
lines changed

learning_resources/etl/edx_shared.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
from tarfile import ReadError
77
from tempfile import TemporaryDirectory
88

9+
from django.db.models import Q
10+
911
from learning_resources.etl.constants import ETLSource
1012
from learning_resources.etl.loaders import load_content_files
1113
from learning_resources.etl.utils import (
@@ -112,9 +114,11 @@ def sync_edx_course_files(
112114
runs = LearningResourceRun.objects.filter(
113115
learning_resource__etl_source=etl_source,
114116
learning_resource_id__in=ids,
115-
learning_resource__published=True,
116117
published=True,
118+
).filter(
119+
Q(learning_resource__published=True) | Q(learning_resource__test_mode=True)
117120
)
121+
118122
if etl_source == ETLSource.mit_edx.name:
119123
# Additional processing of run ids and tarfile names,
120124
# because edx data is structured differently

learning_resources/management/commands/backpopulate_mit_edx_files.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,18 @@
33
from django.conf import settings
44
from django.core.management import BaseCommand
55

6+
from learning_resources.management.commands.mixins import BaseCommandMixin
67
from learning_resources.tasks import import_all_mit_edx_files
78
from main.utils import now_in_utc
89

910

10-
class Command(BaseCommand):
11+
class Command(BaseCommandMixin, BaseCommand):
1112
"""Populate MIT edX course run files"""
1213

1314
help = "Populate MIT edX course run files"
1415

1516
def add_arguments(self, parser):
17+
super().add_arguments(parser)
1618
parser.add_argument(
1719
"-c",
1820
"--chunk-size",
@@ -43,6 +45,7 @@ def handle(self, *args, **options): # noqa: ARG002
4345
if options["learning_resource_ids"]
4446
else None
4547
)
48+
self.configure_test_resources(options)
4649
task = import_all_mit_edx_files.delay(
4750
chunk_size=chunk_size,
4851
overwrite=options["force_overwrite"],

learning_resources/management/commands/backpopulate_mitxonline_files.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,19 @@
22

33
from django.core.management import BaseCommand
44

5+
from learning_resources.management.commands.mixins import BaseCommandMixin
56
from learning_resources.tasks import import_all_mitxonline_files
67
from main import settings
78
from main.utils import now_in_utc
89

910

10-
class Command(BaseCommand):
11+
class Command(BaseCommandMixin, BaseCommand):
1112
"""Populate mitxonline course run files"""
1213

1314
help = "Populate mitxonline course run files"
1415

1516
def add_arguments(self, parser):
17+
super().add_arguments(parser)
1618
parser.add_argument(
1719
"-c",
1820
"--chunk-size",
@@ -43,6 +45,7 @@ def handle(self, *args, **options): # noqa: ARG002
4345
if options["learning_resource_ids"]
4446
else None
4547
)
48+
self.configure_test_resources(options)
4649
task = import_all_mitxonline_files.delay(
4750
chunk_size=chunk_size,
4851
overwrite=options["force_overwrite"],

learning_resources/management/commands/backpopulate_oll_files.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22

33
from django.core.management import BaseCommand
44

5+
from learning_resources.management.commands.mixins import BaseCommandMixin
56
from learning_resources.tasks import import_all_oll_files
67
from main import settings
78
from main.utils import now_in_utc
89

910

10-
class Command(BaseCommand):
11+
class Command(BaseCommandMixin, BaseCommand):
1112
"""Populate OLL course run files"""
1213

1314
help = "Populate OLL course run files"
@@ -46,6 +47,7 @@ def handle(self, *args, **options): # noqa: ARG002
4647
if options["learning_resource_ids"]
4748
else None
4849
)
50+
self.configure_test_resources(options)
4951
task = import_all_oll_files.delay(
5052
chunk_size=chunk_size,
5153
overwrite=options["force_overwrite"],

learning_resources/management/commands/backpopulate_xpro_files.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,18 @@
33
from django.conf import settings
44
from django.core.management import BaseCommand
55

6+
from learning_resources.management.commands.mixins import BaseCommandMixin
67
from learning_resources.tasks import import_all_xpro_files
78
from main.utils import now_in_utc
89

910

10-
class Command(BaseCommand):
11+
class Command(BaseCommandMixin, BaseCommand):
1112
"""Populate xpro course run files"""
1213

1314
help = "Populate xpro course run files"
1415

1516
def add_arguments(self, parser):
17+
super().add_arguments(parser)
1618
parser.add_argument(
1719
"-c",
1820
"--chunk-size",
@@ -42,6 +44,7 @@ def handle(self, *args, **options): # noqa: ARG002
4244
if options["learning_resource_ids"]
4345
else None
4446
)
47+
self.configure_test_resources(options)
4548
task = import_all_xpro_files.delay(
4649
chunk_size=chunk_size,
4750
overwrite=options["force_overwrite"],
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
from learning_resources.models import LearningResource
2+
3+
4+
class BaseCommandMixin:
5+
def add_arguments(self, parser):
6+
parser.add_argument(
7+
"--test-ids",
8+
dest="test_ids",
9+
help="List of readable IDs to use for testing",
10+
)
11+
12+
def configure_test_resources(self, options):
13+
if options["test_ids"]:
14+
test_ids = options["test_ids"].split(",")
15+
LearningResource.objects.filter(id__in=test_ids).update(
16+
test_mode=True, published=False
17+
)

learning_resources/tasks.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import boto3
1010
import celery
1111
from django.conf import settings
12+
from django.db.models import Q
1213
from django.utils import timezone
1314

1415
from learning_resources.content_summarizer import ContentSummarizer
@@ -52,7 +53,8 @@ def get_micromasters_data():
5253

5354
@app.task
5455
def get_mit_edx_data(
55-
api_course_datafile: str | None = None, api_program_datafile: str | None = None
56+
api_course_datafile: str | None = None,
57+
api_program_datafile: str | None = None,
5658
) -> int:
5759
"""Task to sync MIT edX data with the database
5860
@@ -169,9 +171,8 @@ def get_content_tasks( # noqa: PLR0913
169171
).values_list("id", flat=True)
170172
else:
171173
learning_resources = (
172-
LearningResource.objects.filter(
173-
published=True, course__isnull=False, etl_source=etl_source
174-
)
174+
LearningResource.objects.filter(Q(published=True) | Q(test_mode=True))
175+
.filter(course__isnull=False, etl_source=etl_source)
175176
.exclude(readable_id__in=blocklisted_ids)
176177
.order_by("-id")
177178
.values_list("id", flat=True)

0 commit comments

Comments
 (0)