|
11 | 11 | LearningResourceRunFactory, |
12 | 12 | ProgramFactory, |
13 | 13 | ) |
14 | | -from learning_resources.models import LearningResource |
| 14 | +from learning_resources.models import ContentFile, LearningResource |
15 | 15 | from learning_resources_search.constants import ( |
16 | 16 | COURSE_TYPE, |
17 | 17 | ) |
18 | 18 | from main.utils import now_in_utc |
19 | 19 | from vector_search.tasks import ( |
20 | 20 | embed_learning_resources_by_id, |
| 21 | + embed_new_content_files, |
21 | 22 | embed_new_learning_resources, |
22 | 23 | start_embed_resources, |
23 | 24 | ) |
@@ -149,6 +150,42 @@ def test_embed_new_learning_resources(mocker, mocked_celery): |
149 | 150 | assert sorted(daily_resource_ids) == sorted(embedded_ids) |
150 | 151 |
|
151 | 152 |
|
| 153 | +def test_embed_new_content_files(mocker, mocked_celery): |
| 154 | + """ |
| 155 | + embed_new_content_files should generate embeddings for new content files |
| 156 | + created within the last day |
| 157 | + """ |
| 158 | + mocker.patch("vector_search.tasks.load_course_blocklist", return_value=[]) |
| 159 | + |
| 160 | + daily_since = now_in_utc() - datetime.timedelta(hours=5) |
| 161 | + |
| 162 | + ContentFileFactory.create_batch(4, created_on=daily_since, published=True) |
| 163 | + # create resources older than a day |
| 164 | + ContentFileFactory.create_batch( |
| 165 | + 4, |
| 166 | + created_on=now_in_utc() - datetime.timedelta(days=5), |
| 167 | + published=True, |
| 168 | + ) |
| 169 | + |
| 170 | + daily_content_file_ids = [ |
| 171 | + resource.id |
| 172 | + for resource in ContentFile.objects.filter( |
| 173 | + created_on__gt=now_in_utc() - datetime.timedelta(days=1) |
| 174 | + ) |
| 175 | + ] |
| 176 | + |
| 177 | + generate_embeddings_mock = mocker.patch( |
| 178 | + "vector_search.tasks.generate_embeddings", autospec=True |
| 179 | + ) |
| 180 | + |
| 181 | + with pytest.raises(mocked_celery.replace_exception_class): |
| 182 | + embed_new_content_files.delay() |
| 183 | + list(mocked_celery.group.call_args[0][0]) |
| 184 | + |
| 185 | + embedded_ids = generate_embeddings_mock.si.mock_calls[0].args[0] |
| 186 | + assert sorted(daily_content_file_ids) == sorted(embedded_ids) |
| 187 | + |
| 188 | + |
152 | 189 | def test_embed_learning_resources_by_id(mocker, mocked_celery): |
153 | 190 | """ |
154 | 191 | embed_learning_resources_by_id should generate embeddings for resources |
|
0 commit comments