Skip to content

Commit d79ee12

Browse files
committed
passes test in Django 2 and 1.8
1 parent 3507038 commit d79ee12

File tree

4 files changed

+39
-23
lines changed

4 files changed

+39
-23
lines changed

.travis.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,12 @@ env:
1010
- DJANGO_VERSION=1.9.11
1111
- DJANGO_VERSION=1.10.3
1212
- DJANGO_VERSION=1.11.6
13+
- DJANGO_VERSION=2.0.1
14+
15+
matrix:
16+
exclude:
17+
- python: '2.7'
18+
env: DJANGO_VERSION=2.0.1
1319

1420
before_install:
1521
- lsb_release -a

etl_sync/generators.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -252,8 +252,9 @@ def prepare_field(self, field, value):
252252

253253
def prepare_fk(self, field, value):
254254
options = {'related_field': field.related_fields[0][1].name}
255+
related = getattr(field, 'related_model')
255256
return InstanceGenerator(
256-
field.rel.to, options=options).get_instance(value)
257+
related, options=options).get_instance(value)
257258

258259
def prepare_m2m(self, field, lst):
259260
"""
@@ -264,7 +265,8 @@ def prepare_m2m(self, field, lst):
264265
if not isinstance(lst, list):
265266
lst = [lst]
266267
for item in lst:
267-
generator = InstanceGenerator(field.rel.to)
268+
related = getattr(field, 'related_model')
269+
generator = InstanceGenerator(related)
268270
instance = generator.get_instance(item)
269271
self.related_instances[field.name].append(instance)
270272

runtests.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313

1414

1515
tests = 'tests'
16+
17+
1618
try:
1719
tests = sys.argv[1]
1820
except IndexError:
@@ -23,9 +25,10 @@
2325
os.environ['DJANGO_SETTINGS_MODULE'] = 'tests.settings'
2426
try:
2527
django.setup()
26-
except AttributeError:
27-
pass
28-
TestRunner = get_runner(settings)
29-
test_runner = TestRunner()
30-
failures = test_runner.run_tests([tests])
31-
sys.exit(bool(failures))
28+
except AttributeError as e:
29+
print("Django setup did not work\n\n", e)
30+
else:
31+
TestRunner = get_runner(settings)
32+
test_runner = TestRunner()
33+
failures = test_runner.run_tests([tests])
34+
sys.exit(bool(failures))

tests/models.py

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class Nombre(models.Model):
1919

2020

2121
class SimpleFkModel(models.Model):
22-
fk = models.ForeignKey(Nombre)
22+
fk = models.ForeignKey(Nombre, on_delete=models.CASCADE)
2323
name = models.CharField(max_length=10)
2424

2525

@@ -57,10 +57,11 @@ class TestModel(models.Model):
5757
record = models.CharField(max_length=10, unique=True)
5858
name = models.CharField(max_length=10, null=True, blank=True)
5959
zahl = models.CharField(max_length=10, null=True, blank=True)
60-
nombre = models.ForeignKey(Nombre, null=True)
61-
numero = models.ForeignKey(Numero)
60+
nombre = models.ForeignKey(Nombre, null=True, on_delete=models.CASCADE)
61+
numero = models.ForeignKey(Numero, on_delete=models.CASCADE)
6262
elnumero = models.ForeignKey(
63-
ElNumero, to_field='rec', null=True, blank=True)
63+
ElNumero, to_field='rec', null=True, blank=True,
64+
on_delete=models.CASCADE)
6465
related = models.ManyToManyField(Polish, blank=True)
6566
date = models.DateTimeField(null=True, blank=True)
6667

@@ -72,17 +73,20 @@ class TestOnetoOneModel(models.Model):
7273
record = models.CharField(max_length=10, unique=True)
7374
name = models.CharField(max_length=10, null=True, blank=True)
7475
zahl = models.CharField(max_length=10, null=True, blank=True)
75-
nombre = models.OneToOneField(Nombre, null=True, blank=True)
76-
numero = models.ForeignKey(Numero)
76+
nombre = models.OneToOneField(
77+
Nombre, null=True, blank=True, on_delete=models.CASCADE)
78+
numero = models.ForeignKey(Numero, on_delete=models.CASCADE)
7779
elnumero = models.ForeignKey(
78-
ElNumero, to_field='rec', null=True, blank=True)
80+
ElNumero, to_field='rec', null=True, blank=True,
81+
on_delete=models.CASCADE)
7982
related = models.ManyToManyField(Polish, blank=True)
8083
date = models.DateTimeField(null=True, blank=True)
8184

8285

8386
class HashTestModel(models.Model):
8487
record = models.CharField(max_length=10, unique=True)
85-
numero = models.ForeignKey(Numero, null=True, blank=True)
88+
numero = models.ForeignKey(
89+
Numero, null=True, blank=True, on_delete=models.CASCADE)
8690
zahl = models.CharField(max_length=10, null=True, blank=True)
8791
related = models.ManyToManyField(Polish)
8892
md5 = models.CharField(max_length=32, null=True)
@@ -101,16 +105,16 @@ class SomeModel(models.Model):
101105

102106

103107
class IntermediateModel(models.Model):
104-
somemodel = models.ForeignKey(SomeModel)
105-
anothermodel = models.ForeignKey(AnotherModel)
108+
somemodel = models.ForeignKey(SomeModel, on_delete=models.CASCADE)
109+
anothermodel = models.ForeignKey(AnotherModel, on_delete=models.CASCADE)
106110
attribute = models.CharField(max_length=10, blank=True)
107111

108112

109113
class GeometryModel(models.Model):
110114
name = models.CharField(max_length=10, null=True, blank=True)
111115
geom2d = models.GeometryField(null=True, blank=True)
112116
geom3d = models.GeometryField(null=True, blank=True, dim=3)
113-
objects = models.GeoManager()
117+
# objects = models.GeoManager()
114118

115119

116120
class DateTimeModel(models.Model):
@@ -127,7 +131,8 @@ class Meta:
127131

128132

129133
class ParentModel(models.Model):
130-
well_defined = models.ForeignKey(WellDefinedModel)
134+
well_defined = models.ForeignKey(
135+
WellDefinedModel, on_delete=models.CASCADE)
131136

132137

133138
class TwoUnique(models.Model):
@@ -136,13 +141,13 @@ class TwoUnique(models.Model):
136141

137142

138143
class TwoRelatedAsUnique(models.Model):
139-
numero = models.ForeignKey(Numero)
140-
another = models.ForeignKey(AnotherModel)
144+
numero = models.ForeignKey(Numero, on_delete=models.CASCADE)
145+
another = models.ForeignKey(AnotherModel, on_delete=models.CASCADE)
141146
value = models.CharField(max_length=5)
142147

143148
class Meta:
144149
unique_together = ('numero', 'another')
145150

146151
class RelatedRelated(models.Model):
147-
key = models.ForeignKey(TwoRelatedAsUnique)
152+
key = models.ForeignKey(TwoRelatedAsUnique, on_delete=models.CASCADE)
148153
value = models.CharField(max_length=5)

0 commit comments

Comments
 (0)