Skip to content

Commit 3c7fab9

Browse files
committed
change DeltaUrl.delete to to_delete
1 parent 8e68b92 commit 3c7fab9

File tree

6 files changed

+75
-33
lines changed

6 files changed

+75
-33
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Generated by Django 4.2.9 on 2024-11-16 00:26
2+
3+
from django.db import migrations, models
4+
import django.db.models.deletion
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
("sde_collections", "0064_alter_curatedurl_options_and_more"),
11+
]
12+
13+
operations = [
14+
migrations.RenameField(
15+
model_name="deltaurl",
16+
old_name="delete",
17+
new_name="to_delete",
18+
),
19+
migrations.AlterField(
20+
model_name="curatedurl",
21+
name="collection",
22+
field=models.ForeignKey(
23+
on_delete=django.db.models.deletion.CASCADE,
24+
related_name="curated_urls",
25+
to="sde_collections.collection",
26+
),
27+
),
28+
migrations.AlterField(
29+
model_name="deltaurl",
30+
name="collection",
31+
field=models.ForeignKey(
32+
on_delete=django.db.models.deletion.CASCADE, related_name="delta_urls", to="sde_collections.collection"
33+
),
34+
),
35+
migrations.AlterField(
36+
model_name="dumpurl",
37+
name="collection",
38+
field=models.ForeignKey(
39+
on_delete=django.db.models.deletion.CASCADE, related_name="dump_urls", to="sde_collections.collection"
40+
),
41+
),
42+
]

sde_collections/models/collection.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -109,35 +109,35 @@ def migrate_dump_to_delta(self):
109109
if curated:
110110
# Check if any of the comparison fields differ
111111
if any(getattr(curated, field) != getattr(dump, field) for field in DELTA_COMPARISON_FIELDS):
112-
self.create_or_update_delta_url(dump, delete=False)
112+
self.create_or_update_delta_url(dump, to_delete=False)
113113
else:
114114
# New URL, not in CuratedUrls; move it entirely to DeltaUrls
115-
self.create_or_update_delta_url(dump, delete=False)
115+
self.create_or_update_delta_url(dump, to_delete=False)
116116

117117
# Step 4: Identify CuratedUrls missing in DumpUrls and flag them for deletion in DeltaUrls
118118
for curated in curated_urls.values():
119119
if curated.url not in dump_urls:
120-
self.create_or_update_delta_url(curated, delete=True)
120+
self.create_or_update_delta_url(curated, to_delete=True)
121121

122122
# Step 5: Clear DumpUrls after migration is complete
123123
self.clear_dump_urls()
124124

125-
def create_or_update_delta_url(self, url_instance, delete=False):
125+
def create_or_update_delta_url(self, url_instance, to_delete=False):
126126
"""
127127
Creates or updates a DeltaUrl entry based on the given DumpUrl or CuratedUrl object.
128-
If delete is True, only sets the delete flag and url.
128+
If to_delete is True, only sets the to_delete flag and url.
129129
"""
130-
if delete:
131-
# Only set the URL and delete flag
132-
DeltaUrl.objects.update_or_create(collection=self, url=url_instance.url, defaults={"delete": True})
130+
if to_delete:
131+
# Only set the URL and to_delete flag
132+
DeltaUrl.objects.update_or_create(collection=self, url=url_instance.url, defaults={"to_delete": True})
133133
else:
134134
# Automatically move over all fields from url_instance
135135
fields_to_copy = {
136136
field.name: getattr(url_instance, field.name)
137137
for field in DumpUrl._meta.fields # Assumes same fields for CuratedUrl via inheritance
138138
if field.name not in ["id", "collection", "url"]
139139
}
140-
fields_to_copy["delete"] = False # Ensure delete flag is False
140+
fields_to_copy["to_delete"] = False # Ensure to_delete flag is False
141141

142142
DeltaUrl.objects.update_or_create(collection=self, url=url_instance.url, defaults=fields_to_copy)
143143

@@ -155,7 +155,7 @@ def promote_to_curated(self):
155155
curated = curated_urls.get(url)
156156

157157
# Delete the CuratedUrl if the DeltaUrl is marked for deletion
158-
if delta.delete:
158+
if delta.to_delete:
159159
if curated:
160160
curated.delete()
161161
continue
@@ -164,7 +164,7 @@ def promote_to_curated(self):
164164
updated_fields = {}
165165
for field in delta._meta.fields:
166166
field_name = field.name
167-
if field_name == "delete":
167+
if field_name == "to_delete":
168168
continue
169169

170170
delta_value = getattr(delta, field_name)
@@ -179,7 +179,7 @@ def promote_to_curated(self):
179179
new_data = {
180180
field.name: getattr(delta, field.name)
181181
for field in delta._meta.fields
182-
if field.name not in ["delete", "collection"] and getattr(delta, field.name) not in [None, ""]
182+
if field.name not in ["to_delete", "collection"] and getattr(delta, field.name) not in [None, ""]
183183
}
184184
CuratedUrl.objects.create(collection=self, **new_data)
185185

sde_collections/models/delta_url.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ class DeltaUrl(BaseUrl):
126126
collection = models.ForeignKey("Collection", on_delete=models.CASCADE, related_name="delta_urls")
127127

128128
objects = DeltaUrlManager()
129-
delete = models.BooleanField(default=False)
129+
to_delete = models.BooleanField(default=False)
130130

131131
class Meta:
132132
verbose_name = "Delta Urls"

sde_collections/tests/factories.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,4 +87,4 @@ class Meta:
8787
collection = factory.SubFactory(CollectionFactory)
8888
url = factory.Faker("url")
8989
scraped_title = factory.Faker("sentence")
90-
delete = False
90+
to_delete = False

sde_collections/tests/test_migrate_dump.py

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -31,18 +31,18 @@ def test_clear_dump_urls(self):
3131
def test_create_or_update_delta_url_add(self):
3232
collection = CollectionFactory()
3333
dump_url = DumpUrlFactory(collection=collection)
34-
collection.create_or_update_delta_url(dump_url, delete=False)
34+
collection.create_or_update_delta_url(dump_url, to_delete=False)
3535
delta = DeltaUrl.objects.get(url=dump_url.url)
36-
assert delta.delete is False
36+
assert delta.to_delete is False
3737
for field in DELTA_COMPARISON_FIELDS:
3838
assert getattr(delta, field) == getattr(dump_url, field)
3939

4040
def test_create_or_update_delta_url_delete(self):
4141
collection = CollectionFactory()
4242
curated_url = CuratedUrlFactory(collection=collection)
43-
collection.create_or_update_delta_url(curated_url, delete=True)
43+
collection.create_or_update_delta_url(curated_url, to_delete=True)
4444
delta = DeltaUrl.objects.get(url=curated_url.url)
45-
assert delta.delete is True
45+
assert delta.to_delete is True
4646
assert delta.scraped_title == ""
4747

4848

@@ -53,7 +53,7 @@ def test_new_url_in_dump_only(self):
5353
dump_url = DumpUrlFactory(collection=collection)
5454
collection.migrate_dump_to_delta()
5555
delta = DeltaUrl.objects.get(url=dump_url.url)
56-
assert delta.delete is False
56+
assert delta.to_delete is False
5757
for field in DELTA_COMPARISON_FIELDS:
5858
assert getattr(delta, field) == getattr(dump_url, field)
5959

@@ -63,15 +63,15 @@ def test_url_in_both_with_different_field(self):
6363
curated_url = CuratedUrlFactory(collection=collection, url=dump_url.url, scraped_title="Old Title") # noqa
6464
collection.migrate_dump_to_delta()
6565
delta = DeltaUrl.objects.get(url=dump_url.url)
66-
assert delta.delete is False
66+
assert delta.to_delete is False
6767
assert delta.scraped_title == "New Title"
6868

6969
def test_url_in_curated_only(self):
7070
collection = CollectionFactory()
7171
curated_url = CuratedUrlFactory(collection=collection)
7272
collection.migrate_dump_to_delta()
7373
delta = DeltaUrl.objects.get(url=curated_url.url)
74-
assert delta.delete is True
74+
assert delta.to_delete is True
7575
assert delta.scraped_title == ""
7676

7777
def test_identical_url_in_both(self):
@@ -91,16 +91,16 @@ def test_full_migration_flow(self):
9191
collection.migrate_dump_to_delta()
9292

9393
# New URL moved to DeltaUrls
94-
assert DeltaUrl.objects.filter(url=dump_url_new.url, delete=False).exists()
94+
assert DeltaUrl.objects.filter(url=dump_url_new.url, to_delete=False).exists()
9595

9696
# Updated URL moved to DeltaUrls
9797
delta_update = DeltaUrl.objects.get(url=dump_url_update.url)
9898
assert delta_update.scraped_title == "Updated Title"
99-
assert delta_update.delete is False
99+
assert delta_update.to_delete is False
100100

101101
# Deleted URL in CuratedUrls marked as delete in DeltaUrls
102102
delta_delete = DeltaUrl.objects.get(url=curated_url_delete.url)
103-
assert delta_delete.delete is True
103+
assert delta_delete.to_delete is True
104104

105105
def test_empty_collections(self):
106106
collection = CollectionFactory()
@@ -113,7 +113,7 @@ def test_partial_data_in_dump_urls(self):
113113
collection.migrate_dump_to_delta()
114114
delta = DeltaUrl.objects.get(url=dump_url.url)
115115
assert delta.scraped_title == ""
116-
assert delta.delete is False
116+
assert delta.to_delete is False
117117

118118

119119
@pytest.mark.django_db
@@ -136,11 +136,11 @@ def test_create_or_update_delta_url_idempotency(self):
136136
dump_url = DumpUrlFactory(collection=collection)
137137

138138
# First call
139-
collection.create_or_update_delta_url(dump_url, delete=False)
139+
collection.create_or_update_delta_url(dump_url, to_delete=False)
140140
assert DeltaUrl.objects.filter(url=dump_url.url).count() == 1
141141

142142
# Second call with the same data
143-
collection.create_or_update_delta_url(dump_url, delete=False)
143+
collection.create_or_update_delta_url(dump_url, to_delete=False)
144144
assert DeltaUrl.objects.filter(url=dump_url.url).count() == 1 # Should still be one
145145

146146

@@ -157,7 +157,7 @@ def test_create_or_update_delta_url_field_copy():
157157
division=2,
158158
)
159159

160-
collection.create_or_update_delta_url(dump_url, delete=False)
160+
collection.create_or_update_delta_url(dump_url, to_delete=False)
161161
delta = DeltaUrl.objects.get(url=dump_url.url)
162162

163163
# Verify each field is copied correctly
@@ -174,7 +174,7 @@ def test_full_migration_new_url(self):
174174
collection.migrate_dump_to_delta()
175175

176176
# New URL should be added to DeltaUrls
177-
assert DeltaUrl.objects.filter(url=dump_url.url, delete=False).exists()
177+
assert DeltaUrl.objects.filter(url=dump_url.url, to_delete=False).exists()
178178

179179
def test_full_migration_updated_url(self):
180180
collection = CollectionFactory()
@@ -184,7 +184,7 @@ def test_full_migration_updated_url(self):
184184
# URL with differing fields should be updated in DeltaUrls
185185
delta_update = DeltaUrl.objects.get(url=dump_url.url)
186186
assert delta_update.scraped_title == "Updated Title"
187-
assert delta_update.delete is False
187+
assert delta_update.to_delete is False
188188

189189
def test_full_migration_deleted_url(self):
190190
collection = CollectionFactory()
@@ -193,7 +193,7 @@ def test_full_migration_deleted_url(self):
193193

194194
# Missing URL in DumpUrls should be marked as delete in DeltaUrls
195195
delta_delete = DeltaUrl.objects.get(url=curated_url.url)
196-
assert delta_delete.delete is True
196+
assert delta_delete.to_delete is True
197197

198198

199199
@pytest.mark.django_db
@@ -225,4 +225,4 @@ def test_partial_data_in_curated_urls():
225225
# Since `scraped_title` differs (None vs "Title Exists"), it should create a DeltaUrl
226226
delta = DeltaUrl.objects.get(url=dump_url.url)
227227
assert delta.scraped_title == "Title Exists"
228-
assert delta.delete is False
228+
assert delta.to_delete is False

sde_collections/tests/test_promote_collection.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ def test_promotion_deletes_curated_urls(collection):
6868
collection.promote_to_curated()
6969

7070
# create a new DeltaUrl marked for deletion
71-
DeltaUrl.objects.create(collection=collection, url="https://example1.com", scraped_title="Title 1", delete=True)
71+
DeltaUrl.objects.create(collection=collection, url="https://example1.com", scraped_title="Title 1", to_delete=True)
7272

7373
# Promote the deletion
7474
collection.promote_to_curated()

0 commit comments

Comments
 (0)